我正在使用LIVE555通过RTSP传输原始.h264视频文件。
要接收我正在使用ffplay的流。但是,在观看视频时,我注意到视频质量不佳以及ffplay-console中的一堆错误:
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
...
我怎样才能确定这里有什么问题?是使用流还是文件?
答案 0 :(得分:1)
RTP: missed <N> packets
默认情况下,LIVE555 Media Server使用RTP
超过UDP
,除非RTSP客户端要求TCP
流。
UDP
被认为是不可靠的协议,因为无法保证传递,数据包可以以不同的顺序到达目的地和/或重复。
如果底层网络连接不可靠,您可能会遇到大量数据包丢失,就像您的情况一样,流会出现很多错误。
答案 1 :(得分:0)
您没有足够的可用带宽来接收此流(或以其他方式发送)。
{{1}}消息告诉您。通过TCP只会使事情变得更糟,而不是更好,因为TCP会为标头使用更多带宽,而用于调整信道带宽的AIMD算法会丢失更多数据包(添加剂会增加乘法减少)。
除了降低编码比特率(如果你有控制权),改善缓冲(如果你有控制权),或者使用一个预先缓冲流的不同协议,你就无能为力。 / p>