公司是搞視頻類的互連網公司,本人雖為開發人員,但因為業務相關,因此也要懂得視頻和流媒體方面的知識,於是把公司圖書閣裡的《流媒體技術入門與提高》借回來看。我手上的是第二版。
流式技術解決方案
所謂流式技術解決方案,即流媒體應用系統,典型的系統有:一、Real Networks;二、Windows Media;三、Adobe Flash;四、Apple QuickTime。
流媒體伺服器使用特別的協議。HTTP 不是特別地適合流媒體,它內部有大量的資料構件,並缺少控制渠道,這就是為什麼不能快速地做到前進或者後退流資料的原因。
Real System 在系統中率先實現了 RSTP(Real Time Streaming Protocol,即時串流傳輸協定) 通訊。RTSP 通訊是一種有狀體的通訊,在文法上與 HTTP/1.1 很相似,但仍有許多方面區別比較大。Real System 被認為是窄帶網上最優秀的流媒體傳輸系統,
QiuckTime 憑藉優秀的跨平台特性,較小的儲存空間要求、技術細節的獨立性以及系統的高度開放性,得到業界的廣泛認可。ISO 選擇 QuickTime 檔案格式作為開發 MPEG-4 規範的統一數位媒體儲存格式。
AVI、VOB、MEPG、RM、MKV 都屬於多媒體容器,不是一種壓縮格式,而是一種多媒體封裝格式,所以不同於 DivX、XviD、MP3、Ogg 編碼格式。但最開放的是 MKV(Matroska)。
流媒體編碼、解碼技術
壓縮編碼基於一定的壓縮演算法,例如 Real Video 基於小波變換演算法,Windows Media 基於 MPEG-4 的壓縮演算法。
國際上通行的標準主要有兩大系列:ISO/IEC JTC 制定的 MPEG系列標準;ITU 針對多媒體通訊制定 H.26x 視頻系統 和 G.7 系列音頻編碼。國產的是 自主智慧財產權的 AVS。
MPEG-1 就是 VCD,MPEG-2 解決了清晰度等問題,是“高清版的 MPEG-1”,MPEG-2 = DVD。但 DVD 要求容量太大,難以實現網路的即時傳播,於是有 MEPG-4,適合低位元速率下的通訊。
另外, MPEG4 的意義,是在視頻編碼發展史上第一次把編碼對象從映像幀拓展到具有實際意義的任意形狀視頻對象(VO),實現了從基於像素的傳統編碼向基於對象和內容的現代編碼轉變。
開源 MPEG 4 編碼器: DivX(偽開源)和 XviD(真開源)。
HTML 5 所使用的編碼就是 h.264(mp4),但因 h264 因某些專利所以較 Firefox 所支援 Ogg 格式來說不那麼開放。
流媒體傳送和相關協議
無論哪一種系統,其基本原理多是一樣的:首先通過採用高效的壓縮演算法(在降低檔案大小的同時伴隨品質的損失),讓龐大的多媒體資料檔案變得小一些以適合串流,然後通過假設流媒體伺服器,修改 MIME 表示,通過各種即時通訊協定傳輸串流資料。常見的協議有:RTP、RTCP、RTSP、RSVP、MMSP。
RTSP 協議
RTSP 明智的採用 HTTP 觀念,使得結構可以重用。結構包括 Internet 內容選擇平台,明文報碼的文本協議,並使用網頁安全機制,可由標準 HTTP 或 MIME 解析器解析。可使用 UDP OR RDP 傳輸。使用 RTSP 時,Client 和 Server 都是發出請求,即 RSTP 可以是雙向,雙工的。HTTP 要求有用戶端發出,伺服器做出響應。 HTTP 傳送HTML,而 RTP 傳送的是多媒體資料。
MMSP 協議
當使用 MSS 協議連結到發布點時,MMS協議按照下列順序自動尋找流媒體的最佳傳輸途徑:
(1)UDP(使用者資料包通訊協定)
(2)TCP(傳輸控制通訊協定)
(3)HTTP(超文字傳輸通訊協定 (HTTP))
UDP 協議是無連結的傳輸層協議,因為不保證傳送,因而對於即時媒體是一種理想的協議。雖然這聽起來似乎是一個缺點而不是優點,但它是非常適用於流媒體的一種特性。流媒體資料與檔案、電子郵件資料不同:檔案、電子郵件等資料必須作為整體進行傳送,不管傳輸時間的長短;而流媒體資料的價值受時間限制,如果視訊框架丟失,由於無法在正確的時間幀內到達,所以就無價值可言,再次傳說該資料就是浪費頻寬。指定僅將 UDP 用作傳輸協議時有可能的。為此可以使用下列做法:
mmsu://servername/filename.asf
這裡 mmsu 表示 MMS 協議結合 UDP 協議進行資料傳送。
UDP 的缺點是不能通過公司的防火牆。或者需要你的網管去開啟。如果 mmsu 連結不成功,而伺服器試圖使用 mmst,即是用 MMS 協議結合 TCP。TCP 是主流的 Internet 傳輸協議,其缺點是會設法重新傳輸資料,而且也有可能無法通過公司的防火牆。指定僅將 TCP 用作傳輸協議的文法為:
mmst://servername/filename.asf
最後一個選擇是 HTTP。雖然 HTTP 是應用程式層的協議而非傳輸層的協議,並且不失為流媒體專門設計的,但是它可以通過防火牆,任何能夠瀏覽 Web 的人都可以通過 HTTP 協議接受流檔案。指定僅將 TCP 用作傳輸協議的文法為:
http://servername/filename.asf
P2P 協議
對等網路P2P 是為瞭解決 C/S 模式下伺服器負荷加劇的問題而生的。P2P主要應用到了分布式網路,其中分布式網路又可以分為結構化網路和非結構和網路。
在非結構化P2P中1,對等機通過與相鄰對等機之間的串連遍曆整個網路(這種尋找方式稱為泛洪式 flooding 的尋找)。每個對等機在功能上都是相似的,沒有專門的伺服器,而對等級必須依靠它們所在的分布式網路來尋找檔案和定位其他對等機上的資源。
在結構式P2P中,網路節點按照一定的方式分配一個唯一節點標識符,所有有關尋找和選路的操作都是基於 DHT(Distributed Hash Table)的分布式發現和路由演算法在 Overlay 層面進行的。其本質就是在尋找檔案和單位其他用戶端的時候引入了重新導向機制,核心:DHT。
P2P 直播
P2P直播室最能體現P2P價值的表現,使用者在觀看同一節目,內容趨同。線上使用者可以接近無限。
網狀多播模式被譽為流媒體直播方面的裡程碑,應用例子 PPLive 和 PPStream(無結構網路通訊協定)
點播
相對直播發展較慢,期望大規模分布式數字著作權保護(DRM)和底層編碼技術的發展為P2P點播系統的實施鋪平道路。
P2P 網路結構
兩大類:基於樹(Tree-based)he 資料驅動隨機化的覆蓋網路結構。
BT 典型的無結構網路通訊協定,還有 Gnutella 和 KaZaA(但存在一種“超級節點”,相似的方案還有 Skype)
http://wenku.baidu.com/view/7e816ecfa1c7aa00b52acbfb.html
http://pda.c114.net/32/c4558.html