私はマルチメディアプログラミングの初心者です。パケットを個別に解析して、トランスポートストリームバッファーからライブmpeg-dashコンテンツを作成しようとしています。
.m4sセグメントを作成したいのですが、その構造がわかりません。
つまり、複数のセグメントを組み合わせる場合、mpegトランスポートストリーム、mpegプログラムストリーム、または個々のエレメンタリーストリームを生成するのでしょうか。
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出力ストリームを作成できます。