我通过UDP(视频数据)接收RTP。
RTP持有我需要解码的H264。不幸的是,大多数RTP都存在碎片数据。由于缺少RTP序列,我无法正确重建H264。
有关如何减少数据丢失以便能够解码至少几帧的任何想法吗?
答案 0 :(得分:2)
没有多少可以说的。如形容词暗示的那样,丢失的数据会丢失。你无法取回它。几乎在任何情况下,您仍然可以将剩余的NAL提供给解码器并渲染视频。您将看到由缺失的NAL引入的工件,但这就是生命。
丢失的数据丢失。
为了减少数据丢失,您需要更改传输协议。 RTSP中的交叉RTP可能是基于类似技术堆栈的不错选择。
如果您有足够的带宽来传输视频,更改为TCP显然只会有所帮助。
答案 1 :(得分:1)
如果您可以控制H264编码器,请启用错误恢复工具,(http://www.slideshare.net/coldfire7/error-resiliency-and-concealment-in-h264-presentation) 这使您的视频在传输错误方面更加强大。
这样你的RTP over UDP就会对数据包丢失“更具抵抗力”。