使用mp4v2分离mp4中的h264码流
本文目标:在Android 4.1平台上使用mp4v2库从mp4文件中分离出h264码流
我电脑上已经配置好NDK的环境,在环境变量中添加了NDK_HOME。
编译mp4v2动态库
下载并解压代码
下载地址:mp4v2 Download
解压之后在mp4v2-2.0.0目录下新建jni目录,将mp4v2-2.0.0目录下的文件/文件夹都放入其中,我电脑上的目录为D:\code\openSrc\mp4v2-2.0.0\jni
编译动态库
进入jni目录
改名字:
libplatform/config.h.in->libplatform/config.h创建
Application.mk和Android.mk,内容可以参见我的github在命令行中运行
ndk-build.cmd命令,即可生成libmp4v2.so动态库
使用动态库分离mp4中的h264码流
完整android工程见我的github,只要注意两点:
使用
MP4ReadSample读取的NAL数据前四个字节是经过修改的。原本h264 NAL数据的前四个字节为0x00000001,但是在mp4中将这四个字节替换成了本NAL单元的大小。只需要将前四个字节替换回去即可。使用
MP4GetTrackH264SeqPictHeaders获取的SPS/PPS信息都是没有0x00000001前缀的,都需要加上此前缀。
参考文档:

