0

MediaFoundationSDKを使用してビデオをWMVにエンコードしています。プロパティを使用してBフレームの数を設定できることはわかりますが、設定方法や設定場所がわかりません。

このプロパティはMFPKEY_NUMBFRAMESと呼ばれ、ここで説明されています:http: //msdn.microsoft.com/en-us/library/windows/desktop/ff819354%28v=vs.85%29.aspx

私たちのコードは大まかに次のことを行います。

  • MFStartupを呼び出す
  • MFCreateAttributesを1回呼び出すと、マルチプレクサ、ビデオ、およびオーディオの属性を設定できます。
  • たとえば、ビデオビットレートを設定して、前の手順で作成したIMFAttributesを構成します。pVideoOverrides-> SetUINT32(MF_MT_AVG_BITRATE、m_iVideoBitrateBPS);
  • IMFReadWriteClassFactory :: CreateInstanceFromURLを呼び出して、シンクライターを作成します
  • フレームごとに、シンクライターでWriteSampleを呼び出します
  • MFShutdownに電話する

ビデオビットレートも設定するIMFAttributeにb-framesプロパティを設定する必要がありますか?

4

1 に答える 1

1

プロパティはWindows Media Video 9 Encoderに適用されます。つまり、トポロジ上でそれを見つけて、そこでプロパティを調整する必要があります。他のトポロジ要素 (マルチプレクサなど) は他のプロパティを受け入れる可能性がありますが、これはそこでは効果がありません。

MSDN は、WMV エンコーダーの構成でst4ep の手順を順を追って説明し、それが言う場所を提供します

ターゲット ビットレートを指定するMF_MT_AVG_BITRATEには、メディア タイプの属性を設定します。

他のエンコーダ プロパティを変更することもできます。また、プロセス全体の手順を示す詳細なチュートリアル: 1-Pass Windows Media Encodingもあります。

于 2012-10-24T18:19:08.603 に答える