MPEG サンプル プロパティ

[このページに関連付けられている機能 DirectShow は、従来の機能です。 MediaPlayer、IMFMediaEngine、Media Foundation のオーディオ/ビデオ キャプチャに置き換わりました。 これらの機能は、Windows 10とWindows 11用に最適化されています。 新しいコードでは、可能であれば、DirectShow ではなく Media Foundation で MediaPlayerIMFMediaEngineAudio/Video Capture を使用することを強くお勧めします。 Microsoft は、レガシ API を使用する既存のコードを、可能であれば新しい API を使用するように書き換えるよう提案しています。]

MPEG サンプルには、次の特性があります。

タイム スタンプ

すべてのサンプルに開始時刻と停止時間があるわけではありません。 パケットおよびペイロード データのサンプル停止時間は役に立ちません。通常は開始時刻に 1 を加えた値に設定されます。 MPEG パケットまたはペイロード データ サンプルでは、生成されたシステム レイヤー パケットに有効な PTS がある場合、開始時刻と停止時間が設定されます。

タイム スタンプの詳細については、ISO1-11172 のセクション 2.4.1 を参照してください。"パケット ヘッダーには、パケットの最初のアクセス ユニットを参照するデコードやプレゼンテーション タイムスタンプ (DTS および PTS) が含まれている場合があります。

MPEG_Streamメジャー型の場合、開始時刻は最初のバイトのバイト位置で、1 秒あたり 1 バイトで評価されます。 停止時間は、最後のバイトのバイト位置です。 したがって、連続するサンプルは、最初のパケットの停止時間を次のパケットの開始時刻と等しくする必要があります。 Video CD データの場合、メディアの配信元は、CDFS によって公開されるビデオ CD ファイルの形式と、開始時に標準の RIFF チャンクと一致する必要があります。

MPEG ビデオ パケットとペイロードの種類の場合、タイム スタンプは、画像の開始コードがサンプルで始まる最初のビデオ フレームのプレゼンテーション時間です。

MPEG オーディオ パケットとペイロードの種類の場合、タイム スタンプは、サンプルで同期コードが開始される最初のオーディオ フレームのプレゼンテーション時間です。

タイム スタンプのないパケットおよびペイロード データは、処理フィルターによって正常に事前登録できると想定されます。

不連続

ストリームに中断がある場合 (リアルタイム データのギャップ、データまたはシーク後のエラーなど)、不連続性プロパティは次のメディア サンプルで設定されます。 これにより、タイム スタンプの不連続性も可能になります。

ストリームの終了通知

デコーダーは、この通知を受信すると、バッファーに格納されたデータを処理する必要があります。 その後、新しいデータは、不連続性プロパティで開始する必要があります。

DirectShow での MPEG-2 のサポート