日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RTSP播放器开发填坑之道

發(fā)布時間:2025/3/12 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RTSP播放器开发填坑之道 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

好多開發(fā)者提到,在目前開源播放器如此泛濫的情況下,為什么還需要做自研框架的RTSP播放器,自研和開源播放器,到底好在哪些方面?以下大概聊聊我們的一點經(jīng)驗,感興趣的,可以關注?github:

1.?低延遲:大多數(shù)RTSP的播放都面向直播場景,如果延遲過大,嚴重影響體驗,所以,低延遲是衡量一個好的RTSP播放器非常重要的指標,目前大牛直播SDK的RTSP直播播放延遲比開源播放器更優(yōu)異(大牛直播SDK延遲在1秒左右,開源播放器如VLC,延遲相對比較大),而且長時間運行下,大牛直播SDK播放端不會造成延遲累積,開源或第三方播放器,長時間運行,容易產(chǎn)生延遲累積;

2. 音視頻同步處理:大多播放器為了追求低延遲,甚至不做音視頻同步,拿到audio video直接播放,導致a/v不同步,還有就是時間戳亂跳等各種問題,大牛直播SDK提供的播放器,具備好的時間戳同步和異常時間戳矯正機制;

備注:如果是超低延遲模式下,可以0 buffer,不做音視頻同步:

3. 支持多實例:大牛直播SDK提供的RTSP直播播放SDK支持在設備性能允許的情況下,支持多實例播放RTSP流數(shù)據(jù),大多開源播放器對多實例支持不太友好;

4. 支持buffer time設置:在一些有網(wǎng)絡抖動的場景,播放器需要支持buffer time設置,一般來說,以毫秒計,開源播放器對此支持不夠友好;

5. 實時靜音:比如,多窗口播放RTSP流,如果每個audio都播放出來,體驗非常不好,所以實時靜音功能非常必要,開源播放器不具備實時靜音功能;

6. 視頻view旋轉:好多攝像頭由于安裝限制,導致圖像倒置,所以一個好的RTSP播放器應該支持如視頻view實時旋轉(0° 90° 180° 270°)、水平反轉、垂直反轉,開源或第三方播放器不具備此功能;

7. 支持解碼后audio/video數(shù)據(jù)輸出:大牛直播SDK接觸到好多開發(fā)者,希望能在播放的同時,獲取到YUV或RGB數(shù)據(jù),進行人臉匹配等算法分析,開源播放器不具備此功能;

8. 實時快照:感興趣或重要的畫面,實時截取下來非常必要,一般播放器不具備快照能力,開源播放器不具備此功能;

9. 網(wǎng)絡抖動處理(如斷網(wǎng)重連):穩(wěn)定的網(wǎng)絡處理機制、支持如斷網(wǎng)重連等,開源播放器對網(wǎng)絡異常處理支持較差;

10. 長期運行穩(wěn)定性:大牛直播SDK提供的RTSP直播播放SDK適用于長時間運行,開源播放器對長時間運行穩(wěn)定性支持較差;

11. 實時下載速度反饋:大牛直播SDK提供音視頻流實時下載回調,并可設置回調時間間隔,確保實時下載速度反饋,以此來監(jiān)聽網(wǎng)絡狀態(tài),開源播放器不具備此能力;

12. 異常狀態(tài)處理、Event狀態(tài)回調:如播放的過程中斷網(wǎng),大牛直播SDK提供的播放器可實時回調相關狀態(tài),確保上層模塊感知處理,開源播放器對此支持不好;

13. 設置視頻填充模式(等比例顯示):好多情況下,有些場景需要全view鋪滿播放,有些為了防止視頻拉伸,可以設置成等比例縮放顯示;

14. D3D檢測:一般來說市面上的大多Windows都支持D3D,有些小眾化的,只支持GDI模式繪制,所以為了更好的兼容性,這個接口非常必要;

15. 實時音量調節(jié):實時音量調節(jié)特別是在多路播放的場景下,如大屏窗體環(huán)境下,通過更細粒度的音量調節(jié),實現(xiàn)更好的播放體驗;

16. 只播放關鍵幀:特別是大屏多實例場景播放的時候,盡管我們已經(jīng)CPU占用非常低了,如果只是查看大概的監(jiān)控情景,實現(xiàn)更多路的播放,只播放關鍵幀是個非常好的功能點,如果需要原始幀播放,可以實時調節(jié)即可;

17. 特定機型硬解碼:特定機型硬解碼,也主要是用于多路播放場景下,通過硬解碼,實現(xiàn)更低的CPU占用目的;

18. TCP-UDP設置:考慮到部分服務器或硬件設備或網(wǎng)絡環(huán)境對TCP、UDP某一個支持的比較好,我們加了設置接口;

19. TCP-UDP自動切換:這個是更細力度的接口,比如默認設置了TCP模式,TCP模式下收不到數(shù)據(jù),超時后,自動切換到UDP模式嘗試,一般開源播放器不具備此功能;

20. 超時時間設定:比如10-12秒收不到數(shù)據(jù),自動重連,一般開源播放器支持不好。

總結

基于上述因素,想做好一個RTSP或者RTMP播放器,需要考慮的點實在太多了,特別是細節(jié)問題,開源的表面看省了前80%的經(jīng)歷,但是因為大多開源播放器系統(tǒng)比較龐大,適用于點播播放,卻對直播播放支持很差,如果要做細粒度的控制和bug修復,剩余20%的經(jīng)歷,可能會耗費研發(fā)人員更大的精力,不過換句話說,對技術人員成長還是非常有利的。

總結

以上是生活随笔為你收集整理的RTSP播放器开发填坑之道的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。