0

RTPを介してMPEG2-TSストリームを受信して​​います。しかし、特定のフレームの終わりを見つけることができません。MPEG2ストリームのみがRTPを経由した場合、フレームの終わりがあるとRTPヘッダーのマーカービットは1に設定されますが、この場合、マーカービットは常に0です。誰か助けてもらえますか。 MPEG2-TS?

4

1 に答える 1

3

RFC 2250 によれば、mpeg-ts の場合、M ビットはフレームの終わりを示す必要があります。(3.3 MPEG ES カプセル化のための RTP 固定ヘッダー) しかし、多くのデコーダーはそれをヘッダーに入れていない可能性があります。

フレームの開始を見つける他の唯一の方法は、188 バイトの mpeg-ts パケットのヘッダーをデコードすることです。mpeg-ts には「ペイロード ユニット開始インジケータ」が含まれています。

あなたのアルゴリズムは次のようになります

  1. RTP データには、整数の mpeg-ts パケットが含まれています。
  2. 各パケットは 0x47 で始まります
  3. 各パケットの「ペイロード ユニット開始インジケータ」フィールドを確認します
  4. 「ペイロードユニット開始インジケータ== 1」の場合、PESまたはPSIかどうかを確認します
  5. PSI の場合はパケットを無視してステップ 1 に進み、それ以外の場合は次のステップに進みます
  6. PES パケットの場合、ビデオが新しいフレームにヒットした場合は「ストリーム ID」を確認します。
于 2012-12-17T06:18:28.303 に答える