通过UDP流式传输h.264编码视频

我不太了解h.264,但问题是我在h.264中有一个mp4容器中的这个视频我想通过UDP传输.

我的问题很简单,在对视频进行编码时是否可以进行任何调整,以便它能够相当容忍某些“轻”数据包丢失?

我知道压缩视频通常每N帧有一个关键帧,然后在它们之间只发送增量.我可以想象h.264应该比那复杂得多,所以它可能不是那么简单.

更确切地说,我一直在做一些实验,并意识到只需从视频流中删除1024个字节,我就会从丢失和开启的角度将其完全“无法播放”.

我想要的是它能够忍受这样的光损失,这可能吗?

谢谢

纳尔逊

这取决于您丢失的数据. H264流中的某些数据不是可能丢失的数据.例如,如果您丢弃1024字节的实验恰好是您发送的前1024个字节,那么您可能删除了序列参数集和图片参数集(SPS / PPS),这基本上是告诉解码器如何的信息解释传入的信息.您也可能不能只从流中删除1024个字节;通常H264是打包的,所以不管怎么说都不会发生.

所以H264确实包含一些真正不可“丢弃”的小数据;许多流媒体协议(如RTSP)通过明确说明您不应该通过有损传输通道发送此类信息,而是在SDP交换期间(通过TCP发生)来明确这一点.

就损耗容限而言,H264确实具有有助于损失容限的功能(ASO,FMO等),但实际上大多数编码器都不支持它们.如果可以,我会使用x264;他们的低延迟流式传输配置据称即使丢包率高达20%或更高也能正常工作.如果您的H264已经编码,那么没有太多工作要做.您的视频已经过编码,您必须按原样播放.

相关文章
相关标签/搜索