Ogg Media | |
---|---|
Udvidelse | .ogm |
Formattype | containerbeskrivelsesformat [d] |
Udvidet fra | Ogg |
Ogg Media (OGM) er et format, en beholder til lagring af datastrømme såsom video, lyd og undertekster. Giver de nødvendige midler til pålidelig filtransport, filintegritetskontrol, minimerer antallet af filbevægelser under afspilning af flere streams (interlacing).
Ogg Media-beholderen er en tredjepartsmodifikation af Ogg -beholderen , som er rettet mod gratis codecs, der understøttes af Xiph.Org , for at understøtte ikke-frie codecs, der almindeligvis bruges sammen med en AVI -beholder, der bruger DirectShow . Ogg Media blev dannet i 2002 uafhængigt af Xiph.Org , som udsendte en anmodning i 2004 om at fjerne det vildledende "Ogg" fra containernavnet. [en]
Hver datastrøm i form af ogg kaldes en logisk strøm ( eng. logical bitstream ), flere logiske strømme kombineres til en fysisk strøm ( eng. fysisk bitstream ).
Der er følgende metoder til at kombinere logiske strømme til én fysisk:
Hver logisk strøm er opdelt i pakker ( engelske pakker ). Pakkeformatet bestemmes af det anvendte codec . Pakker er opdelt i segmenter , størrelsen af hvert segment overstiger ikke 255 bytes . Segmenter kombineres til sider ( engelske sider ), hver side indeholder ikke mere end 255 segmenter (den samlede størrelse af data på én side overstiger aldrig 64 Kb). En pakke kan være indeholdt på mere end én side (dvs. være større end 64 KB), i hvilket tilfælde der er sat et særligt flag "fortsættelse af pakken" ( engelsk continud_packet_flag ) for siden, der indeholder fortsættelsen af pakken.
offset ( hex ) | størrelsen | type | titel | beskrivelse |
0x0 | fire | FOURCC | capture_pattern | altid lig med 'OggS', 0x4f 0x67 0x67 0x53 |
0x4 | en | BYTE | stream_structure_version | struct version, skal være 0 |
0x5 | en | bit felt | header_type_flag | 0x1 continud_packet_flag siden indeholder fortsættelsen af pakken |
0x2 start_of_stream side er den første side i strømmen | ||||
0x4 end_of_stream-side er den sidste side i strømmen | ||||
0x6 | otte | INT64 | absolut_granula_position | nummeret på den sidste frame eller sample (sample) kodet i sin helhed i denne pakke. Rammer, der ikke passer ind i pakken som helhed, tages ikke i betragtning, hvis der ikke er rammer, der passer ind i pakken som helhed, er værdien -1 angivet |
0xE | fire | INT32 | side_serienummer | nummeret på den logiske strøm (inden for den givne fysiske strøm), som sidens indhold tilhører. Skal være unik i en enkelt fysisk strøm. |
0x12 | fire | INT32 | side_sekvensnr | sidetal i den logiske tråd |
0x16 | fire | UINT32 | side_tjeksum | CRC32 - sidekode |
0x1A | en | BYTE | side_segmenter | antal segmenter pr. side. Tallet [0-255], tallene 0 og 255 er gyldige (med tallet 0 indeholder siden ingen segmenter (og information) og skal blot springes over). |
0x1B | side_segmenter | BYTE [] | segment_tabel | sidesegmentstørrelsestabel. Antallet af poster i tabellen bestemmes af side_segment, i tilfælde af null er der ingen segment_tabel |
Et væsentligt træk ved formatet er fraværet af en fælles header for den fysiske strøm. For eksempel vil binær sammenkædning af to filer give en arbejdsfil. I OGM-filer er der ikke noget indeks for videostrømmen (hvilket øger formatets stabilitet under dataoverførsel, men gør afspilning vanskeligere).
Hver side indeholder en CRC -kode for at kontrollere rigtigheden af dataene under transmission og afspilning.
mediebeholdere | |
---|---|
Video/lyd | |
Lyd | |
musik |
|
Raster | |
Vektor | |
Kompleks |