はじめに:Demuxerはパイプラインの「交通整理係」
こんにちは!前回は、データの旅の始まりであるDataSourceについて詳しく見てきました。ファイルから、ネットワークから、メモリから、様々な場所にあるデータを抽象化して、パイプラインに流し込む役割でしたね。
今回は、そのDataSourceから流れてきたデータを受け取り、次のステップへと送り出すDemuxer(デマルチプレクサ)に焦点を当てます。
Demuxerは、例えるなら「交通整理係」であり、「仕分け人」です。
DataSourceから届くデータは、映像、音声、字幕など、すべてがごちゃ混ぜになった「コンテナ」という大きな箱に入っています。Demuxerの仕事は、この箱を開けて、中身を種類ごとに正しく仕分け、次の担当者(Decoder)に渡すことです。
1.コンテナフォーマットという「大きな箱」

動画ファイル(MP4、MKV、AVIなど)は、単なる映像データではありません。これらはすべてコンテナフォーマットと呼ばれ、以下の要素を一つにまとめた「箱」のようなものです。
-
- 映像ストリーム: 圧縮された映像データ(例: H.264, H.265)
- 音声ストリーム: 圧縮された音声データ(例: AAC, MP3)
- メタデータ: ファイルの情報(作成日時、タイトル、著作権情報など)
- 同期情報: 映像と音声のタイミングを合わせるための情報(PTS/DTSなど)
Demuxerは、まずこのコンテナフォーマットのヘッダー情報を読み取り、この箱が「MP4」なのか「MKV」なのかを識別します。
2.Demuxerの3つの重要な仕事
Demuxerの仕事は、単にデータを分けるだけではありません。次の3つの重要な役割を担っています。
2.1.ストリームの分離(Demultiplexing)
これがDemuxerの最も主要な仕事です。
DataSourceから流れてくるデータは、映像の断片、音声の断片、そしてまた映像の断片…というように、時間軸に沿って順番に並んでいます。Demuxerは、この流れの中から、「これは映像のデータだ」「これは音声のデータだ」と識別し、それぞれのストリーム(流れ)に分離します。
例えるなら、一本のベルトコンベアに流れてくるリンゴとミカンを、それぞれの専用レーンに仕分ける作業です。
2.2.メタデータの抽出
コンテナフォーマットには、動画の再生には直接関係ないけれど、非常に重要な情報が含まれています。それがメタデータです。
- 動画の解像度(1920×1080など)
- フレームレート(30fpsなど)
- 使用されているコーデック(H.264, AACなど)
- 再生時間、タイトル
Demuxerはこれらの情報を抽出し、Player(制御役)に渡します。Playerは、この情報を使って、適切なDecoder(復号化器)を準備したり、再生バーの長さを決めたりします。
2.3.同期情報の管理(PTS/DTS)
動画再生において、「音ズレ」は致命的です。Demuxerは、この音ズレを防ぐための同期情報を管理します。
- PTS (Presentation Time Stamp): 「このフレームは、動画の開始から XX秒後 に表示してね!」という、表示時刻のタイムスタンプです。Rendererは、このPTSを頼りに、映像と音声を正しいタイミングで再生します。
- DTS (Decode Time Stamp): 「このフレームは、動画の開始から YY秒後 にデコード(復号化)してね!」という、復号化時刻のタイムスタンプです。通常、PTSとDTSは同じですが、一部の圧縮技術(例: Bフレーム)では、表示順とデコード順が異なるため、このDTSが必要になります。
Demuxerは、分離した映像と音声の各フレームに、このPTS/DTSを正確に付与します。これにより、後続のDecoderやRendererは、このタイムスタンプを頼りに、映像と音声を正確なタイミングで同期させることができるのです。
3.DemuxerからDecoderへ
Demuxerによって分離され、PTS/DTSが付与された映像と音声のデータは、それぞれのDecoder(復号化器)へと送られます。
Demuxerの仕事はここまでです。次に待っているDecoderは、この圧縮されたデータを、実際に画面に表示できる「生データ」に戻すという、また別の重要な役割を担っています。
まとめ:Demuxerは縁の下の力持ち
Demuxerは、派手な処理(映像を美しくしたり、音を出したり)はしませんが、パイプライン全体がスムーズに機能するための土台を作る、非常に重要な「縁の下の力持ち」であることが分かりました。
次回は、Demuxerから送られてきた圧縮データを、私たちが目で見たり耳で聞いたりできる形に戻すDecoder(復号化器)の仕事に迫ります。お楽しみに!



コメント