最近搞了個rtsp直播,初步是能用了,但是最終效果不是很好,客戶不接受要求我們一定要繼續優化。
原因是他們體驗的時候發現會概率性出現馬賽克和畫面卡頓情況,經過我們測試驗證,確實是有這個問題存在。
從原理上分析可能的原因有如下幾個:
1、網絡原因導致丟幀了。 2、App客戶端接收buf不夠大。 3、rtsp服務器發送buf不夠大。
我們通過和App聯調,將buf緩沖區改大了很多倍然后進行測試,發現效果沒有得到改善,所以應該不是這兩個原因。
那就只能是第一個原因,通過網絡工具監視分析,發現我們的wifi網絡帶寬是足夠的,按照我們直播的分辨率和碼流計算,實時帶寬只要有600kb就足夠了,wifi測試文件下載可以達到5M/s.
但是在做直播的時候網速質量的穩定性不好,就是有時候會突然掉到200kb/s,以下,然后又恢復回去。
於是我們做了第一個改善,
改善一:降低直播視頻編碼的碼率
經過驗證將網絡需求控制在200kb/s左右是效果有比較大的改善,但是概率性還是會有,只是好了很多,為什么不能再往下降了呢,因為碼率再往下降視頻清晰度太低了沒法用。
另外通過vlc播放器的分析對比查看,另外一款產品rtsp比較流暢的I幀的頻率比我們高很多,我們的一秒只有一幀II幀,但是他們的大概有4幀I幀。
所以我們做了第二個改善
改善二:增加編碼 I 幀 的頻率。
我們測試改到一秒六幀,效果又進一步提升。