您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
6. ffmpeg通用编译bash脚本编写、硬解码、neon、多线程解码性能对比~1
发布时间:2021-05-27 15:12:02编辑:雪饮阅读()
完成ffmpeg的安裝
上篇中最後編譯形成了make的安裝文件,那麽最後要完成安裝的時候只需要make install就可以完成安裝了。
完成安裝后,安裝之後的文件生成在目錄如:\root\ff\ffmpeg-3.4\android中
使用脚本編譯安裝
用脚本來編譯安裝可以方便的進行編譯微調,比如分別要编译支持neon和硬解码和编译不支持neon和硬解码時就不需要複製前篇中那麽多命令來進行修改,取而代之的是一個脚本就搞定。
編寫build_android.sh如:
#!/bin/bash
echo "进入编译ffmpeg脚本"
NDK=/root/ff/android-ndk-r14b
#5.0
PLATFORM=$NDK/platforms/android-21/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64
CPU=armv7-a
#输出路径
PREFIX=./android/$CPU
#清理之前編譯的
make clean
function buildFF
{
echo "开始编译ffmpeg"
./configure \
--prefix=$PREFIX \
--target-os=android \
--cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
--arch=arm \
--cpu=$CPU \
--sysroot=$PLATFORM \
--extra-cflags="$CFLAG" \
--cc=$TOOLCHAIN/bin/arm-linux-androideabi-gcc \
--nm=$TOOLCHAIN/bin/arm-linux-androideabi-nm \
--enable-shared \
--enable-runtime-cpudetect \
--enable-gpl \
--enable-small \
--enable-cross-compile \
--disable-debug \
--disable-static \
--disable-doc \
--disable-ffmpeg \
--disable-ffplay \
--disable-ffprobe \
--disable-ffserver \
--disable-postproc \
--disable-avdevice \
--disable-symver \
--disable-stripping \
$ADD
make -j4
make install
echo "编译结束!"
}
###########################################################
echo "编译支持neon和硬解码"
CPU=armv7-a
PREFIX=./android/armv7-a-neon-hard
CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=neon -mfloat-abi=softfp "
ADD="--enable-asm \
--enable-neon \
--enable-jni \
--enable-mediacodec \
--enable-decoder=h264_mediacodec \
--enable-hwaccel=h264_mediacodec "
buildFF
###########################################################
echo "编译不支持neon和硬解码"
CPU=armv7-a
PREFIX=./android/$CPU
CFLAG="-I$PLATFORM/usr/include -fPIC -DANDROID -mfpu=vfp -mfloat-abi=softfp "
ADD=
buildFF
然後要給脚本一個執行權限
chmod +x ./build_android.sh
最後執行下編譯脚本就完成了兩種方式的ffmpeg編譯安裝。
在生成輸出路徑中將會輸出兩個不同的ffmpeg編譯輸出的文件
关键字词:脚本,編譯,ffmpeg,neon