背景介紹
EasyPlayer實現了對遵循標準流媒體碼流協議進行實時播放以及碼流錄製,在流的播放速度以及畫質的解碼顯示上均做了大量深度的優化。支持Windows(支持多窗口、包含ActiveX,npAPI Web插件)、Android平臺,iOS平臺。
EasyPlayer和vlc播放RTSP流不兼容問題
之前有用戶諮詢關於EasyPlayer播放器的兼容問題,具體是分別用EasyPlayer和vlc播放大華攝像機的RTSP流,流地址是:rtsp://admin:[email protected]:554/cam/realmonitor?channel=1&subtype=0。用EasyPlayer播放這個地址會在兩次RTSP DESCRIBE之間間隔大概10s,纔會繼續發送下一次請求,而且vlc整個流程都很快很順利。
我們用相同的RTSP播放地址傳輸給播放器,然後分別抓了EasyPlayer RTSP播放流程抓拍和vlc播放流程抓包。
EasyPlayer的抓包流程:
vlc的抓包流程:
根據抓包流程我們可以看出,EasyPlayer前後卡了兩次,且都是在認證階段,而vlc的播放OPTION/DESCRIBE/SETUP/PLAY是在同一秒內完成的。因此通過分析我們就能看出來差異所在:
1、vlc的播放uri是不帶用戶名密碼的,爲純粹的播放路徑,而EasyPlayer的播放路徑是帶用戶名密碼的;
2、vlc的播放是從OPTIONS發起的,而EasyPlayer是從DESCRIBE發起的。
結果如抓包推測,在大華、以及海康某些攝像機,如果播放URL中攜帶了用戶名密碼,是無法正常進行流程的;而VL的RTSP的流程發起從OPTIONS開始;且在用戶輸入帶用戶名密碼的RTSP地址(rtsp://user:pwd@xxx)後,先做用戶名密碼的拆分,再在RTSP流程中將用戶名密碼傳入,如此便保證了最大兼容。
在EasyPlayer的新版本中,我們也已經規避了此類問題的再次出現,按照最大兼容的方案來歸檔發佈。因此若仍然有用戶出現此類問題,可以下載最新版本的EasyPlayer進行嘗試,如還不能正常播放,可隨時與我們溝通以便其他問題的排查。