https://www.kotlintc.com/articles/4270
ffmpeg支持android硬件解码mediacodec
ljh081231 · 2017-12-05 13:01:45 · 476 次点击 · 预计阅读时间 1 分钟 · 大约1分钟之前 开始浏览
这是一个创建于
2017-12-05 13:01:45 的文章,其中的信息可能已经有所发展或是发生改变。
1)编译配置 ./configure --enable-cross-compile --cross-prefix=/e/arm-linux-androideabi-4.6/bin/arm-linux-ardroideabi- --sysroot=/e/android/android-ndk-r8b/platforms/android-
14/arch-arm --extra-cflags="/e/android/android-ndk-r8b/platforms/android-14/arch-arm/usr/include" --target-os=android --arch=arm --enable-jni --enable-mediacodec --enable-
bsf=h264_mp4toannexb
2)手动更改ffmpeg的config.h
#define CONFIG_H264_MEDIACODEC_DECODER 1
手动改config.mak
CONFIG_H264_MEDIACODEC_DECODER=yes
3)测试代码中需要把sps设置给extradata
4)不同的手机输出的yuv格式不同,mediacodecdec_common.c的mediacodec_wrap_sw_buffer函数中需要做适配
5)最关键的一点,如果ui的surface没有设置,解码速度会很慢,甚至不如软解码。
14/arch-arm --extra-cflags="/e/android/android-ndk-r8b/platforms/android-14/arch-arm/usr/include" --target-os=android --arch=arm --enable-jni --enable-mediacodec --enable-
bsf=h264_mp4toannexb
2)手动更改ffmpeg的config.h
#define CONFIG_H264_MEDIACODEC_DECODER 1
手动改config.mak
CONFIG_H264_MEDIACODEC_DECODER=yes
3)测试代码中需要把sps设置给extradata
4)不同的手机输出的yuv格式不同,mediacodecdec_common.c的mediacodec_wrap_sw_buffer函数中需要做适配
5)最关键的一点,如果ui的surface没有设置,解码速度会很慢,甚至不如软解码。