直接用 demux 在有些網絡中,丟包畫屏;
再ffmpeg和ffplay中,可以指定 tcp 方式,所以代碼直接設置陶瓷坯方式;
// 設置RTSP選項優化接收數據流防止數據包丟失
av_dict_set(&options, "rtsp_transport", "tcp", 0);
av_dict_set(&options, "stimeout", "5000000", 0); // 設置RTSP超時時間(5秒)
av_dict_set(&options, "max_delay", "500000", 0); // 設置最大延遲(500ms)
av_dict_set(&options, "fflags", "+genpts", 0);// 強制生成PTS(若流中缺少)
avformat_open_input 的時候設置完成;
這個文章寫的不錯可以參考:?使用ffmpeg實現rtsp流錄播功能_ffmpeg rtsp-CSDN博客