背景:使用ffmpeg通过rtsp协议调取监控视频。
问题:监控到ffmpeg的rtp传输过程有丢包,但是程序读取到的是一帧数据,不知道实际的网络丢包情况。这样的话,程序拆包后把视频发送给终端后,终端根本不知道丢包了,这就导致了终端花瓶,终端的无花瓶模式失效。
解决:在av_read_frame调用rtsp接口读取rtp包的时候,通过rtp包seq检测丢包,然后一层层报上去,最终将丢包标志赋值给pkt。上层应用程序发现pkt丢包后,在对pkt数据做拆包时,就可以进行人为的丢包。这样终端就能知道实际丢包情况,进而做特殊处理。
欢迎大家一起学起交流 QQ:2943916808