简体   繁体   English

LIVE555 RTSP H.264原始视频文件流-ffplay错误

[英]LIVE555 RTSP H.264 Raw Video File Stream - ffplay Errors

I am streaming a raw .h264 video file via RTSP using LIVE555. 我正在使用LIVE555通过RTSP流式传输原始.h264视频文件。

To receive the stream I am using ffplay. 要接收流,我正在使用ffplay。 However, when watching the video I notice bad video quality and a bunch of errors in the ffplay-console: 但是,当观看视频时,我注意到视频质量很差,并且在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
...

How can I determine what's wrong here? 如何确定这里出了什么问题? Either with the stream or the file? 是流还是文件?

RTP: missed <N> packets

The LIVE555 Media Server uses RTP over UDP by default unless the RTSP client demands a TCP stream. 除非RTSP客户端要求TCP流,否则LIVE555 Media Server默认情况下使用基于UDPRTP

UDP is considered an unreliable protocol because there's no guarantee of delivery, the packets can arrive at the destination in a different order and/or duplicated. UDP被认为是不可靠的协议,因为无法保证传递,数据包可以以不同的顺序到达目的地和/或重复。

If the underlying network connection is not reliable you can experience a lot of packet loss like in your case and the stream will play with a lot of errors. 如果基础网络连接不可靠,您可能会遇到很多丢包的情况,流将播放很多错误。

You don't have enough bandwidth available to receive this stream (or to send it alternatively). 您没有足够的带宽来接收此流(或交替发送)。

The RTP: missed packet message tells you so. RTP: missed packet消息告诉您。 Going through TCP can only make things worst, not better, since TCP use more bandwidth for headers and the AIMD algorithm used to fit the channel's bandwidth will loose more packet (Additive increase multiplicative decrease). 通过TCP只会使事情变得更糟,而不会变得更好,因为TCP使用更多带宽作为标头,并且用于适应通道带宽的AIMD算法将丢失更多数据包(加法,乘积,减法)。

There is nothing you can do, except reducing the encoding bitrate (if you have control on it), improve buffering (if you have control on it), or use a different protocol that'll pre-buffer the stream. 除了降低编码比特率(如果可以控制),改善缓冲(如果可以控制)或使用其他可以预缓冲流的协议之外,您什么也不能做。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM