Компиляция 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 byall-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".

надеюсь, что это помогает.