web-dev-qa-db-ja.com

mpeg-dash(一般に.m4s)セグメントのフォーマットは何ですか?

私はマルチメディアプログラミングの初心者です。パケットを個別に解析して、トランスポートストリームバッファーからライブmpeg-dashコンテンツを作成しようとしています。

.m4sセグメントを作成したいのですが、その構造がわかりません。

つまり、複数のセグメントを組み合わせる場合、mpegトランスポートストリーム、mpegプログラムストリーム、または個々のエレメンタリーストリームを生成するのでしょうか。

3
Ishaan Shringi

MPEG-2トランスポートストリームMPEG-DASH セグメントは別物です。前者は信頼性の低いネットワークを介したオーディオビジュアルコンテンツのパケット化された伝送の仕様であり、後者は信頼性の高いHTTPを介した伝送に使用されます。したがって、コンセプトは少し異なります。

MPEG-TSとは異なり、MPEG-DASH送信用にメディアを準備する方法はいくつかあります。 .m4sファイルは1つのオプションです。実際、MPEG-TSは別のオプションです。

.m4sファイルは、1つの完全なファイルの個々のメディアセグメントです。それらは ISOベースメディアファイル(ISOBMFF)形式 です。アイデアは、1つの長いファイル(たとえば、.mp4ファイルとしてエンコードされた1つの映画を考える)を、HTTP経由で個別にダウンロードできる個別のファイルに分割することです。

複数の.m4sセグメントを連結すると、完全で再生可能なファイルが再び得られます。最初の初期化セグメントを最初にデコードする必要があるため、メディアセグメント自体を単独で再生することはできません。詳細については、リンクされた仕様をご覧ください。また、そのトピックに関する古い情報 GPACから を見つけることもできます。

ビデオとオーディオのトラックを1つのファイルに結合することもできますが、通常、HTTPアダプティブストリーミングの場合、オーディオとビデオは別々のストリームで送信されます。

特定のケースでは、既存のMPEG-TSコンテンツがあり、それをISOBMFFセグメントに再多重化したい場合、プログラムでそれを実行したい場合、 bento4 を使用することをお勧めします。また、 dashcast プログラムは任意の入力を受け取り、ライブDASH出力ストリームを作成できます。

3
slhck