h .rtsp流中的i帧丢失处理

h.264 I-frame loss handling in rtsp streaming

本文关键字:处理 rtsp      更新时间:2023-10-16

我正在开发一个使用Live555打开rtsp流并使用FFMPEG解码视频流的播放器。我被困在一个点上,即IDR帧在网络上丢失,因此在解码其后续B/P帧后,它在视频中显示抖动效果。它在视频中的表现非常糟糕。

所以我的问题是,我如何处理I帧数据包丢失?我想知道是否有任何策略/算法来处理丢包,使视频应该平滑或清晰。

任何帮助将不胜感激。谢谢你。

如果这是第一种方法,我猜你同步解码帧,我的意思是Live555 after get回调直接调用avcodec_decode_video2的FFMPEG。

在这种情况下,在解码过程中不读取接收套接字,然后数据包被缓冲直到溢出。

你可以尝试不同的解决方法,比如增加套接字缓冲区,使用RTP超过TCP,但一个真正的解决方案需要更多的异步,例如,afterget可以将数据推送到fifo,解码线程可以从中获取。

好吧,一旦i帧丢失,它就丢失了。你不能在客户端做任何事情。我们可以解决这个问题的唯一方法是配置服务器(即:streamer)以一种方式发送更频繁的i帧(即:流中更多的i帧)或更不频繁的i帧(即流中更少的i帧)(如果你使用ffmpeg/libx264,它可以在发送i帧时精确到令人难以置信的水平)。