如何对RTSP播放器做功能和性能评估
好多開發(fā)者在做產(chǎn)品競品分析的時(shí)候,不知道如何界定一個(gè)RTSP播放器,大牛直播SDK認(rèn)為,一個(gè)RTSP播放器,不是說有幾個(gè)類似于Open/Close接口就夠了,好的RTSP播放器需要具備以下功能和性能屬性:
1. 低延遲:大多數(shù)RTSP的播放都面向直播場景,所以,如果延遲過大,比如監(jiān)控行業(yè),小偷都走了,客戶端才看到,或者別人已經(jīng)按過門鈴幾秒,主人才看到圖像,嚴(yán)重影響體驗(yàn),所以,低延遲是衡量一個(gè)好的RTSP播放器非常重要的指標(biāo),目前大牛直播SDK的RTSP播放延遲控制在幾百毫秒,VLC在幾秒,這個(gè)延遲,是長時(shí)間的低延遲,比如運(yùn)行1天、一周、一個(gè)月甚至更久;
2. 音視頻同步或跳轉(zhuǎn):有些開發(fā)者為了追求低延遲體驗(yàn),甚至不做音視頻同步,拿到audio video直接播放,導(dǎo)致a/v不同步,還有就是時(shí)間戳亂跳;
3. 支持多實(shí)例:一個(gè)好的播放器,需要支持同時(shí)播放多路音視頻數(shù)據(jù),比如4-8-9-16-32窗口;
4. 支持buffer time設(shè)置:在一些有網(wǎng)絡(luò)抖動(dòng)的場景,播放器需要支持精準(zhǔn)的buffer time設(shè)置,一般來說,以毫秒計(jì);
5. H.265的播放和錄制:除了H.264,還需要支持H.265,目前市面上的RTSP H.265攝像頭越來越多,支持H.265的RTSP播放器迫在眉睫,此外,單純的播放H.265還不夠,還需要可以能把H.265的數(shù)據(jù)能錄制下來;
6. TCP/UDP模式切換:考慮到好多服務(wù)器僅支持TCP或UDP模式,一個(gè)好的RTSP播放器需要支持TCP/UDP模式自動(dòng)切換;
7. 靜音支持:比如,多窗口播放RTSP流,如果每個(gè)audio都播放出來,體驗(yàn)非常不好,所以實(shí)時(shí)靜音功能非常必要;
8. 視頻view旋轉(zhuǎn):好多攝像頭由于安裝限制,導(dǎo)致圖像倒置,所以一個(gè)好的RTSP播放器應(yīng)該支持如視頻view實(shí)時(shí)旋轉(zhuǎn)(0° 90° 180° 270°)、水平反轉(zhuǎn)、垂直反轉(zhuǎn);
9. 支持解碼后audio/video數(shù)據(jù)輸出(可選):大牛直播SDK接觸到好多開發(fā)者,希望能在播放的同時(shí),獲取到Y(jié)UV或RGB數(shù)據(jù),進(jìn)行人臉匹配等算法分析,所以音視頻回調(diào)可選;
10. 快照:感興趣或重要的畫面,實(shí)時(shí)截取下來非常必要;
11. 網(wǎng)絡(luò)抖動(dòng)處理(如斷網(wǎng)重連):基本功能,不再贅述;
12. 跨平臺(tái):一個(gè)好的播放器,跨平臺(tái)(Windows/Android/iOS)很有必要,起碼為了后續(xù)擴(kuò)展性考慮,開發(fā)的時(shí)候,有這方面的考慮,目前大牛直播SDK的RTSP播放器,完美支持以上平臺(tái);
13. 長期運(yùn)行穩(wěn)定性:提到穩(wěn)定性,好多開發(fā)者不以為然,實(shí)際上,一個(gè)好的產(chǎn)品,穩(wěn)定是最基本的前提,不容忽視!
14. 可以錄像:播放的過程中,隨時(shí)錄制下來感興趣的視頻片斷,存檔或其他二次處理;
15. log信息記錄:整體流程機(jī)制實(shí)時(shí)反饋,不多打log,但是不能一些重要的log,如播放過程中出錯(cuò)等;
16. download速度實(shí)時(shí)反饋:可以看到實(shí)時(shí)下載速度反饋,以此來監(jiān)聽網(wǎng)絡(luò)狀態(tài);
17. 異常狀態(tài)處理:如播放的過程中,斷網(wǎng)、網(wǎng)絡(luò)抖動(dòng)、來電話、切后臺(tái)后返回等各種場景的處理。
說了這么多,有開發(fā)者會(huì)反問,大牛直播SDK到底支持了哪些?以下做個(gè)簡單功能概述,如不單獨(dú)說明,系Windows、Android、iOS全平臺(tái)支持:
- ?[支持播放協(xié)議]高穩(wěn)定、超低延遲、業(yè)內(nèi)首屈一指的RTSP直播播放器SDK;
- ?[多實(shí)例播放]支持多實(shí)例播放;
- ?[事件回調(diào)]支持網(wǎng)絡(luò)狀態(tài)、buffer狀態(tài)等回調(diào);
- ?[視頻格式]支持H.265、H.264,此外,Windows/Android平臺(tái)還支持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支持設(shè)置Surface模式硬解和普通模式硬解碼;
- ?[RTSP模式設(shè)置]支持RTSP TCP/UDP模式設(shè)置;
- ?[RTSP TCP/UDP自動(dòng)切換]支持RTSP TCP、UDP模式自動(dòng)切換;
- ?[RTSP超時(shí)設(shè)置]支持RTSP超時(shí)時(shí)間設(shè)置,單位:秒;
- ?[RTSP 401認(rèn)證處理]支持上報(bào)RTSP 401事件,如URL攜帶鑒權(quán)信息,會(huì)自動(dòng)處理;
- ?[緩沖時(shí)間設(shè)置]支持buffer time設(shè)置;
- ?[首屏秒開]支持首屏秒開模式;
- ?[復(fù)雜網(wǎng)絡(luò)處理]支持?jǐn)嗑W(wǎng)重連等各種網(wǎng)絡(luò)環(huán)境自動(dòng)適配;
- ?[快速切換URL]支持播放過程中,快速切換其他URL,內(nèi)容切換更快;
- ?[音視頻多種render機(jī)制]Android平臺(tái),視頻:surfaceview/OpenGL ES,音頻:AudioTrack/OpenSL ES;
- ?[實(shí)時(shí)靜音]支持播放過程中,實(shí)時(shí)靜音/取消靜音;
- ?[實(shí)時(shí)快照]支持播放過程中截取當(dāng)前播放畫面;
- ?[渲染角度]支持0°,90°,180°和270°四個(gè)視頻畫面渲染角度設(shè)置;
- ?[渲染鏡像]支持水平反轉(zhuǎn)、垂直反轉(zhuǎn)模式設(shè)置;
- ?[實(shí)時(shí)下載速度更新]支持當(dāng)前下載速度實(shí)時(shí)回調(diào)(支持設(shè)置回調(diào)時(shí)間間隔);
- ?[解碼前視頻數(shù)據(jù)回調(diào)]支持H.264/H.265數(shù)據(jù)回調(diào);
- ?[解碼后視頻數(shù)據(jù)回調(diào)]支持解碼后YUV/RGB數(shù)據(jù)回調(diào);
- ?[解碼前音頻數(shù)據(jù)回調(diào)]支持AAC/PCMA/PCMU/SPEEX數(shù)據(jù)回調(diào);
- ?[音視頻自適應(yīng)]支持播放過程中,音視頻信息改變后自適應(yīng);
- ?[擴(kuò)展錄像功能]完美支持和錄像SDK組合使用(支持RTSP H.265流錄制,支持PCMA/PCMU轉(zhuǎn)AAC后錄制,支持設(shè)置只錄制音頻或視頻)。
總結(jié)
以上是生活随笔為你收集整理的如何对RTSP播放器做功能和性能评估的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一文串起从NLP到CV 预训练技术和范式
- 下一篇: 【Python】详解Pandas与Lam