基于3G無線網絡的視頻監控系統前端設計
每個NAL單元由整數個字節大小的包構成,其中第一個字節包含數據類型的標志,其他字節是凈荷。NAL單元被劃分為VCL NAL單元和非VCL NAL單元兩種。VCL NAL單元包含視頻圖片中采集點的值的表示;非VCL NAL單元包含一切相關的附加信息,例如參數設置(可被應用到大量VCL NAL單元的頭數據)和附加的增強信息(時刻信息和其他附加數據,這些數據可能會增強對已解碼視頻信號的利用,但是又不是在解碼視頻圖像的采樣點值必須用到的)。視頻壓縮編碼的工作流程如圖5所示。本文引用地址:http://www.104case.com/article/154425.htm
2.3 視頻信號發送模塊
由于TCP協議丟包重傳造成巨大時延,UDP雖然傳輸速度比TCP快,但UDP是一種不可靠的傳輸協議。所以在應用層采用RTP作為實時傳輸協議。
RTP本身只保證實時數據的傳輸,不能為按順序傳送數據包提供可靠的傳送機制,也不能提供流量控制或擁塞控制。它需要依靠RTCP協議提供周期性的反饋與信道參數有關的信息,動態地改變傳輸速率,使發送速率適應信道帶寬,減少信道中的丟包,從而實現媒體同步、丟包統計、傳輸檢測和傳輸復用等手段。從而使得視頻流高效、快速地傳輸。
RTP協議的實現采用開源的RTP庫JRTPLIB。用戶只需通過使用JRTPLIB庫相應地發送和接收RTP數據包,而不用關心RTCP數據報是如何被發送和接收的,JRTPLIB自動對到達的RTCP數據報進行處理,并在適當的時候發送RTCP數據報。采用H.264視頻流的RTP打包方式對單獨的NAL單元進行操作。通過ARM926-EJS內置的硬件編碼單元應用程序中H.264視頻編碼的參數設置,每幀為一個NAL單元。為了避免視頻數據在網絡層被分割,需要將一幀H.264視頻數據分割成一定大小的RTP數據包,由發送端分別封裝上RTP報頭、UDP報頭、IP報頭,按照RTP數據包的格式,并配置RTP報頭的時間戳以及序列號等參數,最后形成IP數據包,通過無線模塊發送。ARM926-EJS內置的硬件編碼模塊所輸出的H.264視頻流的RTP封裝及傳輸流程如圖6所示。
3 結語
采用ARM926-EJS為微處理器的視頻監控系統前端具有功耗低、速度快的特點,同時結合Linux的Video4Linux視頻接口技術和內置硬件H.264視頻編碼和RTP/RTCP傳輸協議,實現了快速視頻采集和傳輸。實驗證明,采用內置硬件編碼單元的ARM926-EJS微處理器和嵌入式Linux操作系統,使視頻監控系統前端的視頻畫面清晰流暢,其性能優越、穩定而且構建成本低。該視頻監控系統前端在森林火災場合具有廣闊的應用前景。
評論