一直困惑於流媒體、視頻流,總是聽說NVR、拉流、推流、以及視頻的播放是怎么一個原理,今天就來總結記錄一下。
一、過去視頻發展不成熟以及互聯網發展不成熟的情景下,都是客戶端直接從攝像頭拉流進行播放,通過rtsp協議標准。


但是,這樣的方式存在兩個缺點:
1、攝像頭,最多可以同時對6個請求進行發送數據,無法滿足現在的高並發要求
2、攝像頭發送視頻錄的數據,對於多個請求上傳的數據量較大,對帶寬要求較高,且是隨請求數線性增長
所以為了解決上述兩個缺點和弊端,NVR服務器應運而生。
nvr服務器,是介於攝像頭和客戶端之間的一台物理服務器,用以對接N路攝像頭,一般超過128路,需要+1台NVR。
nvr上有很多通道,每個通道用來對應一個攝像頭,進行播放等。
優點:
1、減輕了攝像頭上傳數據的帶寬負載,攝像頭只需要向NVR一個服務器上傳數據即可。
2、NVR服務器直接接在交換機上,其帶寬可達千兆級別,比攝像頭的百兆帶寬增強了10多倍。
3、NVR服務器的轉發功能增強,其連着交換機,處於局域網內的一個節點,對客戶端的視頻請求的轉發能力更強。


隨着NVR服務器的發展,以及用戶使用需求的不斷增加,不再滿足於攝像頭的實時監控,一些新的需求涌現出來:
1、在局域網環境之外,公網環境下人們對視頻的需求顯著提升,例如使用手機無線網查看家中攝像頭,以及用手機在線觀看騰訊視頻或者直播等,還有在線會議等。
2、多個人同時訪問攝像頭,多人同時參加視頻會議等。
所以,隨着各商家對流媒體技術的不斷發展,現在的大部分廠商為NVR服務器配備了相應的流媒體服務器,來不斷滿足當下的需求。
有的通過NVR轉發到流媒體服務器上,有些做的好的集NVR與流媒體服務器於一身,兼具兩種功能。


EasyNVR可以將局域網/廣域網上的海康/大華等網絡攝像頭由rtsp轉換為rtmp、rtsp、hls、flv協議轉換,並提供推流服務,可以將拉到的網絡攝像頭直接轉發到流媒體服務器。
完美對接目前主流的阿里雲/百度雲/樂視雲等等流媒體服務器。操作流程簡潔,可直接作為網絡攝像頭無插件直播平台使用,亦可通過二次開發接入已有業務系統,應用場景十分廣泛。
基本常識:
1、 從網絡上接收視頻時首先要解協議(RTSP/RTMP/HTTP),然后是解格式(MKV,RMVB),之后才是將視頻(H264)和音頻(AAC)格式數據分別解碼為圖像(RGB/YUV)和聲音(PCM),再根據時間戳同步播放。
2、 RTMP主要用於互聯網音視頻傳輸,它使用的是TCP傳輸,因為互聯網環境相對較差,采用RTMP保證了視頻的傳輸質量,但是其傳輸延遲相對較高,傳輸效率相對較低。
3、視頻畫面的播放,本質是固定內存空間變量對象的不斷賦值和再賦值的過程,所以其對內存空間的占用的固定的。
4、直播:一種推流的播放形式,點播:是一種按需觀看,按需拉流的播放形式
5、硬解碼:通過專用的硬件設備對視頻進行解碼,並直接在顯示器上進行播放展示,常見的有HDMI解碼器等。軟解碼:通過程序軟件進行解碼,使視頻畫面在軟件內部進行播放展示,軟解碼會占據相應的cpu、gpu資源。