優酷等的流媒體,http漸進下載的方式,幾個分段的mp4或者flv是怎麼連接的呢?
12-29
HLS協議有m3u8文件做索引,那http漸進下載分段的方式,如優酷那中幾個分段的mp4文件是如何進行連接的並接連緩衝的呢?
MP4隻是個封裝格式而已。MP4可以有兩種方式存在,一種是將Meta全部放在文件頭,後面所有的媒體數據為一個整體。這樣雖然在流化後也能做到邊緩衝邊播放,但由於MP4的Meta體積較大,所以在播放之前可能會出現較長緩衝時間(特別是視頻時間很長的情況下)。
另一種是在一個MP4內封裝多段媒體數據,並且每一段媒體數據都有自己獨立的Meta,這樣就可實現漸進式下載+快速緩衝的效果,Youtube也這樣實現的。
另外,HLS一般不用於點播業務。因為m3u8隻是一個索引文件,用戶請求調用m3u8之後,流媒體伺服器會向存儲繼續請求實體的TS文件,從而造成請求過於頻繁,對存儲壓力是很大的,也無法讓流媒體伺服器實現大規模並發支撐。而幾乎所有視頻網站的點播業務都採用MP4分片,就是因為流媒體伺服器無需頻繁向存儲請求數據,調用一次即可,甚至可以緩存至前端的Transfer或本地硬碟,這樣的話效率遠比使用HLS實現點播更高。
HLS用於直播業務,主要是為了解決時效性問題(先收錄到本地,再封裝成MP4的時效性無法滿足直播業務)。我用過開源的Flash在線播放器,切割文件後用XML給出載入順序,播放器會根據播放進度自動載入
視頻分段載入可以增加下載網路上視頻難度。因為分段的視頻下載後需要合併。(能實現一鍵下載合併的軟體往往下載收到網站限制)目前大型視頻網站只有樂視不分段。而通過客戶端下載分段的視頻會限制其他播放器播放。很多視頻加密格式實際上是由mp4,flv,f4v分段視頻通過特殊演算法合併,加入干擾其他播放器的播放信息來完成的。不分段的視頻下載用瀏覽器插件(幾乎支持所有視頻下載)直接下載就能正常播放了。
分段後用netvideohunter下載 步連貫啊。
推薦閱讀:
※Flash 要消亡了嗎?難道不能在動畫領域發展嗎?
※如果全世界電腦停用flash轉用HTML5,可以節省多少能源?
※flash頁游前端開發UI優化問題?
※Chrome 不支持Flash插件了,對於互聯網公司和普通用戶有什麼影響?
※Safari 瀏覽器如何觀看網上視頻,遇到提示安裝 Flash 插件時怎麼辦?
TAG:視頻網站 | H264 | 播放器 | 流媒體 | AdobeFlash |