歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux下的實時流媒體編程(RTP,RTCP,RTSP)

Linux下的實時流媒體編程(RTP,RTCP,RTSP)

日期:2017/2/28 16:09:20   编辑:Linux教程

流媒體指的是在網絡中使用流技術傳輸的連續時基媒體,其特點是在播放前不需要下載整個文件,而是采用邊下載邊播放的方式,它是視頻會議、IP電話等應用場合的技術基礎。RTP是進行實時流媒體傳輸的標准協議和關鍵技術,本文介紹如何在Linux下利用JRTPLIB進行實時流媒體編程。

一、流媒體簡介

隨著Internet的日益普及,在網絡上傳輸的數據已經不再局限於文字和圖形,而是逐漸向聲音和視頻等多媒體格式過渡。目前在網絡上傳輸音頻/視頻(Audio/Video,簡稱A/V)等多媒體文件時,基本上只有下載和流式傳輸兩種選擇。通常說來,A/V文件占據的存儲空間都比較大,在帶寬受限的網絡環境中下載可能要耗費數分鐘甚至數小時,所以這種處理方法的延遲很大。如果換用流式傳輸的話,聲音、影像、動畫等多媒體文件將由專門的流媒體服務器負責向用戶連續、實時地發送,這樣用戶可以不必等到整個文件全部下載完畢,而只需要經過幾秒鐘的啟動延時就可以了,當這些多媒體數據在客戶機上播放時,文件的剩余部分將繼續從流媒體服務器下載。

流(Streaming)是近年在Internet上出現的新概念,其定義非常廣泛,主要是指通過網絡傳輸多媒體數據的技術總稱。流媒體包含廣義和狹義兩種內涵:廣義上的流媒體指的是使音頻和視頻形成穩定和連續的傳輸流和回放流的一系列技術、方法和協議的總稱,即流媒體技術;狹義上的流媒體是相對於傳統的下載-回放方式而言的,指的是一種從Internet上獲取音頻和視頻等多媒體數據的新方法,它能夠支持多媒體數據流的實時傳輸和實時播放。通過運用流媒體技術,服務器能夠向客戶機發送穩定和連續的多媒體數據流,客戶機在接收數據的同時以一個穩定的速率回放,而不用等數據全部下載完之後再進行回放。由於受網絡帶寬、計算機處理能力和協議規范等方面的限制,要想從Internet上下載大量的音頻和視頻數據,無論從下載時間和存儲空間上來講都是不太現實的,而流媒體技術的出現則很好地解決了這一難題。目前實現流媒體傳輸主要有兩種方法:順序流(progressive streaming)傳輸和實時流(realtime streaming)傳輸,它們分別適合於不同的應用場合。

順序流傳輸

順序流傳輸采用順序下載的方式進行傳輸,在下載的同時用戶可以在線回放多媒體數據,但給定時刻只能觀看已經下載的部分,不能跳到尚未下載的部分,也不能在傳輸期間根據網絡狀況對下載速度進行調整。由於標准的HTTP服務器就可以發送這種形式的流媒體,而不需要其他特殊協議的支持,因此也常常被稱作HTTP流式傳輸。順序流式傳輸比較適合於高質量的多媒體片段,如片頭、片尾或者廣告等。

實時流傳輸

實時流式傳輸保證媒體信號帶寬能夠與當前網絡狀況相匹配,從而使得流媒體數據總是被實時地傳送,因此特別適合於現場事件。實時流傳輸支持隨機訪問,即用戶可以通過快進或者後退操作來觀看前面或者後面的內容。從理論上講,實時流媒體一經播放就不會停頓,但事實上仍有可能發生周期性的暫停現象,尤其是在網絡狀況惡化時更是如此。與順序流傳輸不同的是,實時流傳輸需要用到特定的流媒體服務器,而且還需要特定網絡協議的支持。

Copyright © Linux教程網 All Rights Reserved