好多開發者在做産品競品分析的時候,不知道如何界定一個RTSP播放器,大牛直播SDK認為,一個RTSP播放器,不是說有幾個類似于Open/Close接口就夠了,好的RTSP播放器需要具備以下功能和性能屬性:
1. 低延遲:大多數RTSP的播放都面向直播場景,是以,如果延遲過大,比如監控行業,小偷都走了,用戶端才看到,或者别人已經按過門鈴幾秒,主人才看到圖像,嚴重影響體驗,是以,低延遲是衡量一個好的RTSP播放器非常重要的名額,目前大牛直播SDK的RTSP播放延遲控制在幾百毫秒,VLC在幾秒,這個延遲,是長時間的低延遲,比如運作1天、一周、一個月甚至更久;
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. 長期運作穩定性:提到穩定性,好多開發者不以為然,實際上,一個好的産品,穩定是最基本的前提,不容忽視!
14. 可以錄像:播放的過程中,随時錄制下來感興趣的視訊片斷,存檔或其他二次處理;
15. log資訊記錄:整體流程機制實時回報,不多打log,但是不能一些重要的log,如播放過程中出錯等;
16. download速度實時回報:可以看到實時下載下傳速度回報,以此來監聽網絡狀态;
17. 異常狀态處理:如播放的過程中,斷網、網絡抖動、來電話、切背景後傳回等各種場景的處理。
說了這麼多,有開發者會反問,大牛直播SDK到底支援了哪些?以下做個簡單功能概述,如不單獨說明,系Windows、Android、iOS全平台支援:
- [支援播放協定]高穩定、超低延遲、業内首屈一指的RTSP直播播放器SDK;
- [多執行個體播放]支援多執行個體播放;
- [事件回調]支援網絡狀态、buffer狀态等回調;
- [視訊格式]支援H.265、H.264,此外,Windows/Android平台還支援RTSP MJPEG播放;
- [音頻格式]支援AAC/PCMA/PCMU;
- [H.264/H.265軟解碼]支援H.264/H.265軟解;
- [H.264硬解碼]Android/iOS支援H.264硬解;
- [H.265硬解]Android/iOS支援H.265硬解;
- [H.264/H.265硬解碼]Android支援設定Surface模式硬解和普通模式硬解碼;
- [RTSP模式設定]支援RTSP TCP/UDP模式設定;
- [RTSP TCP/UDP自動切換]支援RTSP TCP、UDP模式自動切換;
- [RTSP逾時設定]支援RTSP逾時時間設定,機關:秒;
- [RTSP 401認證處理]支援上報RTSP 401事件,如URL攜帶鑒權資訊,會自動處理;
- [緩沖時間設定]支援buffer time設定;
- [首屏秒開]支援首屏秒開模式;
- [複雜網絡處理]支援斷網重連等各種網絡環境自動适配;
- [快速切換URL]支援播放過程中,快速切換其他URL,内容切換更快;
- [音視訊多種render機制]Android平台,視訊:surfaceview/OpenGL ES,音頻:AudioTrack/OpenSL ES;
- [實時靜音]支援播放過程中,實時靜音/取消靜音;
- [實時快照]支援播放過程中截取目前播放畫面;
- [渲染角度]支援0°,90°,180°和270°四個視訊畫面渲染角度設定;
- [渲染鏡像]支援水準反轉、垂直反轉模式設定;
- [實時下載下傳速度更新]支援目前下載下傳速度實時回調(支援設定回調時間間隔);
- [解碼前視訊資料回調]支援H.264/H.265資料回調;
- [解碼後視訊資料回調]支援解碼後YUV/RGB資料回調;
- [解碼前音頻資料回調]支援AAC/PCMA/PCMU/SPEEX資料回調;
- [音視訊自适應]支援播放過程中,音視訊資訊改變後自适應;
- [擴充錄像功能]完美支援和錄像SDK組合使用(支援RTSP H.265流錄制,支援PCMA/PCMU轉AAC後錄制,支援設定隻錄制音頻或視訊)。
相關資料:Github:
https://github.com/daniulive/SmarterStreaming