2013-09-24 88 views
3

問題:HTML5和MP4與M2TS容器

要獲取iOS應用程序,將視頻接受到應用程序商店,我們需要有一個HLS版本。

有什麼問題?

Android不支持HLS,由於其他原因,我們需要存儲相同內容的MP4和HLS文件。

MP4和HLS之間有什麼區別,爲什麼你需要同時存儲?

MP4是一個容器,用於存儲H.264視頻和AAC音頻,以便在HTML 5瀏覽器中實現最佳兼容性 - 如果瀏覽器不支持使用相同MP4文件的HTML 5中的MP4視頻,則jsvideo播放器通常具有閃回回退功能通過閃光燈播放。

HLS是一個協議,其中文本文件(.m3u8)包含對播放列表的引用,該播放列表本身引用.ts文件(或m2ts),這是mpeg-2傳輸流,不會與mpeg-2視頻混淆。 .ts文件是同一個H.264視頻和AAC音頻的容器。

我爲什麼在抱怨?

  1. 這需要時間來建立從MP4文件

  2. (最重要的),我們現在存儲HLS文件和播放列表兩倍的數據上S3

  3. 我爲什麼要在乎?如果您的S3賬單每月存儲10萬美元用於存儲MP4和HLS,現在只需5K美元。換句話說,如果您花費10萬美元將數據存儲在MP4中,那麼在MP4和HLS中存儲相同的內容將花費20萬美元。

    我想要什麼?

我只想存儲.ts文件,併爲單一文件的桌面用戶,iOS用戶和Android用戶提供服務。

可能嗎?

HLS不需要5-10秒.ts段而不是一個大文件?

從IETF第7版和協議第4版開始,HLS支持標籤EXT-X-BYTERANGE,它允許您將媒體段指定爲較大URL的字節範圍(子範圍)。

.ts文件是否與HTML5視頻兼容?

顯然不是。它們是不同於MP4的容器,但包含相同的視頻和音頻內容。值得研究如何存儲原始視頻/音頻數據一次,並在必要時使用正確的容器。如果JS視頻播放器可以將HTML 5 MP4文件轉換爲Flash視頻,如果瀏覽器不支持HTML 5 MP4,那麼爲什麼不能用M2TS數據做同樣的事情呢?

我可能在某種程度上無知,但也許有人可以在這個問題上發現一些問題,並可能提出一個解決方案。

+0

這是一個老問題,但我只是想知道在Apple HLS與DASH兼容後現在問題是否已經解決? http://www.streamingmedia.com/Articles/News/Online-Video-News/HLS-Now-Supports-Fragmented-MP4-Making-it-Compatible-With-DASH-111796.aspx – advncd

回答

6

目前沒有好的解決方案。

有點背景。

視頻流用於需要自定義協議,如RTP/RTMP/RTSP等。這些協議工作正常,除了我們基本上建立兩個獨立的網絡。一個基於標準網絡流量的HTTP,另一個基於HTTP。這個想法將視頻分割成小塊,並通過HTTP將它們提供給播放器。這樣我們就不需要特殊的服務器/軟件,我們可以利用正在構建的巨大HTTP CDN。此外。由於視頻被分割成塊,我們可以將相同的視頻編碼成不同的質量/文件大小。然後玩家可以爲其當前帶寬選擇最佳質量的視頻。由於不斷變化的網絡條件,這是移動電話的完美解決方案。制定了幾個競爭標準。移動網絡是第一個上市[需要的引證]。該設計由Microsoft(Smooth Streaming)和Apple(HTTP Live流媒體又名HLS)複製。微軟正在逐步淘汰流暢的流媒體而轉向DASH。 DASH看起來會成爲未來的默認流媒體解決方案。除了由於其通過禮儀設計的方法,它已經基本上在幾年之內陷入了歡樂。現在,在這幾年裏,蘋果銷售了數百萬臺IOS設備。所以HLS不能停止。爲什麼不是每個人都使用HLS呢?我可以想到三個原因1)它的蘋果標準,人們都是仇敵。 2)傳輸流是一種複雜的文件格式。 3)運輸流有專利權保護。 MP4並沒有受到專利保護,但它也沒有適應能力。這使得用戶在2G網絡上的體驗變差。 iPhone 1支持的唯一網絡。當時T也不希望完全比特率的視頻流在那裏可怕地不充分的celular網絡。 HLS是妥協。所有這些都早於HTML5。所以視頻標籤甚至沒有考慮到它的設計。

解決您的觀點:

1)它需要時間來從MP4創建HLS文件和播放列表文件

這是一個編程網站,自動化。

2)我們現在存儲兩倍的數據上S3 [原文]我只想存儲.ts文件,並與單個文件同時投放桌面用戶, iOS用戶和Android用戶。

你和我都是男人:)。

可能的解決方案。

1)Androids實現有什麼特別的錯誤? (除舊設備的缺乏)

2)JW播放器可以播放HLS(約在Android不知道)

3)點播服務器端傳輸複用。

HLS不需要5-10秒.ts段而不是一個大文件嗎?

你可以做字節範圍,但你需要確保你感興趣的所有設備都支持它。

如果JS視頻播放器可以HTML 5的MP4文件轉換成Flash視頻上 飛,如果瀏覽器不支持HTML 5的MP4,那麼爲什麼不 能夠做同樣的M2TS數據?

它們不轉換。 Flash本身支持mp4。可以在AS3/JS中轉換TS。我已經做了。 JW播放器可以在瀏覽器中轉換TS。 video.js也許能夠。