FFmpeg编译MediaCodec

从ffmpeg的3.1版本开始,加入了对Android的MediaCodec硬解支持,目前支持的格式包括h264、h265、mpeg4、vp8和vp9,下面以h264为例说明一下

1、编译ffmpeg

在configure阶段首需要enable相关的组件,如下所示:

--enable-jni

--enable-mediacodec

--enable-decoder=h264_mediacodec

--enable-hwaccel=h264_mediacodec

此外,必须指定编译平台 --target-os=android,否则会报错:ERROR:jni not found

2、使用MediaCodec

第一步:为ffmpeg设置java虚拟机

因为用到了jni,所以第一步需要为ffmpeg设置java虚拟机,在JNI_OnLoad函数中调用av_jni_set_java_vm,该函数在libavcodec/jni.h文件中

第二步:使用MediaCodec

MediaCodec对应的ffmpeg的组件名称为“h264_mediacodec”,需要通过指定名字来获得相应的codec,如果获得硬件解码器失败,再通过id来获得软件解码器

AVCodec *codec = avcodec_find_decoder_by_name("h264_mediacodec");
if (codec == NULL) {
     codec = avcodec_find_decoder(id);
}

到此即可使用了,其他地方不需要修改

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值