在項目中使用到了FFmpeg實現屏幕廣播技術,其物理拓撲圖如下:
由於我們的場景是在局域網中,因此基於FFmpeg的udp協議進行播放;當視頻流是從windows 10 系統播出時,部分接收端存在局部花屏現象現象;
爲了驗證花屏問題,我們提出兩種解決方案:
-
控制播放源的發送數據大小
-
增加接收緩存區,避免丟包
方法一:
我們把播放源的計算機網絡環境從自動監測設置爲100M雙工時,接收端花屏現象就不存在了;但這個極大浪費了當前的網絡帶寬,非優選方案
方法二:
通過查詢資料,1920*1080高分辨率情況下,FFmpeg發送的數據會比較大,超過了FFmpeg默認最大值,需要擴大接收端的接收緩衝區,其方法修改方法如下:
在FFmpeg的源碼中,找到udp.c文件並修改UDP_MAX_PKT_SIZE 默認值
在同等條件下,發現接收端已經不存在局部花屏現象,此方案爲最優
參考資料:
https://blog.csdn.net/sz76211822/article/details/87797475