Kontejner není kontejner
- AVI 1.0 - umožňuje nahrávat pouze do velikosti 1GB, maximální počet snímků je 22500, tedy asi čtvrt hodiny záznamu pro 25sn/s, používal se ve Windows 3.1, již se nepoužívá
- AVI 1.1 - rozšířeno nahrávání a indexování do velikosti souborů 2GB, některé programy řeší překonání této bariéry pomocí nahrávání do více souborů
- AVI 2.0 - označuje se také OpenDML, má neomezenou velikost souboru, ale FAT32 omezuje maximální velikost na 4GB, na NTFS je (téměř) neomezeno (velikost disku)
RIFF ('AVI ' LIST ('hdrl' 'avih'() LIST ('strl' 'strh'() 'strf'() 'strd'() 'strn'() ... ) . . . ) LIST ('movi' {SubChunk | LIST ('rec ' SubChunk1 SubChunk2 . . . ) . . . } . . . ) ['idx1'] ) |
Dalším hojně používaným formátem je MPEG stream. Jde o ISO/IEC standard, který definuje způsob multiplexování audio a visuálních streamů (nejen video) do jednoho streamu. Je určen, jak již název říká, především pro MPEG video a zvuk a umožňuje jak lokální uložení souboru na disk, tak streamování po internetu, nebo použití pro terestriální nebo satelitní vysílání nebo i interaktivní obsah. Formát pochází od výrobců spotřební elektroniky a hlavním požadavkem na něj byla především jednoduchost, aby mohl být snadno implementován v komerčních zařízeních. Definováno je několik aplikačních vrstev, které na sebe navazují. Nejnižší vrstvou je Elementary stream (ES), který definuje vytvoření samostatného streamu z jednoho zdroje, ať už video, audio nebo jiného, podle toho existuje několik forem ES:
- Digital Control Data
- Digital Audio
- Digital Video
- Digital Data (synchronní nebo asynchronní)
Druhým formátem od mamutí firmy Microsoft je Advanced Systems Format (ASF), dříve označovaný jako Advanced Streaming Format. Soubory mají příponu samozřejmě .ASF, později přibylo i .WMV a .WMA, což pochází od Windows Media Video/Audio, struktura je ale stejná. Tento formát není určen pro nahrazení AVI, ale je určen především pro použití MPEG-4 a Windows Media Video a Audio formátů. Jeho cílem bylo odstranit hlavní nedostatky formátu AVI a jeho určení je především pro streamování po internetu. Největším nedostatkem je jeho uzavřenost, nelze v podstatě použít jiné kodeky, než Microsoft dovolí, a také není licenční politikou dovoleno pracovat se soubory přímo, ale jen za použití DirectShow filtrů Microsoftu. Struktura ASF v aktuální verzi 1.2 je založena na objektech, objekt je základní složkou, je identifikován pomocí GUID (stejně jako vše v DirectShow, velikost 16 bytů) a existuje v několika vrstvách, jeden objekt tedy může obsahovat jiný. Nejvyšší vrstva obsahuje tři objekty. Jako první objekt je v souboru povinně vždy hlavička - Header Object. Pomocí jejího GUID se identifikuje typ souboru v DirectShow (prvních 16 bytů v souboru je vždy totožných) a dále obsahuje objekty druhé vrstvy, většinou nejsou povinné a jsou to:
- File Properties Object - základní statistika o souboru jako délka, velikost, datum vytvoření, jedinečné ID souboru atd.
- Stream Properties Object - je zde povinně pro každý stream v souboru a obsahuje informace typu streamu a formátu
- Header Extension Object - je zde pro další možné rozšíření specifikace
- Codec List Object - zobrazitelné informace o kodecích, které jsou použity pro přehrání souboru
- Script Command Object - seznam příkazů synchronizovaných na určitý čas, obsahuje buď URL adresu nebo soubor
- Marker Object - jde o časové značky pro rychlý přesun v souboru, obdoba kapitol u DVD
- Bitrate Mutual Exclusion Object - identifikuje streamy, které jsou vůči sobě vylučující, např. video stopa v určitém čase nemůže být přehrávaná zároveň s jinou, umožňuje uživateli vybrat například video s různým bitrate apod.
- Error Correction Object - identifikuje metodu korekce chyb
- Content Description Object - popis obsahu jako autor, titul, copyright, apod., obdoba ID3 tagu u MP3
- Extended Content Description Object - rozšíření Content Description o další informace
- Stream Bitrate Properties Object - informace o průměrném bitrate každého streamu
- Content Branding Object - je možné připojit značku/banner, který se bude zobrazovat při použití souboru, lze i pomocí URL
- Content Encryption Object - informace o použitém DRM (Microsoft® Digital Rights Manager)
- Extended Content Encryption Object - možnost chránit soubor pomocí Windows Media Rights Manager 7
- Digital Signature Object - podpis, který chrání informace v hlavičce
- Padding Object - umožňuje zvětšit velikost hlavičky o libovolnou velikost, nenese žádná užitečná data
Struktura ASF souboru
Hlavní konkurent Microsfotu, firma Apple má také svůj formát, který konkuruje AVI již od jeho počátku. Jistě tušíte, že jde o Quicktime soubory s příponou .MOV, který se používá na počítačích Apple Macintosh ve stejné míře jako AVI ve Windows. Na svojí dobu byl poměrně sofistikovaný a podobný dnešním moderním kontejnerům, umožňuje nést různé typy informací, například i Flash. Základní jednotkou souboru je atom, který může obsahovat další atomy. Atom začíná vždy velikostí a dále typem, obě mají 32bitů (čtyři byty), pro větší atomy je zde rozšířená velikost 64 bitů hned za typem, pokud je standardní velikost rovna 1, ostatní informace jsou specifické pro různé typy atomů. Pro lepší orientaci v souboru je u novějších souborů zavedena jednotka QT atom, která má složitější strukturu, ale poskytuje informace o vnořených atomech. Jeden soubor je vždy jedním velkým atomem Movie atom, který má identifikaci moov, podle toho je možné soubor poznat i bez přípony. Uvnitř něho je hlavička Movie header s identifikací mvhd, která je vždy také přítomna. Následuje Track atom, což je jedna stopa, každá stopa je nezávislým elementem v souboru, Media atom specifikuje typ streamu (video/audio), jeho délku a specifické informace, Video Media information resp. Sound Media informationpak charakteristiku videa resp. zvuku. Sample Table obsahuje tabulku pro konverzi času na příslušné datové vzorky (chunks) a pak samotná data. Celou strukturu lépe objasní obrázek.
Struktura MOV souboru
Poměrně starým kontejnerem je i Real Media Format (RMF), přípona .RM, .RMF nebo .RV pro video a .RA pro zvuk. Pochází od společnosti Real Networks, která se zabývá především streamováním po internetu, k čemuž je soubor předurčen. Jeho zajímavostí, resp. zajímavostí videa je to, že se může měnit framerate videa v čase, k čemuž je uzpůsoben i formát kontejneru. Opět je využito objektů, pokud přehrávač některé nezná, tak je může bez problémů přeskočit. Na začátku je objekt File header, který obsahuje základní informace o souboru - typ, popis apod. a dále popis streamů - u videa rozlišení, bitrate apod. Součástí je i index, který odkazuje na uložení paketu dat s určitým timecode v souboru. Pak už následuje objekt File sample data, který obsahuje pakety s daty pro dekoder, paket obsahuje nejprve informaci o délce, k jakému streamu patří, timestamp a zda jde o klíčový snímek u videa. Licenční politika firmy nedovoluje využívat formát pro jiné účely než pro přehrávání, navíc pouze vlastním dodávaným přehrávačem, což se bohužel odráží i v klesající popularitě tohoto formátu. Vytvořit soubory RMF je možné v mnoha programech.
S rozvojem nových technologií a především kodeků na bázi MPEG-4 začala poptávka po alternativních multimediálních kontejnerech, které by netrpěly nevýhodou AVI a byly především otevřené pro volné použití. Jako první se pokusil o tento úkol formát Ogg Media (OGM). Jeho název není náhodou podobný audio kodeku Ogg Vorbis, byl totiž vytvořen především kvůli nemožnosti použít tento kodek v AVI. Struktura OGM je velmi vstřícná video i audio kodekům a umožňuje multiplexovat i jakýkoliv jiný stream, například i obrázky nebo text (titulky). Nenašel ale přílišného rozšíření, pro DirectShow existuje demultiplexer i multiplexer, ale jsou v nich chyby (multiplexer například nedokáže správně multiplexovat nesynchronní streamy při zachytávání). Existuje také velmi malá podpora pro tvorbu a úpravu, v podstatě je to pouze VirtualDubMod. Autorem je Tobias Waldvogel, který se už ale vývoji nevěnuje a nelze očekávat další rozšiřování.
O svou přízeň se uchází i další otevřený formát Matroška (ruský název není náhodný). Vychází z dnes hojně používaného jazyka XML, resp. jeho binární verze Extensible Binary Meta Language (EBML) Jako takový umožňuje nést téměř cokoliv, ne jen video a zvuk. Obsahuje podporu pro titulky, menu, kapitoly, tituly, lze přiložit i soubory. Podívejme se stručně na strukturu souboru. Na začátku je hlavička, která identifikuje typ EBML souboru a verzi, následuje segment(y), který tvoří datovou funkční část, typicky je jen jeden, ale může jich být i více. Segment se dále dělí na menší části (sekce), každá obsahuje jiný typ informace. Metaseek udává pozici těchto sekcí uvnitř segmentu. Segment Information obsahuje základní informace o souboru jako název titulu, dále unikátní ID a pokud je součástí více souborů, tak i ID dalšího souboru. Sekce Tracks je seznam stop, tedy video, audio, titulky a také informace o nich, Chapters pak seznam kapitol a jejich umístění. V sekci Clustersjsou již samotná data - video snímky, zvukové pakety atd. Jejich pozice je vždy jako čas, což zabraňuje rozsynchronizování všech stop. Pro urychlení hledání pozice v souboru je zde ještě sekce Cueing Data, která slouží podobně jako index u AVI souboru, není však nezbytná, pouze urychluje vyhledávání. Do sekce Attachment lze přiložit jakýkoliv soubor. Poslední sekcí je Tagging, která nese související informace k titulu nebo jednotlivým stopám jako autor, účinkující a podobně, je to obdoba ID3 tagu u MP3. Bez jakýchkoliv pochybností lze říci, že jde o nejpropracovanější systém, který je možno přidáváním sekcí dále rozvíjet. Bohužel opět chybí širší podpora tohoto formátu, především pro editaci, vytvářet soubory lze například ve VirtualDubMod, zachytávat v ATV2000, přehrávat lze jakoukoliv DirectShow aplikací po nainstalování příslušných filtrů. Podle obsahu se používá i rozdílná přípona, u video souborů je to .MKV, u zvukových .MKA a u samotných titulků .MKS.
|
Dalším kontejnerem, se kterým se můžete setkat, je MP4. Ten byl vytvořen jako otevřený formát pro různá zařízení spotřební elektroniky, velkou měrou se na jeho vytvoření podílel Apple a jeho struktura je založena právě na Quicktime MOV, proto se jím nebudeme podrobněji zabývat, zjednodušeně lze říci, že došlo ke zjednodušení modelu. Stejná situace je i se soubory 3GP a 3GP2, které jsou určeny pro mobilní zařízení.
Jak je vidět, struktura všech kontejnerů je velice podobná. Některé mají jednodušší strukturu, jiné složitější, ale základní principy zůstávají stejné. Liší se názvy jednotlivých částí souborů, jejich identifikace a uložení, ale podobnost je zřetelná. Mezi moderní kontejnery lze zařadit ASF, MOV a Matrošku, jejichž specifikace není uzavřená a lze nadále rozvíjet, především posledně jmenovaný má výhodu v použití universálního EBML, jehož výhodou je také malá velikost přidaných dat, potřebných pro zachování struktury. Nelze také jednoznačně říci, který kontejner je vhodnější, každý má své místo na světě a každý se hodí a používá v jiných situacích. AVI je formátem pro editaci ve Windows, MOV pak na počítačích Apple. Ostatní formáty jsou pak většinou vytvořeny pro uložení finálního videa, který se již nebude dále upravovat a tak je třeba k nim také přistupovat.