使用LiveNVR實現將RTSP轉RTMP、FLV、HLS,實現監控攝像頭無插件直播

背景需求

對於攝像機直播,客戶反饋的最多就是實現web直播、擺脫插件,能夠自定義集成等問題,
對於熟悉LiveNVR已經完美的解決了這些問題。然而對於web播放也存在一些問題,一般咱們web播放RTMP流使用的是flash,在這個過程當中就會出現一個問題,隨着web一直播放直播時間的增長,視頻直播的延時也會累積起來,延時也就越大web

問題分析

經過自我調研和客戶反饋得出在ckplayer、videojs、aliplayer等播放器都會有相似問題,出現該問題的緣由在於咱們播放rtmp視頻流的時候啓用了flash,我們的LiveNVR調用的videojs播放rtmp視頻流依然會有這個問題的存在。npm

解決參考

videojs是一款開源的播放器,對於播放器自身定位不必定是實時的直播。咱們對他進行了從新的編譯,將緩存設置更小,同時videojs也有對應的參數是用來對應播放實時流的。
通過咱們實時的測試發現,編譯出的低延時,追幀版本的播放器在實測過程當中對網絡有必定的要求,由於播放器在播放時爲了保證明時性就會一直追幀,這樣就不會存在累計延時的狀況了,可是,當網絡環境差的時候,咱們的網絡沒法徹底知足直播視頻數據時就會在直播會面中出現相似掉幀的狀況。緩存

LiveNVR的處理方式

LiveNVR是實時的進行直播視頻流,所以在視頻的web直播中咱們也有遇到延時累計的問題。咱們採用的方式是將兩個播放形式都集成到咱們的播放系統中,而且能夠經過播放頁面來進行播放模式的選擇網絡

咱們將直播分爲了實時直播和流暢直播,顧名思義,實時就是保證直播的實時性,保證播放器的低延時直播;流暢直播則爲能夠在網絡環境不是特別理想的狀況下依然能夠 進行流暢的視頻直播。ide

通過播放一段時間的對比就能夠看出二者這件的差異。測試

注意爲了方便用戶的集成,咱們將videojs的功能通封裝成播放器 liveplayer插件

具體調用方式和使用方法見連接:https://www.npmjs.com/package/@liveqing/liveplayer視頻


關於LiveNVR

LiveNVR可以經過簡單的網絡攝像機通道配置,將傳統監控行業裏面的高清網絡攝像機IP Camera、NVR等具備RTSP協議輸出的設備接入到LiveNVR,LiveNVR可以將這些視頻源的音視頻數據進行拉取,轉換爲HTTP-FLV/RTMP/HLS,進行全平臺終端H5直播(Web、Android、iOS),而且LiveNVR可以將視頻源的直播數據對接到第三方CDN網絡,實現互聯網級別的直播分發;blog

相關文章
相關標籤/搜索