使用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
前缀的,都需要加上此前缀。
参考文档: