ffmpeg编译

编译一个lib,网上的由.a文件合成libffmpeg时脚本很多都是有各种错误,下面是亲自测试

//下面是window平台编译,环境搭建 https://blog.csdn.net/eydwyz/article/details/78192392

// linux平台修改相应的变量即可

// 解压ffmpeg-3.3.4,由于不生成各模块的so,故无需更改configure, 

//执行 ./build_android.sh

// 生成不了 单一库   error: cannot open libpostproc/libpostproile or directory ,,把make install 后面一句的libpostproc/libpostproc.a 删除即可

build_android.sh

#!/bin/bash
NDK=D:/android_ndk/android-ndk-r11c-windows-x86_64/android-ndk-r11c
SYSROOT=$NDK/platforms/android-18/arch-arm
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64

PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt
PLATFORM=$NDK/platforms/android-18/arch-arm
function build_one { 

./configure \
     --prefix=$PREFIX \
     --enable-asm \
     --enable-neon \
     --enable-hwaccel=h264_vaapi \
     --enable-hwaccel=h264_vaapi \
     --enable-hwaccel=h264_dxva2 \
     --enable-hwaccel=mpeg4_vaapi \
     --enable-hwaccels \
     --enable-jni \
     --enable-mediacodec \
     --disable-stripping \
     --disable-shared \
     --enable-static \
     --disable-doc \
     --enable-ffmpeg \
     --enable-ffplay \
     --enable-ffprobe \
     --enable-ffserver \
     --enable-avdevice \
     --disable-doc \
     --disable-symver \
     --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
     --target-os=android \
     --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     
$PREBUILT/windows-x86_64/bin/arm-linux-androideabi-ld -rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -L$PREFIX/lib -soname libffmpeg.so -shared -nostdlib -Bsymbolic --whole-archive --no-undefined -o $PREFIX/libffmpeg.so libavcodec/libavcodec.a libavfilter/libavfilter.a libswresample/libswresample.a libavformat/libavformat.a libavutil/libavutil.a libswscale/libswscale.a libpostproc/libpostproc.a libavdevice/libavdevice.a -lc -lm -lz -ldl -llog --dynamic-linker=/system/bin/linker $PREBUILT/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9/libgcc.a
 }
 CPU=arm
 PREFIX=$(pwd)/android/$CPU
 ADDI_CFLAGS="-marm"
 build_one

后面可以使用调试,不过,有时调试时参数不对,应该是as问题

add-dsym C:\ffmpeg-3.3.4\android\arm\libffmpeg.so
settings set target.source-map C:\ffmpeg-3.3.4   D:\example_ndk\ffmpeg_source_map\app\src\main\cpp\ffmpeg-3.3.4

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值