首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 媒体动画 > 多媒体 >

请问vlc播放rtp封装的h.264延时很大是什么原因

2012-03-26 
请教vlc播放rtp封装的h.264延时很大是什么原因?延时近20秒,也就是说,在摄像头前的动作,20秒以后才会出现在

请教vlc播放rtp封装的h.264延时很大是什么原因?
延时近20秒,也就是说,在摄像头前的动作,20秒以后才会出现在vlc播放器的画面上。另外,播放效果也不佳,主要是画面跳跃性太大。但如果把这些数据保存在本地,再用vlc播放器来播放则没有上述问题。请教是何原因?(网络速度的原因基本可以排除,是在一个局域网中,数据量还远没有达到网络的最大负载)

[解决办法]
因为你没把你的基本环境做1个描述 所以有很多不清楚的地方 
这种问题的因素有很多,我想是否你是用VLC通过RTSP等方式与摄像头连做播放的呢.
如果是这样的话有很多因素会引起这个,比如直接传送的话,摄像头需要实时编码,这个是需要个过程的,而在保持到本地不存在实时编码这个过程。另外播放器解收到后解码也是需要时间的
另外基于UDP传输的话,一旦产生丢包,当然也会影响画面质量,这个与网络带宽无关。
[解决办法]
"" udp丢包率基本为0。但在vlc播放器的统计中,确实有丢帧的情况,""

nal 包到 RTP包 封装 有问题吧
[解决办法]
播放的缓存设了吗?
[解决办法]
你可以用其他的服务器测试下,比如QT了,如果效果都差不多,那证明VLC在支持H264流播放不是很完善,
如果不会产生你那样的问题,那么丢包可能是你在封RTP没封好(细节)。
至于延时长,可能是VLC本身的问题吧,我用VLC点播QT的H264的文件,延时也很大(局域网)。
兄弟努力,如果问题解决了,回贴通知下。
[解决办法]
感觉上像是你的服务器端发送数据有问题。图像能出来但是跳跃很厉害,经常是因为服务器端发送的时间不对,或是RTP封装有问题,造成客户端在应该接收数据的时候没有收到预期的数据,以致前面收到的数据变成无效数据,然后丢弃。不知道你存下来的数据是经rtsp发送的,还是纯编码数据,你可以将经RTP封装的媒体流保存下来,再用客户端播放试试,检查一下是不是服务器的原因。
[解决办法]
已经可以放出来? 只是要等20秒? 而且画面跳跃性很大?

可以确定跟传输没关系.应该是编码器设置问题.关键帧设置太长了,估计20秒才发一次关键帧.
编码器如果是出的字节流nal格式,关键帧的时候才会打一次sps和pps的nal,VLC如果在RTSP服务中获取的SDP信息不对,他会到接收的流数据中自己等到收SPS和PPS进行解析,这个时候VLC必须接受到一次sps和pps才会开始播放.

所以检查和解决方法有2种.
1 是自己调整SDP信息,肯定你的RTSP服务的SDP信息没有按照编码器出来的sps和pps信息进行生成.
2 是设置编码器编码的关键帧长度,根据需要,流式传输一般是10秒合适,觉得太长可以缩短到5秒,以增加sps和pps的密度.或者自己手工发送一次sps和pps.

另外画面跳跃性过大(应该在静态画面,还有场景变换的时候很明显),也跟关键帧设置太长有关.这种画面一般容易出现在按照ABR编码,关键帧又太长的情况.

热点排行