Компиляция ffmpeg lib и добавление его в источники NDK в Windows8
Я видел некоторые статьи о том, как компилировать и использовать FFmpeg для Android.
Thess являются хорошим примером -пример1 и Пример 2
к сожалению, не от них, или другие, которые я нашел, помогли мне. В этих двух примерах a build_android.sh создается и настраивается конфигурационный файл FFmpeg и вызов для выполнения. Каждый раз, когда я запускаю скрипт, я получаю следующую ошибку:
c:androiddevelopmentandroid-ndk-r9sourcesffmpeg>sh build_android.sh
c:/android/development/android-ndk-r9/toolchains/arm-linux-androideabi-4.8/prebu
ilt/windows-x86_64/arm-linux-androideabi/bin/bin/arm-linux-androideabi-gcc is un
able to create an executable file.
C compiler test failed.
If you think configure made a mistake, make sure you are using the latest
version from Git. If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solving the problem.
Makefile:2: config.mak: No such file or directory
Makefile:49: /common.mak: No such file or directory
Makefile:92: /libavutil/Makefile: No such file or directory
Makefile:92: /library.mak: No such file or directory
Makefile:169: /doc/Makefile: No such file or directory
Makefile:170: /tests/Makefile: No such file or directory
make: *** No rule to make target `/tests/Makefile'. Stop.
Makefile:2: config.mak: No such file or directory
Если кто-то сталкивался и решенный этот вопрос будет очень признателен!
после попытки предложенного скрипта я столкнулся с новой проблемой, которую я не смог решить, это вывод скрипта:
.... Список включенных компонентов....
В конце списка я получил следующее:
включено indevs: dv1394 v4l2i fbdev
включено outdevs: fbdev v4l2
лицензия: LGPL версии 2.1 или более поздней Создание конфигурации.mak, конфиг.h, и doc / config.текси...
предупреждение: C:/android/development/android-ndk-r9/toolchains/arm-linux-androideabi-
4.8/встроенные/Windows на архитектуру x86_64/ОГРН/АРМ-ОС Linux-androideabi-файл pkg-config не найден, Либр
обнаружение ary может потерпеть неудачу.
сделать: * нет правила, чтобы сделать target libavfilter/libavfilter.so', needed by
all-ye
ых. Остановка.
сделать: * нет правила, чтобы сделать target install-libavfilter-shared', needed by
instal
л-либс-да. Остановка.
2 ответов
можете ли вы вставить то, что в вашем build_android.sh файл, который вы скопировали внутри каталога FFmpeg?
У меня такая же ошибка, когда одна из переменных определена в начале скрипта, где установлена неправильно. Проверьте, установлены ли для переменных NDK, SYSROOT или TOOLCHAIN допустимый путь!
Я попытался использовать следующие шаги, и это сработало для меня:
1) Скачать FFmpeg
git клон в Git://источник.через FFmpeg.орг/видео.ГИТ ffmpeg с
2) создать файл с именем build_android.sh внутри каталога FFmpeg
cd ffmpeg; нажмите build_ffmpeg_for_android.sh;
3) добавьте следующий контент в файл
#!/usr/bin/env bash
NDK=$HOME/Software/Android/android-ndk-r10/
SYSROOT=$NDK/platforms/android-19/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
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 \
--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
4) сделать скрипт исполняемым
chmod +x build_ffmpeg_for_android.sh
5) старт сборка FFmpeg для Android (ARM)
(запустите скрипт с Bash, т. е. /usr / bin / bash not / usr/bin / sh)
./build_ffmpeg_for_android.sh
Я получал те же ошибки, что и @powerX, и я смог решить проблему, используя другой метод от @dZkF9RWJT6wN8ux.
хотя я использую Ubuntu 13.10, я надеюсь, вы найдете мой ответ полезным. С выпуском android NDK r9 и FFMPEG 2.2 "Muybridge" я, наконец, смог выполнить третий шаг под названием "Build FFMPEG" из ссылки @powerX example1:http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/
Я, наконец, исправил это, изменив Переменная SYSROOT в файле build_android.sh точку в ".../ android-19 / arch-arm " вместо .../ android-9 / arch-arm".
надеюсь, что это помогает.