如何优雅的实现一个靠谱的RTSP播放器?
二話不說,NO 圖 NO BB(以大牛直播SDK播放海康攝像機RTSP H.265流為例):
行業的浮躁,好多開發者甚至連rtsp、rtp細節不了解,依葫蘆畫瓢調用了ffmpeg的一些接口,就實現了個簡單版的播放器,導致不少開發者找我們交流的時候甚至說,實現個RTSP播放很容易,兩三周或個把月就可以做到你們這個程度,一般我們不置可否,被問的多了,偶爾也反駁一句:我們原地踏步1年你也不一定能趕得上。
大牛直播SDK認為,一個好的RTSP播放器,需要具備以下功能:
1. 低延遲:大多數RTSP的播放都面向直播場景,所以,如果延遲過大,比如監控行業,小偷都走了,客戶端才看到,或者別人已經按過門鈴幾秒,主人才看到圖像,嚴重影響體驗,所以,低延遲是衡量一個好的RTSP播放器非常重要的指標,目前大牛直播SDK的RTSP播放延遲控制在幾百毫秒,VLC在幾秒;
2. 音視頻同步或跳轉:有些開發者為了追求低延遲體驗,甚至不做音視頻同步,拿到audio video直接播放,導致a/v不同步,還有就是時間戳亂跳,大家真的友好的處理了嗎?
3. 支持多實例:一個好的播放器,需要支持同時播放多路音視頻數據,比如4-8-9-16-32窗口;
4. 支持buffer time設置:在一些有網絡抖動的場景,播放器需要支持精準的buffer time設置;
5. H.265的播放和錄制:除了H.264,還需要支持H.265,目前市面上的RTSP H.265攝像頭越來越多,支持H.265的RTSP播放器迫在眉睫,此外,單純的播放H.265還不夠,還需要可以能把H.265的數據能錄制下來;
6. TCP/UDP模式切換:考慮到好多服務器僅支持TCP或UDP模式,一個好的RTSP播放器需要支持TCP/UDP模式自動切換;
7. 靜音支持:比如,多窗口播放RTSP流,如果每個audio都播放出來,體驗非常不好,所以實時靜音功能非常必要;
8. 視頻view旋轉:好多攝像頭由于安裝限制,導致圖像倒置,所以一個好的RTSP播放器應該支持如視頻view實時旋轉(0° 90° 180° 270°)、水平反轉、垂直反轉;
9. 支持解碼后audio/video數據輸出:大牛直播SDK接觸到好多開發者,希望能在播放的同時,獲取到YUV或RGB數據,進行人臉匹配等算法分析,所以音視頻回調可選;
10. 快照:感興趣或重要的畫面,實時截取下來非常必要;
11. 網絡抖動處理(如斷網重連):基本功能,不再贅述;
12. 跨平臺:一個好的播放器,跨平臺(Windows/Android/iOS)很有必要,起碼為了后續擴展性考慮,開發的時候,有這方面的考慮,目前大牛直播SDK的RTSP播放器,完美支持以上平臺;
13. 長期運行穩定性:提到穩定性,好多開發者不以為然,實際上,一個好的產品,穩定是最基本的前提,不容忽視!
總結
以上是生活随笔為你收集整理的如何优雅的实现一个靠谱的RTSP播放器?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【NLP】Sentence-T5|谷歌提
- 下一篇: 码云提交时报错git 报错 fatal: