Ответ 1
Последняя версия FFMPEG
- 3.1.1, только что выпущенная до 12 дней. Поэтому я думаю, что нет легкодоступной демонстрации, такой как этот старый.
Нам нужно построить библиотеку FFMPEG
самостоятельно. Некоторые вопросы, которые я нашел, просто вставляют сюда, которые могут вам помочь. (Не проверено)
Как создать FFmpeg для Android
- Компиляция FFmpeg 2.3 с Android NDK r10
- Как скомпилировать ffmpeg-2.5.3 на windows с android-ndk-r10d
- Как скомпилировать ffmpeg-2.2.2 на windows с cygwin и android ndk r9c
- Как выполнить команду buf ffmpeg с android-ndk-r10d в окнах
Вам нужно скомпилировать его самостоятельно, загрузив Android NDK и Последняя версия FFMPEG
.
Один учебник также есть: Как создать FFmpeg для Android. Это довольно старый, поэтому вам просто нужно изменить версии, упомянутые здесь. Для FFMPEG
это будет 3.1.1
, а NDK будет r12b
.
Построение FFMPEG
с помощью NDK r12b:
-
Скачать Android NDK. Последняя версия Android NDK можно скачать по адресу Android NDK, На момент написания этого ответа самая новая версия - NDK r12. просто распакуйте архив
-
Загрузите исходный код ffmpeg: исходный код FFMPEG можно загрузить с веб-сайта ffmpeg. Последний стабильный релиз - 3.1.1 (на момент написания). Загрузите исходный код и распакуйте его в папку $NDK/sources.
-
Обновить файл конфигурации: Открыть файл ffmpeg-3.1.1/configure с помощью текстового редактора и найти следующие строки.
SLIBNAME_WITH_MAJOR='$(SLIBNAME).$(LIBMAJOR)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_VERSION)' SLIB_INSTALL_LINKS='$(SLIBNAME_WITH_MAJOR) $(SLIBNAME)'
Это приведет к тому, что общие библиотеки ffmpeg будут скомпилированы для libavcodec.so. (например, libavcodec.so.55), что не совместимый с системой Android. Поэтому необходимо заменить приведенные выше строки со следующими строками.
SLIBNAME_WITH_MAJOR='$(SLIBPREF)$(FULLNAME)-$(LIBMAJOR)$(SLIBSUF)' LIB_INSTALL_EXTRA_CMD='$$(RANLIB) "$(LIBDIR)/$(LIBNAME)"' SLIB_INSTALL_NAME='$(SLIBNAME_WITH_MAJOR)' SLIB_INSTALL_LINKS='$(SLIBNAME)
-
Build ffmpeg: Скопируйте следующий текст в текстовый редактор и сохраните его как build_android.sh в папке ffmpeg_3.1.1.
#!/bin/bash NDK=$HOME/Desktop/adt/android-ndk-r9 SYSROOT=$NDK/platforms/android-9/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 make install } CPU=arm PREFIX=$(pwd)/android/$CPU ADDI_CFLAGS="-marm" build_one
Как только файл будет сохранен, перейдите в каталог, в котором находится этот файл, и выполните приведенную ниже команду,
sudo chmod +x build_android.sh
Затем выполните команду script командой
./build_android.sh
-
Результат сборки. Завершение сборки может занять некоторое время, в зависимости от скорости вашего компьютера. После его завершения вы сможете найти папку $NDK/sources/ffmpeg-3.1.1/android, которая содержит папки arm/lib и arm/include.
- Сделать библиотеки ffmpeg доступными для ваших проектов
Шаги, приведенные выше, полностью протестированы, и я выполнил их на своей машине и сборка была успешной. Для написания этого ответа я взял ссылка из этой статьи Как построить ffmpeg с помощью NDK г9но, как и для более старой версии, я внес некоторые исправления в мой самостоятельно.
Открыть для сомнений.