android硬件编码,FFMPEG Android(4)打开Android硬件编码

1:在编译时enable  mediacodec 相关功能。

function build_ffmpeg

{

./configure \

--prefix=$PREFIX \

--pkg-config-flags="--static" \

--extra-libs="-lgcc" \

--extra-cflags="-I$PREFIX/include -static" \

--extra-ldflags="-L$PREFIX/lib -static" \

--disable-shared \

--enable-static \

--disable-doc \

--enable-ffmpeg \

--disable-ffplay \

--disable-ffprobe \

--disable-ffserver \

--disable-avdevice \

--disable-doc \

--disable-symver \

--disable-encoders \

--enable-gpl \

--enable-libx264 \

--enable-encoder=aac \

--enable-encoder=libx264 \

--enable-parser=h264 \

--enable-jni \

--enable-mediacodec \

--disable-decoders \

--enable-decoder=h264_mediacodec \

--enable-decoder=vp8_mediacodec \

--enable-decoder=vp9_mediacodec \

--enable-decoder=mpeg4_mediacodec \

--enable-decoder=hevc_mediacodec \

--enable-decoder=h264 \

--enable-decoder=mpeg4 \

--enable-decoder=aac \

--enable-decoder=mp3 \

--enable-decoder=amr \

--disable-muxers \

--enable-muxer=m4v \

--enable-muxer=mp4 \

--enable-muxer=mov \

--disable-demuxers \

--enable-demuxer=flv \

--enable-demuxer=matroska \

--enable-demuxer=mov \

--enable-demuxer=m4v \

--enable-demuxer=avi \

--disable-parsers \

--enable-parser=aac \

--enable-parser=h264 \

--enable-parser=mpeg4video \

--enable-parser=mpegaudio \

--enable-parser=mpegvideo \

--disable-protocols \

--enable-protocol=file \

--disable-devices \

--enable-small \

--cross-prefix=$TOOLCHAIN/bin/arm-linux-a

ndroideabi- \

--target-os=linux \

--arch=arm \

--enable-cross-compile \

--sysroot=$SYSROOT \

$ADDITIONAL_CONFIGURE_FLAG

make clean

rm build.log

make -j8 | tee build.log

make install

2:enable之后,仍然无法使用硬解码。必须在Android代码中注册JavaVM。

jint JNI_OnLoad(JavaVM* vm, void* reserved)

{

LOGI("ffmpeg JNI_OnLoad");

av_jni_set_java_vm(vm, reserved);

return JNI_VERSION_1_6;

}

完成了这两步,在android 转码过程中,会优先使用mediacodec作为解码。

问题:

1:在部分机器上,加载so失败。

这是由于ndk版本导致,新的ndk会有这部分问题。目前觉得方案是切换到ndk8下进行编译。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值