Sdílet prostřednictvím


Vstupy, streamy a výstupy

[Funkce přidružená k této stránce, Windows Media Format 11 SDK, je starší funkce. Byla nahrazena čtečkou zdroje a zapisovače jímky. a zapisovač jímky jsou optimalizované pro Windows 10 a Windows 11. Microsoft důrazně doporučuje, aby nový kód používal Čtečka zdrojového kódu a Zapisovač jímky místo Windows Media Format 11 SDK, pokud je to možné. Microsoft navrhuje, aby se stávající kód, který používá starší rozhraní API, přepsal, aby se nová rozhraní API používala, pokud je to možné.]

"Vstup" v této dokumentaci je jakýkoli datový proud digitálních médií (například zvuk nebo video), který vaše aplikace doručí do objektu zapisovače ze zdroje pomocí příslušných rozhraní API. Vstupy musí být doručeny v podporovaném formátu. Jako vstup se podporuje několik standardních formátů RGB a YUV a zvukové kodeky podporují PCM. Pokud kodek nativně nepodporuje zadaný vstupní formát, objekt zapisovače vytvoří instanci objektu pomocníka zvuku nebo videa, který dokáže převést širokou škálu formátů do formátů, které může kodek přijmout. U zvukových vstupů objekt pomocné rutiny podle potřeby upraví hloubku bitu, vzorkovací frekvenci a počet kanálů. U video vstupů bude pomocný objekt videa provádět převody barevného prostoru a úpravy velikosti obdélníku. V některých případech je možné komprimovaná data zvuku a videa předat ve vstupním datovém proudu. Vstupem může být jiný typ média než zvuk a video, například text, příkazy skriptu, obrázky nebo libovolná data souboru.

Výstup v této dokumentaci odkazuje na data, která objekt čtenáře předá aplikaci pro vykreslování. Výstup odpovídá jednomu streamu v době přehrávání. Pokud používáte vzájemné vyloučení, všechny vzájemně se vylučující datové proudy sdílejí jeden výstup. Výstupní data jsou obvykle ve formě nekomprimovaných dat zvuku nebo videa, i když mohou obsahovat libovolný typ dat. Podporované formáty výstupu videa jsou uvedeny jinde v této dokumentaci.

Termín "stream" v této dokumentaci odkazuje na data v souboru ASF, na rozdíl od (1) vstupních zdrojových dat před zpracováním objektem zapisovače a (2) výstupní data po dekompresi objektem čtenáře. Datový proud ASF obsahuje data, která pocházejí z jednoho vstupu objektu zapisovače, i když lze vytvořit více datových proudů ze stejného vstupu. Stream má od začátku do konce stejné nastavení formátu a komprese. Jednoduchý soubor ASF má dva streamy, jeden pro zvuk a jeden pro video. Složitější soubor může mít dva zvukové streamy a několik streamů videa. Zvukové streamy můžou mít stejná nastavení komprese, ale obsahují jiný obsah, například mluvený komentář v různých jazycích. Streamy videa můžou obsahovat stejný obsah, ale mají různá nastavení komprese. Nastavení formátu média a komprese, které objekt zapisovače použije pro každý datový proud, jsou zadány v profilu.

Vztah mezi vstupy, datovými proudy a výstupy může být ze tří základních typů. Následující tři diagramy znázorňují vztahy.

V nejzákladnější relaci, což je profil bez vzájemného vyloučení, je každý vstup zpracován zapisovačem a vložen do souboru ASF jako jeden datový proud. Při přehrávání čtečka přečte stream a doručí nekomprimované ukázky jako jeden výstup, jak je znázorněno v následujícím diagramu.

diagram znázorňující normální vztah mezi vstupy, datovými proudy a výstupy

Složitější relace nastane, když se použije vzájemné vyloučení s více přenosovými rychlostmi. V tomto případě je jeden vstup zpracován zapisovačem a kódován několika bitovými rychlostmi. Každé kódování dat se vloží do souboru ASF jako samostatný datový proud. Při přehrávání čtečka určuje, který datový proud se má dekomprimovat na základě dostupné šířky pásma. Čtenář pak přečte vybraný datový proud a doručí nekomprimované ukázky jako jeden výstup, jak je znázorněno v následujícím diagramu.

diagram znázorňující vztahy mezi vstupy, datovými proudy a výstupy při použití vzájemného vyloučení s více přenosovými rychlostmi

Třetí typ relace může nastat, když se použije jazykové nebo vlastní vzájemné vyloučení. V této relaci je čtenářem zpracováno více vstupů a každý z nich se vloží do souboru ASF jako jednotlivý datový proud. Při přehrávání aplikace ručně vybere, který datový proud se má dekomprimovat na základě logiky, kterou zadáte. Čtenář pak přečte vybraný datový proud a doručí nekomprimované ukázky jako jeden výstup. Tento proces lze použít pro zahrnutí hudebních podkresů ve více jazycích. Tento proces znázorňuje následující diagram.

diagram znázorňující vztahy mezi vstupy, datovými proudy a výstupy při použití vlastního vzájemného vyloučení

V relacích popsaných výše existuje určitá variace. Například soubor může obsahovat všechny tři relace nebo jednu nebo dvě z nich. Je také možné, aby některé vstupy byly komprimovány, v takovém případě zapisovač neprovádí žádnou další kompresi. Čtenář může také doručovat komprimované ukázky. Ale pokud ano, musíte k nim přistupovat podle čísla datového proudu, nikoli podle výstupního čísla.

Poznámka

Vstupy, páry a výstupy jsou všechna čísla přiřazena objekty sady Windows Media Format SDK. Streamy mají číslo datového proudu, které je založené na 1, které definujete v profilu. Každému datovému proudu je také přiřazen index datových proudů pro použití při vytváření výčtů datových proudů v profilu. Žádné z těchto čísel není zaručeno, že budou vzájemně konzistentní. To znamená, že vstupní číslo 1 nemusí odpovídat datovému proudu číslo 1, číslo 1 nemusí odpovídat indexu streamu 1 atd.

 

koncepty

vzájemné vyloučení