![](/img/trans.png)
[英]Getting green screen in ffplay: Streaming desktop (DirectX surface) as H264 video over RTP stream using Live555
[英]LIVE555 RTSP H.264 Raw Video File Stream - ffplay Errors
我正在使用LIVE555通过RTSP流式传输原始.h264视频文件。
要接收流,我正在使用ffplay。 但是,当观看视频时,我注意到视频质量很差,并且在ffplay控制台中出现了许多错误:
Input #0, rtsp, from 'rtsp://xx.xx.xxx.x/stream': sq= 0B f=0/0
Metadata:
title : stream
comment : stream
Duration: N/A, start: 0.099989, bitrate: N/A
Stream #0:0: Video: h264 (High), yuv420p(tv, smpte170m/smpte170m/bt470m), 16
80x1050 [SAR 1:1 DAR 8:5], 60 fps, 60 tbr, 90k tbn, 120 tbc
[h264 @ 03f92100] RTP: missed 46 packetsq= 28KB sq= 0B f=1/1
[h264 @ 03f92100] RTP: missed 74 packetsq= 23KB sq= 0B f=1/1
[h264 @ 03f92100] RTP: missed 43 packets
[h264 @ 03f92100] RTP: missed 35 packetsq= 179KB sq= 0B f=1/1
[h264 @ 05710640] left block unavailable for requested intra4x4 mode -1 at 0 38
[h264 @ 05710640] error while decoding MB 0 38, bytestream 48108
[h264 @ 05710640] Cannot use next picture in error concealment
[h264 @ 05710640] concealing 2989 DC, 2989 AC, 2989 MV errors in P frame
[h264 @ 051043c0] left block unavailable for requested intra4x4 mode -1 at 0 26
[h264 @ 051043c0] error while decoding MB 0 26, bytestream 5894
[h264 @ 051043c0] concealing 4249 DC, 4249 AC, 4249 MV errors in I frame
[h264 @ 03f92100] RTP: missed 68 packetsq= 28KB sq= 0B f=1/1
[h264 @ 03f92100] RTP: missed 31 packetsq= 153KB sq= 0B f=1/1
[h264 @ 052a0020] concealing 3292 DC, 3292 AC, 3292 MV errors in I frame
[h264 @ 052a0020] Cannot use next picture in error concealment1/1
[h264 @ 052a0020] concealing 2190 DC, 2190 AC, 2190 MV errors in P frame
[h264 @ 03f92100] RTP: missed 69 packetsq= 27KB sq= 0B f=1/1
[h264 @ 052a0020] concealing 3732 DC, 3732 AC, 3732 MV errors in I frame
[h264 @ 03f92100] RTP: missed 26 packetsq= 30KB sq= 0B f=1/1
...
如何确定这里出了什么问题? 是流还是文件?
RTP: missed <N> packets
除非RTSP客户端要求TCP
流,否则LIVE555 Media Server默认情况下使用基于UDP
的RTP
。
UDP
被认为是不可靠的协议,因为无法保证传递,数据包可以以不同的顺序到达目的地和/或重复。
如果基础网络连接不可靠,您可能会遇到很多丢包的情况,流将播放很多错误。
您没有足够的带宽来接收此流(或交替发送)。
RTP: missed packet
消息告诉您。 通过TCP只会使事情变得更糟,而不会变得更好,因为TCP使用更多带宽作为标头,并且用于适应通道带宽的AIMD算法将丢失更多数据包(加法,乘积,减法)。
除了降低编码比特率(如果可以控制),改善缓冲(如果可以控制)或使用其他可以预缓冲流的协议之外,您什么也不能做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.