Ogg Media | |
---|---|
Rozšíření | .ogm |
Typ formátu | formát popisu kontejneru [d] |
Rozšířeno z | Ogg |
Ogg Media (OGM) je formát, kontejner pro ukládání datových toků , jako je video, zvuk a titulky. Poskytuje nezbytné prostředky pro spolehlivou přepravu souborů, kontrolu integrity souborů, minimalizaci počtu přesunů souborů během přehrávání více streamů (prokládání).
Kontejner Ogg Media je modifikací kontejneru Ogg od třetí strany , která se zaměřuje na bezplatné kodeky podporované Xiph.Org , aby podporovala nesvobodné kodeky běžně používané s kontejnerem AVI pomocí DirectShow . Ogg Media vznikla v roce 2002 nezávisle na Xiph.Org , která v roce 2004 vydala žádost o odstranění zavádějícího „Ogg“ z názvu kontejneru. [jeden]
Každý datový tok z hlediska ogg se nazývá logický tok ( angl. logical bitstream ), několik logických toků je sloučeno do fyzického toku ( angl. Physical bitstream ).
Existují následující metody pro kombinování logických toků do jednoho fyzického:
Každý logický proud je rozdělen na pakety ( anglicky packets ). Formát paketu je určen použitým kodekem . Pakety jsou rozděleny do segmentů , velikost každého segmentu nepřesahuje 255 bajtů . Segmenty jsou sloučeny do stránek ( anglicky pages ), každá stránka obsahuje maximálně 255 segmentů (celková velikost dat na jedné stránce nikdy nepřesáhne 64 Kb). Balíček může být obsažen na více než jedné stránce (tj. být větší než 64 KB), v takovém případě je pro stránku obsahující pokračování balíčku nastaven speciální příznak "pokračování balíčku" ( anglicky continue_packet_flag ).
offset ( hexadecimální ) | velikost | Typ | titul | popis |
0x0 | čtyři | FOURCC | zachytit_vzor | vždy rovno 'OggS', 0x4f 0x67 0x67 0x53 |
0x4 | jeden | BYTE | stream_structure_version | struct verze, by měla být 0 |
0x5 | jeden | bitové pole | header_type_flag | 0x1 continue_packet_flag stránka obsahuje pokračování balíčku |
Stránka 0x2 begin_of_stream je první stránkou streamu | ||||
0x4 end_of_stream page je poslední stránka streamu | ||||
0x6 | osm | INT64 | absolutní_pozice_granule | číslo posledního snímku nebo vzorku (vzorku) zakódovaného jako celek v tomto paketu. Rámce, které se nevejdou do paketu jako celku, se neberou v úvahu, pokud neexistují žádné rámce, které se do paketu jako celku nevejdou, je uvedena hodnota -1 |
0xE | čtyři | INT32 | sériové_číslo_stránky | číslo logického streamu (v rámci daného fyzického streamu), do kterého obsah stránky patří. Musí být jedinečné v rámci jednoho fyzického streamu. |
0x12 | čtyři | INT32 | page_sequence_no | číslo stránky v logickém vláknu |
0x16 | čtyři | UINT32 | kontrolní_součet stránky | CRC32 - kód stránky |
0x1A | jeden | BYTE | segmenty_stránky | počet segmentů na stránku. Platí číslo [0-255], čísla 0 a 255 (s číslem 0 stránka neobsahuje žádné segmenty (a informace) a měla by být jednoduše přeskočena). |
0x1B | segmenty_stránky | BYTE [] | tabulka_segmentů | tabulka velikostí segmentů stránky. Počet položek v tabulce je určen page_segment, v případě null neexistuje žádná tabulka segmentů |
Podstatnou vlastností formátu je absence společné hlavičky pro fyzický stream. Například binárním zřetězením dvou souborů vznikne pracovní soubor. V souborech OGM neexistuje žádný index pro tok videa (což zvyšuje stabilitu formátu během přenosu dat, ale ztěžuje přehrávání).
Každá stránka obsahuje CRC kód pro kontrolu správnosti dat během přenosu a přehrávání.
kontejnery na média | |
---|---|
Video/Audio | |
Zvuk | |
Hudba |
|
Rastrové | |
Vektor | |
Komplex |