問題:
動画をストリーミングする iOS アプリをアプリ ストアに受け入れるには、HLS バージョンが必要です。
どうしたの?
Android は HLS を十分にサポートしていません。また、他の理由から、同じコンテンツの MP4 ファイルと HLS ファイルを保存する必要があります。
MP4 と HLS の違いは何ですか? また、なぜ両方を保存する必要があるのですか?
MP4 は、H.264 ビデオと AAC オーディオを格納して HTML 5 ブラウザとの最適な互換性を確保するためのコンテナです。ブラウザが同じ MP4 ファイルを使用する HTML 5 の MP4 ビデオをサポートしていない場合、jsvideo プレーヤーには多くの場合、フラッシュ フォールバックがありますが、フラッシュ経由で再生されます。
HLS は、テキスト ファイル (.m3u8) にプレイリストへの参照が含まれるプロトコルです。プレイリスト自体は、mpeg-2 トランスポート ストリームである .ts ファイル (または m2ts) を参照します。mpeg-2 ビデオと混同しないでください。.ts ファイルは、同じ H.264 ビデオと AAC オーディオのコンテナーです。
なぜ私は不平を言っているのですか?
MP4ファイルからHLSファイルやプレイリストを作成するのに時間がかかる
(最も重要なこと) 現在、S3 に 2 倍のデータを保存しています
なぜ気にする必要があるのですか?S3 の請求額が MP4 と HLS の両方を保存するために月額 10,000 ドルである場合、現在は 5,000 ドルです。別の言い方をすれば、MP4 でデータを保存するために 10 万ドルを支払っている場合、MP4 と HLS の両方で同じコンテンツを保存するには 20 万ドルかかることになります。
私が欲しいものは?
.ts ファイルのみを保存し、その 1 つのファイルでデスクトップ ユーザー、iOS ユーザー、および Android ユーザーの両方にサービスを提供したいと考えています。
出来ますか?
HLS では、1 つの大きなファイルではなく、5 ~ 10 秒の .ts セグメントが必要ではないですか?
IETF ドラフト 7 およびプロトコルのバージョン 4 の時点で、HLS はタグ EXT-X-BYTERANGE をサポートしています。これにより、メディア セグメントをより大きな URL のバイト範囲 (サブ範囲) として指定できます。
.ts ファイルは HTML5 ビデオと互換性がありますか?
どうやらそうではありません。これらは MP4 とは異なるコンテナーですが、同じビデオおよびオーディオ コンテンツが含まれています。生のビデオ/オーディオ データを一度保存し、必要に応じて正しいコンテナを使用する方法を検討する価値があります。ブラウザーが HTML 5 MP4 をサポートしていない場合、JS ビデオ プレーヤーがその場で HTML 5 MP4 ファイルを Flash ビデオに変換できるのであれば、なぜ M2TS データで同じことができないのでしょうか?
私はある程度無知かもしれませんが、誰かがこの問題に光を当て、解決策を提示できるかもしれません.