Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 通过UDP流化h.264编码视频_Video_Udp_Video Streaming_Mp4_H.264 - Fatal编程技术网

Video 通过UDP流化h.264编码视频

Video 通过UDP流化h.264编码视频,video,udp,video-streaming,mp4,h.264,Video,Udp,Video Streaming,Mp4,H.264,我对h.264不太了解,但问题是,我在mp4容器中获得了h.264中的视频,我希望通过UDP传输 我的问题很简单,在对视频进行编码时,我是否可以做一些调整,以使其能够承受一些“轻微”的数据包丢失 我知道压缩视频通常每N帧有一个关键帧,然后在这些帧之间它只发送增量。我可以想象h.264应该比这复杂得多,所以它可能不是那么简单 更准确地说,我已经做了一些实验,并意识到只要从视频流中删除1024字节,我就可以从丢失的角度将其完全“无法播放” 我希望它能承受这样的轻微损失,有可能吗 谢谢 Nelson这

我对h.264不太了解,但问题是,我在mp4容器中获得了h.264中的视频,我希望通过UDP传输

我的问题很简单,在对视频进行编码时,我是否可以做一些调整,以使其能够承受一些“轻微”的数据包丢失

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

更准确地说,我已经做了一些实验,并意识到只要从视频流中删除1024字节,我就可以从丢失的角度将其完全“无法播放”

我希望它能承受这样的轻微损失,有可能吗

谢谢


Nelson

这取决于您丢失的数据。H264流中的某些数据不是可能丢失的数据。例如,如果您丢弃1024字节的实验恰好是您发送的第一个1024字节,那么您可能丢弃了序列参数集和图片参数集(SPS/PPS),这基本上就是告诉解码器如何解释传入信息的信息。您也可能无法从流中随机删除1024字节;通常H264是打包的,这样无论如何都不会发生类似的事情

所以H264确实包含一些小数据块,它们实际上是不“可丢弃的”;许多流协议(如RTSP)明确指出,不应通过有损传输通道发送此类信息,而应在SDP交换(通过TCP进行)期间发送此类信息

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