RAW MPEG4ストリームからフレームディメンションを取得しますか?

StackOverflow https://stackoverflow.com/questions/3246875

  •  15-09-2020
  •  | 
  •  

質問

Raw Video BitstreamからMPEG4ビデオ(非H264、すなわちMPEG4パート2)のフレーム寸法をどのように検索できるかを知っていますか? 現在、Windows Media Foundation用のカスタムメディアソースを書いています。フレームサイズが必要なメディアタイプを提供する必要があります。それなしではうまくいきません。 何か案は? ありがとう

役に立ちましたか?

解決

私はあなたを連れて行かないで。あなたはストリーミングされているビデオの幅と高さを知ろうとしていますか?もしそうなら(そして私はそれがあなたが探している「寸法」であると思います)彼女はどうやって:

  1. この整数000001B0(Hex)のストリームを解析します(Hex)、常にあなたがストリーミングされた最初のものです。そうでない場合は、ストリームのSDP(任意の場合、およびconfig=フィールドを検索しています。これは今だけです。今すぐBase16文字列です。
  2. 整数000001B6(Hex)
  3. になるまで、すべてのバイトを読みます。
  4. あなたはこのようなものを得るべきです(16進数):000001B0F5000001B5891300000100000001200086C40FA28 A021E0A2
  5. これは "Stream Configuration Header"またはフレーム、または何でも、正確な名前はビデオオブジェクトシーケンスです。それはすべての情報を保持しており、デコーダはビデオストリームを復号する必要があるでしょう。
  6. 最後の4バイトを読み取る(マイ例では、1スペースで区切られています - A021E0A2
  7. これらのバイトを1つの32ビット符号なし整数として監視します...
  8. width を最初の8ビットを読み、次に
  9. を掛けます。
  10. 次の7ビットをスキップする
  11. height を読む9ビット
  12. 疑似コード:

      WIDTH = readBitsUnsigned(array, 8) * 4;
      readBitsUnsigned(array, 7);
      HEIGHT = readBitsUnsigned(array, 9);
    
  13. あなたは...幅と高さに行きます。 (:

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top