Ogg Media

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 13. januar 2018; verifikation kræver 1 redigering .
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]

OGM-format

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.

Pakkestruktur

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.

Se også

Noter

  1. OGM Arkiveret 30. januar 2009.