aspose.info
IT

Formato file MKV

Aggiornato

Che cos’è un file MKV?

MKV (Matroska Video) è un contenitore multimediale simile al formato MOV e AVI ma supporta più di una traccia audio e sottotitoli nello stesso file. Un file MKV è il formato contenitore multimediale Matroska utilizzato per i video. MKV è basato su Extensible Binary Meta Language e supporta diversi formati di compressione video e audio. La principale differenza tra MKV e altri formati video è che MKV è un contenitore e non un codec. I file MKV vengono salvati con l’estensione .mkv. MKV può incorporare audio, video e sottotitoli in un unico file anche se tali elementi utilizzano diversi tipi di codifica. Ad esempio, potresti avere un file MKV che contiene video H.264 e MP3 o AAC per l’audio. MKV supporta anche descrizioni, valutazioni, copertine e persino capitoli. Ci sono diverse caratteristiche chiave che MKV è a prova di futuro. Queste caratteristiche includono:

  • Supporto per la ricerca rapida.
  • Possibilità di selezionare diversi flussi audio e video.
  • Supporto per i sottotitoli (hardcoded e soft-coded).
  • Supporto per metadati, capitoli e menu.
  • Possibilità di streaming online.
  • Possibilità di recuperare file errati che forniscono la capacità di riprodurre file danneggiati.

Breve storia

Il file MKV è nato nel 2002 in Russia. Lo sviluppatore principale era Lasse Kärkkäinen che ha lavorato con il fondatore di Matroska, Steve Lhomme, e un team di programmatori. MKV è stato sviluppato come un progetto di standard aperti, il che significa che è open source e gratuito. Col passare del tempo, il formato è stato migliorato ed è diventato la base del formato multimediale WebM nel 2010.

Matroska Design

Matroska aggiunge i seguenti vincoli alla specifica EBML.

  • Il docType dell’EBML Header deve essere ‘matroska’.
  • EBMLMaxIDLength di EBML Header deve essere 4.
  • EBMLMaxSizeLength di EBML Header deve essere compreso tra 1 e 8 (incluso).

Tutti gli elementi di primo livello sono codificati in 4 ottetti.

  • Codici lingua: Matroska (versioni da 1 a 3) utilizzava codici lingua che possono essere il modulo bibliografico ISO-639-2 di 3 lettere (come “fre” per il francese), o un codice paese aggiuntivo potrebbe essere utilizzato come “fre-ca " per il francese canadese. A partire da Matroska versione 4, ISO 639-2 o BCP 47 POSSONO essere utilizzati per i codici lingua, sebbene sia consigliato BCP 47.
  • Tipi fisici: hanno un significato diverso per i file audio e video. Ad esempio, ChapterPhysicalEquiv = 60 significa (CD / 12” / 10" / 7" / TAPE / MINIDISC / DAT) per l’audio e (DVD / VHS / LASERDISC) per il video.
  • Struttura del blocco - Intestazione del blocco: l’intestazione del blocco contiene informazioni relative al numero di traccia, timestamp, tipo di allacciatura, ecc.
  • Allacciatura: è un meccanismo per risparmiare spazio durante la memorizzazione dei dati che viene generalmente utilizzato per piccoli blocchi di dati (frame). Esistono 3 tipi di allacciatura:
    • Xiph: Frame with a size multiple of 255 coded with a 0 at the end of the size. For example, The code for 765 is 255;255;255;0.
    • EBML: The frame size is coded as a difference between the previous size and this size. The first size in the lace is unsigned but others use a range shift to get a sign on each value.
    • fixed-size: The size remains the same.
  • Struttura SimpleBlock: è ispirata alla struttura a blocchi con la differenza principale che è l’aggiunta di Keyframe e Discardable flag. A parte questo, tutto è uguale.

Struttura Matroska

Un documento Matroska deve essere composto da almeno un Documento EBML che utilizza il Tipo di documento Matroska. Ciascun documento EBML deve iniziare con un intestazione EBML seguita dall’elemento radice EBML definito come segmento. Matroska definisce diversi elementi di primo livello che possono verificarsi all’interno del segmento.

EBML utilizza un sistema di elementi per comporre un documento EBML. Di seguito è riportato l’elenco degli elementi di primo livello nel file Matroska:

  • Documento EBML: wrapper per l’intero file.
  • EBML Header: contiene le informazioni di intestazione per il file come DocType.
  • Segmento: l’elemento principale che contiene tutti gli altri elementi di primo livello.
  • SeekHead: contiene la posizione dei segmenti di altri elementi di primo livello.
  • Info: contiene informazioni generali sul Segmento.
  • Tracce: un elemento di informazioni di primo livello con molte tracce descritte.
  • Capitoli: viene utilizzato per definire i menu di base e i dati della partizione.
  • Cluster: l’elemento di primo livello contenente la struttura del blocco.
  • Cues: un elemento di primo livello che contiene tutte le voci locali del segmento che velocizzano l’accesso alla ricerca.
  • Allegati: contiene file allegati.
  • Tag: questo elemento contiene metadati che descrivono tracce, edizioni, capitoli, allegati o il segmento nel suo insieme.

La tabella seguente mostra la struttura del documento Matroska con la maggior parte degli elementi visualizzati in una gerarchia:

Intestazione EBML
segmentoSeekHeadcercareCerca ID
CercaPosizione
InformazioniSegmentUID
Nomefilesegmento
PrevUID
Nome file precedente
NextUID
SuccessivoNome file
SegmentFamily
ChapterTranslate
Scala del timestamp
Durata
DataUTC
Titolo
MuxingApp
ScritturaApp
tracceTrackEntryNumero di traccia
TrackUID
Tipo di traccia
Nome
Lingua
CodecID
CodecPrivato
CodecName
VideoFlagInterlacciato
Ordine di campo
Modalità Stereo
Modalità Alfa
Larghezza pixel
Altezza pixel
Larghezza display
Altezza di visualizzazione
Tipo rapporto aspetto
Colore
AudioFrequenza di campionamento
Canali
Profondità di bit
CapitoliEdizioneEntrataEdizioneUID
EdizioneFlagHidden
EdizioneFlagDefault
EdizioneFlagOrdinato
Capitolo AtomCAPITOLO
CapitoloStringUID
CapitoloTimeStart
ChapterTimeFine
ChapterFlagHidden
Visualizzazione capitoloChapString
ChapLanguage
ClusterTimestamp
Silent Tracks
Posizione
Dimensione precedente
Blocco semplice
BloccoGruppo
Blocco crittografato
SpuntiCuePointCueTime
Posizioni CueTrack
AllegatiFile allegatoDescrizione file
NomeFile
FileMimeType
FileUID
Riferimento file
FileUsedStartTime
FileUsedEndTime
tagEtichettaObiettiviValoreTipo Obiettivo
Tipo di destinazione
TagTrackUID
TagEditionUID
TagChapterUID
TagAllegatoUID
Etichetta sempliceTagName
TagLingua
TagDefault
Stringa di tag
TagBinary
Etichetta semplice

Utilizzo dei codec

Se non desideri un nuovo lettore multimediale e preferisci utilizzare il tuo lettore esistente, dovrai installare alcuni codec (abbreviazione di compressione/decompressione). Anche se il download di codec è un’opzione valida, dovresti fare attenzione alla fonte e questi potrebbero contenere malware.

Riferimenti

Vedi anche