3

MPEG トランスポート ストリーム (TS) から、高さと幅、および可能なその他の記述データを取得する方法を知る必要があります。

この回答が表示される前に: 私はビデオ シーケンス ヘッダー (00 00 00 B3) をよく知っています。これは、MPEG トランスポート ストリームではなく、MPEGプログラム ストリーム(つまり、MPEG ファイル)の仕様の一部です。

トランスポート ストリームを .ts ファイルに保存すると、ffmpeg からこの情報を取得できますが、ffmpeg が利用できない環境では、ffmpeg とは別にそれを実行できる必要があります。したがって、ファイル内のこのデータを手動で解析する必要があり、MPEG-TS からのタイムスタンプ (スライスの開始) を除いて、関連するメタデータについて何も見つけられないようです。

ありがとう!

4

3 に答える 3

2

ビデオ サイズはトランスポート ストリームのプロパティではありません。これは、エレメンタリ ビデオ ストリーム自体のプロパティです。トランスポート ストリームまたは PES パケットにヘッダーが含まれていません。

解像度 (幅 x 高さ) を抽出するには、PES 開始 (PUSI を含む) パケットを識別してから、es ヘッダーの解析を開始する必要があります。ISO/IEC 13818-part 2 (ビデオ) のSequence ヘッダー部分を抽出する必要があり、答えが得られます。クイック リファレンスについては、 このwikiを確認してください。

于 2011-11-27T11:27:29.377 に答える
2

残念ながら、ISO 13818-1 (H.222 とも呼ばれます) を確認し、トランスポート ストリーム パケット、PID フィルタリング、および PES パケットについて少し読む必要があります。

ストリームはパケットに分割されます。各パケットの長さは (通常) 188 バイトです。パケット ヘッダーには、関心のあるパケットのみをフィルタリングできる PID (パケット ID) が含まれています。

パケットは、MPEG-2 データ + メタデータ (タイミング データなど) を保持する PES パケットを構成します。ビデオの幅と高さを知る前に、PES パケットを作成して解析する必要があります。

関心のある PID をどのように知ることができますか? そのためには、PAT と PMT について読む必要があります。PAT は PMT の取得方法を示し、PMT はどの PID に MPEG-2 情報が含まれているかを示します。

このすべては、上記のドキュメントに (詳細に) 説明されています。しかし、オンラインには多くのチュートリアルと説明があります。たとえばここですが、他にもたくさんあります。ウィキペディアの記事は、出発点として適しています。

于 2011-07-20T19:29:11.530 に答える
1

実際、ビデオシーケンスヘッダー(00 00 01 B3)は、基本的なビデオビットストリームを説明するISO /IEC13818-2仕様の一部です。したがって、トランスポートストリームにはこのヘッダーも含まれます。

ここでの問題は、このヘッダーの内容を抽出することです。この開始コードを見つけて、それに続くバイトを使用することはできません。1.ヘッダーの内容を2つのPESまたはトランスポートストリームパケットに分割できます。2。トランスポートストリームにビデオストリームだけでなく、このバイトシーケンスが含まれている場合、一部のオーディオデータまたはバイナリデータに含まれています。

于 2011-08-12T04:53:46.867 に答える