2

生のビデオビットストリームからmpeg4ビデオ(非h264、つまりMpeg4 Part 2)のフレームサイズを取得する方法を知っている人はいますか? 私は現在、Windows Media Foundation 用のカスタム メディア ソースを作成しています。フレーム サイズを必要とするメディアタイプを提供する必要があります。それなしでは機能しません。何か案は?ありがとう

4

1 に答える 1

3

私はあなたを取得していません。ストリーミングされているビデオの幅と高さを知りたいですか?もしそうなら(そして私はそれがあなたが探している「次元」であると思います)ここにどのように:

  1. この整数000001B0(16進数)のストリームを解析します。常に最初にストリーミングされます。そうでない場合は、ストリームのSDPを確認します(存在する場合は、フィールドを検索しconfig=ます。そこにあります...今だけBase16文字列です!
  2. 000001B6整数(16進数)に到達するまですべてのバイトを読み取ります
  3. 次のようなものを取得する必要があります(16進数):000001B0F5000001B5891300000100000001200086C40FA28 A021E0A2
  4. これは「ストリーム構成ヘッダー」またはフレームなど、正確な名前はビデオオブジェクトシーケンスです。デコーダーがビデオストリームをデコードするために必要なすべての情報を保持します。
  5. 最後の4バイトを読み取ります(私の例では、1つのスペースで区切られています- A021E0A2
  6. ここで、これらのバイトを1つの32ビット符号なし整数として観察します。
  7. を取得するには、最初の8ビットを読み取り、取得した値に4を掛けます。
  8. 次の7ビットをスキップ
  9. 高さを取得するには、次の9ビットを読み取ります
  10. 擬似コードの場合:

      WIDTH = readBitsUnsigned(array, 8) * 4;
      readBitsUnsigned(array, 7);
      HEIGHT = readBitsUnsigned(array, 9);
    

そこに行きます...幅と高さ。(:

于 2011-01-26T12:57:20.080 に答える