Přehled kódování ve službě Media Foundation
Toto téma je přehled rozhraní API pro kódování souborů poskytovaná ve službě Microsoft Media Foundation.
Terminologie
Kódování je obecný pojem, který zahrnuje několik různých procesů:
- Kódování zvukového nebo video streamu do komprimovaných formátů Například kódování streamu videa na video H.264.
- Multiplexování ("muxing") jednoho nebo více datových proudů do jediného bajtového proudu. Příchozí datové proudy jsou obvykle zakódovány jako první. Tento krok může zahrnovat paketizaci zakódovaných datových proudů.
- Zápis multiplexovaného bajtového streamu do souboru, například souboru MP4 nebo ASF (Advanced Systems Format). Alternativně lze multiplexovaný datový proud odeslat přes síť.
Následující diagram znázorňuje tyto tři procesy:
Mezi varianty tohoto procesu patří překódování a remuxování:
- překódování znamená dekódování existujícího souboru, opětovné kódování datových proudů a opětovné multiplexování zakódovaných datových proudů. Překódování může být provedeno za účelem převodu souboru z jednoho typu kódování na jiný; Například převod videa H.264 na Windows Media Video (WMV). Lze také provést změnu zakódované přenosové rychlosti; velikost rámečku videa; frekvence snímků; nebo jiné parametry formátu.
- remultiplexing nebo remuxování znamená demultiplexování souboru a opětovné multiplexování datových proudů bez dekódování nebo kódování. To může být provedeno tak, aby se změnil způsob multiplexování paketů zvuku nebo videa, odebrání datového proudu nebo kombinování datových proudů ze dvou různých zdrojových souborů.
- Transrating je zvláštní případ překódování, kde se přenosová rychlost mění beze změny typu komprese. Můžete například převést soubor s vysokou přenosovou rychlostí na nižší přenosovou rychlost. Typickým scénářem, kdy se může použít transkratace, je synchronizace mediálního obsahu z počítače do přenosného zařízení. Pokud přenosné zařízení nepodporuje vysokou přenosovou rychlost, může se soubor před zkopírováním do přenosného zařízení převést.
Následující blokový diagram znázorňuje proces překódování.
procesu překódování
Následující blokový diagram znázorňuje proces remuxování.
Tato dokumentace někdy používá termín kódování, aby zahrnoval jak překódování, tak remuxování. Pokud je důležité rozlišovat mezi nimi, dokumentace uvede rozdíl.
Viz také: Media Foundation: Základní koncepty.
Architektura kódování Media Foundation
V nejnižší vrstvě architektury Media Foundation se pro kódování používají následující typy komponent:
- Pro překódování se zdroje médií používají k demultiplexování zdrojového souboru.
- Pro proces kódování se používají Transformace Media Foundation k dekódování a kódování datových toků.
- Při procesu multiplexování se jímky médií používají k multiplexování datových proudů a zápisu multiplexovaného datového proudu do souboru nebo sítě.
Následující diagram znázorňuje tok dat mezi těmito komponentami ve scénáři překódování:
Většina aplikací nebude tyto komponenty používat přímo. Místo toho bude aplikace používat rozhraní API vyšší úrovně, která spravují tyto komponenty nižší úrovně. Media Foundation poskytuje dvě rozhraní API vyšší úrovně pro kódování:
-
Mediální relace poskytuje ucelené potrubí, které přesouvá data ze zdroje médií, prostřednictvím kodeků, a nakonec k výstupu médií. Aplikace řídí mediální relaci a přijímá stavové události z mediální relace.
-
Čtečka médií obaluje zdroj médií a případně i dekodéry. Dodává buď kódované nebo dekódované ukázky aplikace. Modul pro zápis do jímky obaluje mediální jímku a volitelně i enkodéry. Aplikace předává vzorky do Sink Writeru.
Následující diagram znázorňuje mediální sezení:
Rozhraní Transcode API (modré stínované pole) je sada rozhraní API zavedená ve Windows 7, která usnadňuje konfiguraci Media Session pro kódování.
Následující diagram znázorňuje čtečku zdroje a zapisovač jímky.
Související témata