RTSP播放器开发过程中需要考虑哪些关键因素
好多開發者,在自研或者選擇市面上的播放器的時候,除了常規的播放功能,還有很多點值得關注,如延遲、資源占用、網絡異常處理、多實例支持、長時間運行穩定性等。以下是我們開發直播播放器過程中,考慮的部分關鍵因素(以Windows平臺RTSP直播播放為例,如需下載demo源碼,可以到 Github 下載):
1. 低延遲:大多數RTSP的播放都面向直播場景,所以,如果延遲過大,嚴重影響體驗,所以,低延遲是衡量一個好的RTSP播放器非常重要的指標,目前大牛直播SDK的RTSP直播播放延遲比開源播放器更優異,而且長時間運行下,不會造成延遲累積;
2. 音視頻同步處理:有些播放器為了追求低延遲,甚至不做音視頻同步,拿到audio video直接播放,導致a/v不同步,還有就是時間戳亂跳等各種問題,大牛直播SDK提供的播放器,具備好的時間戳同步和異常時間戳矯正機制;
3. 支持多實例:大牛直播SDK提供的播放器支持同時播放多路音視頻數據,比如4-8-9窗口,大多開源播放器對多實例支持不太友好;
4. 支持buffer time設置:在一些有網絡抖動的場景,播放器需要支持buffer time設置,一般來說,以毫秒計,開源播放器對此支持不夠友好;
5. TCP/UDP模式設定、自動切換:考慮到好多服務器僅支持TCP或UDP模式,一個好的RTSP播放器需要支持TCP/UDP模式設置,如鏈接不支持TCP或UDP,大牛直播SDK可自動切換,,開源播放器不具備自動切換TCP/UDP能力;
6. 實時靜音:比如,多窗口播放RTSP流,如果每個audio都播放出來,體驗非常不好,所以實時靜音功能非常必要,開源播放器不具備實時靜音功能;
7. 視頻view旋轉:好多攝像頭由于安裝限制,導致圖像倒置,所以一個好的RTSP播放器應該支持如視頻view實時旋轉(0° 90° 180° 270°)、水平反轉、垂直反轉,開源播放器不具備此功能;
8. 支持解碼后audio/video數據輸出:大牛直播SDK接觸到好多開發者,希望能在播放的同時,獲取到YUV或RGB數據,進行人臉匹配等算法分析,開源播放器不具備此功能;
9. 實時快照:感興趣或重要的畫面,實時截取下來非常必要,一般播放器不具備快照能力,開源播放器不具備此功能;
10. 網絡抖動處理(如斷網重連):穩定的網絡處理機制、支持如斷網重連等,開源播放器對網絡異常處理支持較差;
11. 長期運行穩定性:不同于市面上的開源播放器,大牛直播SDK提供的Windows平臺RTSP直播播放SDK適用于數天長時間運行,開源播放器對長時間運行穩定性支持較差;
12. log信息記錄:整體流程機制記錄到LOG文件,確保出問題時,有據可依,開源播放器幾無log記錄。
13. 實時下載速度反饋:大牛直播SDK提供音視頻流實時下載回調,并可設置回調時間間隔,確保實時下載速度反饋,以此來監聽網絡狀態,開源播放器不具備此能力;
14. 異常狀態處理、Event狀態回調:如播放的過程中,斷網、網絡抖動、等各種場景,大牛直播SDK提供的播放器可實時回調相關狀態,確保上層模塊感知處理,開源播放器對此支持不好;
15. 關鍵幀/全幀播放實時切換:特別是播放多路畫面的時候,如果路數過多,全部解碼、繪制,系統資源占用會加大,如果能靈活的處理,可以隨時只播放關鍵幀,全幀播放切換,對系統性能要求大幅降低。
總的來說,無論是基于開源播放器二次開發,還是全自研,一個好的RTMP播放器或RTSP播放器,設計的時候,更多考慮的應該是如何做的更靈活、穩定,單純的幾個接口,很難滿足通用化的產品訴求。
總結
以上是生活随笔為你收集整理的RTSP播放器开发过程中需要考虑哪些关键因素的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 直播系统中使用SEI传输用户自定义数据方
- 下一篇: 【CV】使用计算机视觉算法检测钢板中的焊