h.264新人请教vlc播放rtp的问题,请高人不吝赐教!
问题是这样,我在arm9的开发板上获取到摄像头的图像数据,进行h.264编码后,保存为文件,用vlc播放器(1.0.0-20090114)或暴风影音都可以进行播放。但如果自己打包成rtp包,再发送到另一台PC机上,vlc播放器则没有任何反应。我的具体做法如下:
1、先发送sps包,再发送pps包,然后对每一帧图像,拆分成512字节的小包发送到PC机上,目的端口是6666。所有这些包是用rtp封装的,虽然我对rtp了解有限,但因为这部分代码是在一个随机例子程序上改的,所以我觉得应该问题不大。
2、过程是先在PC上启动vlc,然后打开open network菜单项,设置协议(rtp)、地址和端口(6666),然后按play按钮。之后运行arm板上的rtp发送程序。
3、在pc上用ethereal抓包进行观察,发现rtp数据包都可以收到。但就是vlc播放器没有任何反应,也没有任何回应包。
4、我又移植了一个jrtplib库到arm9的版本上,运行它的一个例子程序example1,同样发送一些rtp数据包(非视频数据包)到PC机上,VLC同样没有任何反应,在pc上用ethereal抓包进行观察,vlc播放器也没有任何回应包。
5、这个arm9和pc的字节序是一样的,都是小端字节序,与网络字节序相反。
由于我是流媒体开发的新手,对rtp的了解有限,实在不知道问题出在哪里,老板催的很急。请各位高人指教!!!万分感谢!!!
[解决办法]
h.264打包成rtp,要按他的打法来,参考rfc
[解决办法]
肯定是数据不对了,解码接不出来
拆分包的时候你按照rtp标准来做了么,是不是rtp的包头有问题
你用wireshark分析下,wireshark有rtp的分析
[解决办法]
帮顶下
[解决办法]
我给你介绍一个人写的开源的RTP实现,你可以借鉴一下他的打包方式,都是按照协议来的。
下面是网址,可以下载源码。
http://research.edm.uhasselt.be/~jori/page/index.php?n=CS.Jrtplib
[解决办法]
普通的RTP和H.264的RTP是有点不一样的