新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM的移動視頻監控終端設計與實現

        基于ARM的移動視頻監控終端設計與實現

        作者: 時間:2012-08-09 來源:網絡 收藏

        2.1 H.264視頻流的傳輸
        2.1.1 傳輸方式選擇
        視頻的實時傳輸要求較低的時間延遲,并且允許一定的丟包率。由于TCP協議的3次握手以及丟包重傳機制會造成一定的延時,在實時監控系統中有一定缺陷,而UDP協議是面向無鏈接、不可靠的傳輸層協議,具有消耗資源小,傳輸速度快等特點,在視頻傳輸過程中偶爾丟包不會對監控畫面產生較大影響。UDP協議不提供數據包分包、封裝、數據包排序等缺點,為保障視頻流傳輸的可靠性,網絡傳輸部分采用建立在UDP協議之上的RTP(Real-time Transport Protocol)實時傳輸協議來實現,通過套接字與前端建立連接,以接收視頻流數據。RTP提供帶有實時特性的端對端數據傳輸服務,包括有效載荷類型的定義、序列號、時間戳和傳輸檢測控制。基于RTP/UDP/IP協議傳輸視頻流封裝格式如圖2所示。

        c.JPG


        2.1.2 視頻流傳輸
        采用UDP協議傳輸RTP包時會出現亂序的現象,所謂亂序就是接收到RTP包順序可能前端發送的順序不一致,因此,首先要對接收的RTP包排序。采用在內存中建立一個雙向鏈表來保存接收的RTP包,按照RTP報頭的序列號(Sequence Number)順序存放到鏈表中,雙向鏈表結構體定義如下,部分變量用于RTP分片封包模式。

        d.JPG



        每當接收到一個新的RTP包后,根據序列號從鏈表尾開始搜索并插入到合適的位置,比如,接收到一個序列號SN=26的RTP包在鏈表中分配內存,找到位于25,27之間的位置插入該包,RTP包排序過程如圖3所示。

        e.JPG


        H.264視頻流NALU單元封裝成RTP包時,要遵循RTP負載格式標準,H.264負載格式定義了3種類型的負載結構:單一NALU模式、組合封包模式、分片封包模式。單一NALU模式是一個RTP包僅由一個完整的NALU組成;組合封包模式是可能由多個NALU組成一個RTP包;分片封包模式是將一個NALU單元封裝成多個RTP包,采用分片封包模式的原因是網絡傳輸協議有最大傳輸單元(MTU)一般為1500B上限,如果NALU大于MTU,IP層將其自動分割為幾個小于MTU的數據包,這樣無法檢測數據包是否有丟失,所以有必要采取分片封包模式,在接收端把擁有相同時間戳的多個RTP包按照序列號重組成一個完整的NALU。分片封包模式的RTP包格式如圖4所示。



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 天峨县| 南郑县| 上蔡县| 龙岩市| 遂溪县| 泸西县| 蒲城县| 贵州省| 阿克陶县| 察隅县| 莱芜市| 收藏| 蓝田县| 安陆市| 泗洪县| 平远县| 淮北市| 宣武区| 邳州市| 台江县| 中阳县| 陈巴尔虎旗| 嵩明县| 博湖县| 宝清县| 安西县| 东乡族自治县| 瑞丽市| 大厂| 原平市| 乌拉特后旗| 枣阳市| 广饶县| 徐闻县| 靖安县| 茶陵县| 都昌县| 高台县| 凤凰县| 高淳县| 永嘉县|