Ogg Media

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 13 ianuarie 2018; verificarea necesită 1 editare .
Ogg Media
Extensie .ogm
Tip de format format de descriere a containerului [d]
Extins din Ogg

Ogg Media (OGM) este un format, un container pentru stocarea fluxurilor de date, cum ar fi video, audio și subtitrări. Oferă mijloacele necesare pentru transportul fiabil al fișierelor, controlul integrității fișierelor, minimizarea numărului de mișcări ale fișierelor în timpul redării mai multor fluxuri (intercalare).

Containerul Ogg Media este o modificare terță parte a containerului Ogg , care vizează codecuri gratuite acceptate de Xiph.Org , pentru a suporta codecuri non-free utilizate în mod obișnuit cu un container AVI folosind DirectShow . Ogg Media a fost înființată în 2002 independent de Xiph.Org , care a emis o solicitare în 2004 pentru a elimina „Ogg” înșelător din numele containerului. [unu]

Format OGM

Fiecare flux de date în termeni de ogg este numit flux logic ( de exemplu, flux de biți  logic ), mai multe fluxuri logice sunt combinate într-un flux fizic ( de exemplu, flux de biți fizic ) . 

Există următoarele metode pentru combinarea fluxurilor logice într-unul fizic:

Fiecare flux logic este împărțit în pachete ( pachete în limba engleză  ). Formatul pachetului este determinat de codecul utilizat . Pachetele sunt împărțite în segmente , dimensiunea fiecărui segment nu depășește 255 de octeți . Segmentele sunt combinate în pagini ( pagini în limba engleză ), fiecare pagină nu conține mai mult de 255 de segmente (dimensiunea totală a datelor dintr-o pagină nu depășește niciodată 64 Kb). Un pachet poate fi conținut în mai mult de o pagină (adică să fie mai mare de 64 KB), caz în care este setat un steag special „continuare a pachetului” ( în engleză continued_packet_flag ) pentru pagina care conține continuarea pachetului.    

Structura pachetului

offset ( hex ) marimea tip de titlu Descriere
0x0 patru FOURCC model_captură întotdeauna egal cu „OggS”, 0x4f 0x67 0x67 0x53
0x4 unu BYTE stream_structure_version versiunea struct, ar trebui să fie 0
0x5 unu câmp de biți header_type_flag 0x1 continued_packet_flag pagina conține continuarea pachetului
Pagina 0x2 begin_of_stream este prima pagină a fluxului
Pagina 0x4 end_of_stream este ultima pagină a fluxului
0x6 opt INT64 poziție_absolută_granule numărul ultimului cadru sau eșantion (eșantion) codificat în întregime în acest pachet. Cadrele care nu se încadrează în pachetul în ansamblu nu sunt luate în considerare, dacă nu există cadre care se încadrează în pachetul ca întreg, se indică valoarea -1
0xE patru INT32 pagina_număr_serial numărul fluxului logic (în cadrul fluxului fizic dat) căruia îi aparține conținutul paginii. Trebuie să fie unic într-un singur flux fizic.
0x12 patru INT32 page_sequence_nr numărul paginii în firul logic
0x16 patru UINT32 page_checksum CRC32 - codul paginii
0x1A unu BYTE page_segments numărul de segmente pe pagină. Numărul [0-255], numerele 0 și 255 sunt valide (cu numărul 0, pagina nu conține segmente (și informații) și ar trebui pur și simplu sărit).
0x1B page_segments BYTE [] tabel_segmente tabelul cu dimensiunile segmentului de pagină. Numărul de intrări din tabel este determinat de page_segment, în caz de null, nu există segment_table

O caracteristică esențială a formatului este absența unui antet comun pentru fluxul fizic. De exemplu, concatenarea binară a două fișiere va da un fișier de lucru. În fișierele OGM, nu există un index pentru fluxul video (ceea ce crește stabilitatea formatului în timpul transferului de date, dar face redarea mai dificilă).

Fiecare pagină conține un cod CRC pentru a verifica corectitudinea datelor în timpul transmisiei și redării.

Vezi și

Note

  1. OGM Arhivat 30 ianuarie 2009.