Sdílet prostřednictvím


Konfigurace kódování videa (Microsoft Media Foundation)

Kodér videa nakonfigurujete takto:

  1. Nastavte všechny vlastnosti DMO kodéru pomocí IPropertyBag::Write. Následující seznam shrnuje minimální sadu vlastností potřebných ke kódování streamu videa CBR (všechny tyto hodnoty mají výchozí hodnoty, které je možné použít):

    • Vlastnost MFPKEY_VIDEOWINDOW určuje okno vyrovnávací paměti, které se má použít pro stream. Další informace o nastavení oken vyrovnávací paměti a o tom, jak ovlivňuje obsah, naleznete v tématu Metody kódování. Výchozí okno vyrovnávací paměti je tři sekundy, což je vhodné pro mnoho scénářů.
    • Složitost videa je nastavená tak, aby určila kompromis mezi kvalitou zakódovaného obsahu a časem potřebným ke kódování. Pokud hodnotu nenastavíte, použije se výchozí hodnota. Doporučené režimy pro určitý kodek však můžete najít voláním IWMCodecProps::GetCodecProp pro načtení g_wszWMVCComplexityExLive, g_wszWMVCComplexityExOffline a g_wszWMVCComplexityExMax. Potom můžete nastavit MFPKEY_COMPLEXITYEX na hodnotu v rozmezí od 0 do maximální složitosti.
    • MFPKEY_CRISP určuje relativní důležitost plynulosti videa a kvality zakódovaných snímků. Ve většině případů funguje výchozí hodnota správně.
    • U obsahu videa uloženého v jiném kontejneru než ASF musí být vlastnost MFPKEY_ASFOVERHEADPERFRAME nastavená na hodnotu 0. Toto není výchozí hodnota.

    Informace o konfiguraci datových proudů VBR naleznete v tématu Použití kódování VBR.

  2. Nakonfigurujte DMO_MEDIA_TYPE strukturu pro typ vstupu nebo pokud používáte sadu Media Foundation SDK, použijte funkci MFInitMediaTypeFromVideoInfoHeader. Použijte VIDEOINFOHEADER strukturu popisující nekomprimovaný vstupní obsah. Kodek nemění velikost videa ani nepřevádí barevný prostor.

  3. Nastavte typ vstupu pomocí IMediaObject::SetInputType nebo MMFTransform::SetInputType.

  4. Nakonfigurujte typ výstupu kodéru. Po nastavení vstupního typu kodér vypíše výstupní typy, které jsou kompletní kromě člena struktury dwBitrateVIDEOINFOHEADER, nebo atributu MF_MT_AVG_BITRATE rozhraní IMFMediaType. Pokud před nastavením vstupního typu načtete typ výstupu, doručená struktura DMO_MEDIA_TYPE nebude mít přidruženou VIDEOINFOHEADER.

  5. Načtěte privátní data kodeku a připojte je ke struktuře VIDEOINFOHEADER, kterou předáte DMO_MEDIA_TYPE struktuře nebo IMFMediaType. Další informace naleznete v tématu Používání privátních dat videokodeku.

  6. Nastavte typ výstupu voláním IMediaObject::SetOutputType nebo MMFTransform::SetOutputType metoda. Buď předejte DMO_MEDIA_TYPE strukturu s dokončenou VIDEOINFOHEADER strukturou (včetně připojených soukromých dat) odkazovanou v členu pbFormat, nebo vytvořte IMFMediaType voláním MFInitMediaTypeFromVideoInfoHeader.

Poznámka

Objekt kodéru videa podporuje dva výstupy. Druhým výstupem je kodér post view. Dodává nekomprimované vzorky tak, jak budou doručeny z dekodéru. Díky tomu můžete monitorovat kvalitu kódování, aniž byste museli čekat na zpracování celého datového proudu. Tento výstup je volitelný. Pokud ho chcete použít, nakonfigurujte jeho typ podle stejného postupu, který jste použili k nastavení typu vstupu kodéru.

Práce s video