ОШИБКА: libfaac не найден при компиляции библиотеки FFMPEG
Я пытался скомпилировать библиотеку FFMPEG под Ubuntu для Android с включением всех возможных кодеков. я следовал этому руководству http://www.roman10.net/2013/08/18/how-to-build-ffmpeg-with-ndk-r9/. но когда я выполняю./build_android.sh, это дает мне эту ошибку:
root @ AK-74: /home/rango/Desktop/android-ndk-r10e/sources/ffmpeg-3.0#./build_android.sh ОШИБКА: libfaac не найден
Если вы думаете, что configure допустил ошибку, убедитесь, что вы используете последнюю версию Git. Если последняя версия дает сбой, сообщите о проблеме в список рассылки ffmpeg-user@ffmpeg.org или в IRC #ffmpeg на irc.freenode.net. Включите файл журнала "config.log", созданный командой configure, поскольку это поможет решить проблему.
Вот мой контент build_android.sh:
#!/bin/bash
NDK=/home/rango/Desktop/android-ndk-r10e
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86
function build_one
{
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--disable-symver \
--enable-gpl \
--enable-version3 \
--enable-nonfree \
--enable-shared \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libfaac \
--enable-libgsm \
--enable-libmp3lame \
--enable-libtheora \
--enable-libvorbis \
--enable-libx264 \
--enable-libxvid \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
3 ответа
Наконец я получил его на работу. Проблема заключалась в том, что он не может найти местоположение библиотеки. Я набрал эту команду: найдите libfaac. и из вывода я понял, что это в "/ usr / lib / i386-linux-gnu /":
/usr/lib/i386-linux-gnu/libfaac.a
/usr/lib/i386-linux-gnu/libfaac.so
/usr/lib/i386-linux-gnu/libfaac.so.0
/usr/lib/i386-linux-gnu/libfaac.so.0.0.0
так что я сделал следующее, добавив эту строку в "./build_android.sh", чтобы он посмотрел там:
--extra-LDFLAGS = -L / USR / Библиотека / i386-Linux-ГНУ /
так что скрипт становится:
#!/bin/bash
NDK=/home/rango/Desktop/android-ndk-r10e
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86
function build_one
{
echo $PREFIX
./configure \
--prefix=$PREFIX \
--enable-shared \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-avdevice \
--disable-doc \
--enable-nonfree \
--disable-symver \
--enable-gpl \
--enable-version3 \
--enable-shared \
--enable-libmp3lame \
--enable-libopencore-amrnb \
--enable-libopencore-amrwb \
--enable-libtheora \
--enable-libvorbis \
--enable-libx264 \
--enable-libxvid \
--enable-libgsm \
--enable-libfaac \
--extra-ldflags=-L/usr/lib/i386-linux-gnu/
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--target-os=linux \
--arch=arm \
--enable-cross-compile \
--sysroot=$SYSROOT \
--extra-cflags="-Os -fpic $ADDI_CFLAGS" \
--extra-ldflags="$ADDI_LDFLAGS" \
$ADDITIONAL_CONFIGURE_FLAG
make clean
make -j4
make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
libfaac отстой. Удалить --enable-libfaac
а также --enable-nonfree
, Вместо этого вы можете использовать собственный кодировщик FFmpeg AAC, и вам не понадобится дополнительная внешняя библиотека для его использования.
Установите libfdk-aac-dev, чтобы устранить эту ошибку
apt install libfdk-aac-dev
Установите faac-1.26-1.el6.rf.x86_64.rpm и faac-devel-1.26-1.el6.rf.x86_64.rpm по ссылке ниже.
http://pkgs.repoforge.org/faac/