最近终于解析H264的MP4然后分装成RTP包发送给VLC播放成功了,当然还需要针对具体问题具体修改一下,不过已经可以网络播放了。后面再写一下具体的过程。
我看网上这方面的资料虽然多,但是有用的其实没几个。
大家可以去下载开源的一个代码,mp4file的一个代码,里面集成了MP4帧提取等相关的信息。不过,首先,我觉得最重要的是先认清MP4这个容器吧。
H264编码的MP4帧提取,这几个帖子对我帮助很大,感谢他们。
1、http://www.cnblogs.com/haibindev/archive/2011/10/17/2214518.html
2、http://blog.csdn.net/crazyman2010/article/details/8596229
3、http://www.cnblogs.com/warren-tech/archive/2009/12/11/2281896.html
不过第三篇文章不是h264编码的,是xvid编码的吧,他所说的分隔符,在h264编码的MP4文件中是找不到的。
首先是分析MP4的头文件,通过chunk和sample的偏移量之类的,去定位sample(帧数据)
得到sample以后也不要太高兴,sample=“4个字节sample大小”+“1个字节类型”+数据。这篇文章对我的帮助很大
http://blog.csdn.net/gavinr/article/details/7183499
RTP协议的包数据
http://www.cnblogs.com/huaping-audio/archive/2009/04/22/1441285.html
RTP包的分装协议分析,我参考了NALdecoder这个代码,感谢!
如果让VLC播放器进行网络播放的话,建议去研究一下.SDP文件的参数说明,这个也是会挺有用的,在下面这个网址。
http://wenku.baidu.com/link?url=HdlxebDo8Hzkf7uaW0r_YAsKNEI91VkRQN7mPg8x5-Sb4OnSeglT0ADMr2ixkE_dpAjf5mG9P6hU0YcBnm1c0N0ikt8_I5gkvkJJQ-kCp_C
先说这么多,等有时间了,写出来。