HTTP Streaming 相關技術 pseudo, live
HTTP Streaming Video 相關技術 最近想研究一下 HTTP Streaming ,隨著網路架構越來越完整,這應該是個趨勢。剛看的時候有一堆名詞,下面紀錄一下我的理解。 l HTTP Streaming (Progressive Streaming) n 一般如果寫 HTTP Streaming 的話,指的就是 Progressive Streaming 。這種架構,用單純的 Web Server 就可以了,其實他就是像一般 Web Server 傳照片、檔案一樣。 Client 就一直收,只是某些格式的影片,是可以收到就可以立刻播出來的,例如微軟的 asf, wmv? 。 n 優點就是相對於之前的 RTP Streaming 的技術,目前的高畫質影片可能家庭的網路還不夠快,如果用 UDP 的話,可能畫面會破碎嚴重,用 TCP 的話,就可以看的漂亮,當然要等比較久一點 n 缺點 u 使用者無法 seek ,因為檔案是從頭開始傳到尾的,你沒辦法叫他中間跳過不傳。雖然 HTTP Protocol 支援 Partial download ,但因為 client 無法知道某個秒數對應到的開始位元是多少,所以無法使用 partial download 的方法。 u 無法適用於 Live broadcasting ,現場直播 l HTTP pseudo Streaming n 這是 FLV 使用的方式,基本上我還是把這個規類到跟 Progressive Streaming 一樣,但他多了可以 Seek 的功能,怎麼做到的呢?需要先用轉檔程式把影片編成 flv ,此時 flv 裡面的 metadata 會帶有索引資訊,索引的格式就是 1 sec -> 1234 KB, 2 sec -> 5422 KB …… 。類似這樣,秒數的地方應該是 Key Frame 的位置。所以當使用者要快轉的時候, player 會找到最近的索引秒數,然後轉換為 byte 數,接下來就送出 xxx.flv?5422 。這樣就會 seek 到兩秒的地方。如果是 mp4 的話參數則是直接帶秒...