本文介紹視頻流接入的常見問題及解決方案。
視頻流接入問題分析
問題現象
視頻流接入是一個涉及瀏覽器、視頻流、播放器多方的綜合問題,DataV產品作為可視化頁面搭建工具,只是將視頻播放器以組件的形式進行整合,由於定位手段比較有限,無法直接深入瀏覽器、視頻流、播放器本身進行定位。而視頻監控廠家、碼流格式、私人協議眾多,至今未找到能相容所有視頻流的播放器。
解決方案
目前最簡單直接的解決方案,是引入視頻轉碼廠家部署轉碼伺服器,對視頻流進行轉碼以適配Web端播放,之前有比較多專案採用該方案取得良好效果。
視頻流接入常見問題排查
視頻播放卡頓或者無法播放時,定位路徑是什嗎?
如果遇見視頻播放卡頓或者無法播放的情況,您可以按照以下方法進行排查:
檢查網路情況,查看頻寬是否能支撐當前播放路徑同時播放,如果不能建議您升級網路。
說明如果通過視頻監控平台軟體和VLC播放器能流暢播放,並不能代表在瀏覽器上能流暢播放。可以通過螢石雲播放器進行測試,看同時多路播放是否流暢。
查看機器效能是否足夠。由於瀏覽器依賴CPU解碼,同時啟動並執行渲染進程可能會搶佔CPU,建議您使用高主頻的CPU如i9來改善效能。
說明您也採購視頻轉碼與點播服務來解決格式和效能的問題。
查看瀏覽器console是否有關於視頻流地址CORS的報錯問題,以及視頻流地址是否允許跨域訪問,如果不允許跨域訪問,需要在視頻流服務端設定允許跨域訪問。
說明可視化應用的訪問地址一般與視頻流地址不是同一個。
查看瀏覽器和使用的HTTP協議版本。對於瀏覽器同網域名稱http1.1協議請求並發有上限,chrome一般上限為6個。如果同時播放多個視頻的,會造成畫面卡頓或者顯示載入的情況,建議您使用http2.0協議來提供訪問或者用不同網域名稱進行區分同時播放的視頻流訪問地址。
查看視頻是否為flv視頻流,flv視頻流需要以.flv為尾碼。
說明建議使用支援flv,hls等瀏覽器原生播放格式的視頻流廠家。
DataV視頻播放組件使用建議
阿里雲流播放器(建議使用)
推薦您使用阿里雲流播放器。
視頻組件
視頻組件為Html的video標籤,支援mp4、ogg、WebM格式。具體編碼如下圖。
螢石雲
螢石雲與阿里雲流播放器一致,但是屬於第三方的外掛程式。因此推薦使用阿里雲流播放器。
RTMP視頻流播放器(不建議)
RTMP視頻流播放器支援RTMP格式,但依賴flash外掛程式,目前主流瀏覽器已經停止支援,因此不建議使用。
自訂群組件
當上述的視頻組件不能滿足播放需求時,您可以考慮自訂群組件的方式來實現,自訂群組件需要由前端開發人員介入去實現。
視頻流格式補充說明
目前網路攝影機直出的視頻流,主要有RTSP和國標GB28181等類型,對於大型專案,廠商會有一個視頻匯聚平台,然後再分發到各個應用端。
電腦的播放端,主要有以下幾種。
廠商提供的視頻監控平台軟體,通常為C/S架構,操作便利性與效能較好。
通過視頻播放軟體進行播放,如VLC播放器,由於是硬體解碼,效能置中。
系統整合時需要整合到大屏軟體中,在Web瀏覽器上運行,相比前兩種方式,比較依賴Web播放器的相容性和CPU的效能。
對於Web來說,早期IE上部分廠商通過提供ActiveX外掛程式的形式來接自家視頻,但最近幾年IE基本被淘汰,主流瀏覽器是Chrome或者基於Chrome核心封裝的瀏覽器,沒有辦法直接播放RTSP視頻流和GB28181格式。
目前Web上支援的視頻流有RTMP/HLS/FLV幾種格式。RTMP依賴Flash播放器,目前使用最多,但是效能非常差,並且目前主流瀏覽器都不支援Flash了;HLS是蘋果的格式,在safari上效果好,但屬於分段點播,會造成不完全即時播放,以及在Chrome上播放會偶爾在分段切換的時候出現黑屏;FLV是近期比較主流的視頻格式,比較大的視頻網站直播視頻都採用該格式,可以使用瀏覽器原生播放器進行播放,效能最高。