Provided by: mkvtoolnix_86.0-1_amd64
NAME
mkvmerge - Slå sammen multimediestrømmer til en Matroska fil
SAMMENDRAG
mkvmerge [globale alternativer] {-o ut} [alternativer1] {fil1} [[alternativer2] {fil2}] [@alternativer-fil.json]
BESKRIVELSE
Dette programmet tar inndata fra flere mediefiler og slår sammen strømmene deres (alle av dem eller bare et utvalg) til en Matroska fil; Se Matroska nettside[1]. Important Rekkefølgen på kommandolinjealternativer er viktig. Vennligst les avsnittet "Alternativ rekkefølge" hvis du er ny bruker av programmet. Globale alternativer -v, --verbose Øk detaljnivået. -q, --quiet Demp statusutdata. -o, --output filnavn Skriv til filen filnavn. Hvis splitting brukes, behandles denne parameteren litt annerledes. Se forklaringen for --split alternativet for detaljer. -w, --webm Opprett en WebM-kompatibel fil. Dette er også slått på hvis utdatafilnavnets utvidelse er "webm". Denne modusen håndhever flere begrensninger. De eneste tillatte kodekene er VP8, VP9-video og Opus, Vorbis-lydspor. Datahodeelementet DocType endres til "webm". For kapitler og tagger er bare et delsett av elementer tillatt. mkvmerge(1) vil automatisk fjerne alle elementer som ikke er tillatt av spesifikasjonen. --title tittel Angir den generelle tittelen for utdatafilen, f.eks. filmens navn. --default-language språkkode Angir standard språkkode som skal brukes for spor der det ikke er angitt noe språk med --language-alternativet og som kildekonteineren ikke gir et språk for. Standard språkkode er 'und' for 'ubestemt'. Håndtering av segmentinformasjon (globale alternativer) --segmentinfo filnavn.xml Les segmentinformasjon fra en XML-fil. Denne filen kan inneholde segmentfamiliens UID, segment-UID, forrige og neste segment-UID-elementer. En eksempelfil og en DTD er inkludert i MKVToolNix-distribusjonen. Se avsnittet om segmentinfo XML-filer nedenfor for detaljer. --segment-uid SID1,SID2,... Angir segment-UID-ene som skal brukes. Dette er en kommaseparert liste over 128-biters segment-UID-er i vanlig UID-form: hex-tall med eller uten "0x" -prefikset, med eller uten mellomrom, nøyaktig 32 sifre. Hvis SID starter med =, tolkes resten som navnet på en Matroska-fil hvis segment-UID leses og brukes. Hver fil som opprettes inneholder ett segment, og hvert segment har ett segment-UID. Hvis flere segment-UID-er er spesifisert enn segmenter opprettes, ignoreres de overskytende UID-ene. Hvis færre UID-er er spesifisert enn segmenter som opprettes, vil tilfeldige UID-er bli opprettet for dem. Kapittel- og tagghåndtering (globale alternativer) --chapter-language språkkode Angir språkkoden ISO 639-2 som skrives for hver kapitteloppføring. Standard er 'eng'. Se avsnittet om kapitlene nedenfor for detaljer. Dette alternativet kan brukes både for enkle kapittelfiler og for kildefiler som inneholder kapitler, men ingen informasjon om kapitlenes språk, eks.MP4 og OGM-filer. Språket som er angitt med dette alternativet, brukes også når kapitler genereres med --generate-chapters alternativet. --chapter-charset tegnsett Angir tegnsettet som brukes for konvertering til UTF-8 for enkle kapittelfiler. Se avsnittet om tekstfiler og tegnsett for en forklaring på hvordan mkvmerge(1) konverterer mellom tegnsett. Dette byttet gjelder også for kapitler som er kopiert fra visse konteinertyper, f.eks. Ogg/OGM- og MP4-filer. Se avsnittet om kapitler nedenfor for detaljer. --chapter-sync d[,o[/p]] Juster tidsstemplene for kapitlene i følgende kildefil med d ms. Alternativt kan du bruke --sync alternativet med den spesielle spor-IDen -2 (se avsnittet spesielle spor-ID-er). o/p: juster tidsstemplene med o/p for å fikse lineære drifter. per standard til 1 hvis utelatt. Både o og p kan være flyttall. Standardinnstillinger: ingen manuell korrigering av synkronisering (som er det samme som d = 0 og o/p = 1.0). Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. --generate-chapters modus mkvmerge(1) kan opprette kapitler automatisk. De følgende to modusene støttes: • 'under-tilføyelse' – Denne modusen oppretter ett kapittel i starten og ett kapittel når en fil tilføyes. Denne modusen fungerer også med splittmoduser 'parts:' and 'parts-frames:'.For disse modusene vil det bli generert ett kapittel for hvert tilføyde tidsstempelområde (de hvis starttidsstempler er prefikset med '+'). Note mkvmerge(1) krever at en video eller et lydspor er til stede for å kunne bestemme når en ny fil tilføyes. Hvis ett eller flere videospor er multiplekset, brukes det første. Ellers brukes det første lydsporet. • 'interval:time-spec' – Denne modusen oppretter ett kapittel med faste intervaller gitt ved time-spec. Formatet er enten formen HH:MM:SS.nnnnnnnnn eller et tall etterfulgt av en av enhetene 's', 'ms' eller 'us'. Eksempel: --generate-chapters interval:45s Navnene på de nye kapitlene styres av alternativet --generate-chapters-name-template. Språket settes med --chapter-language som må inntre før --generate-chapters. --generate-chapters-name-template mal Dette angir navnemalen for kapittelnavn generert av alternativet --generate-chapters. Hvis alternativet ikke brukes, vil standard 'Chapter <NUM:2>' bli brukt. Det er flere variabler som kan brukes i malen som erstattes av de faktiske verdiene når et kapittel genereres. Strengen '<NUM>' vil bli erstattet av kapittelnummeret. Strengen '<START>' vil bli erstattet av kapitlets starttidsstempel. Strengene '<FILE_NAME>' og '<FILE_NAME_WITH_EXT>' fylles bare når du genererer kapitler for tilføyde filer. De vil bli erstattet av den vedlagte filens navn uten henholdsvis utvidelsen. Merk at bare filens basisnavn og filtype er satt inn, ikke katalogen eller stasjonskomponentene. Du kan angi et minimum antall plasser for kapittelnummeret med '<NUM:places>', for eksempel '<NUM:3>'. Det resulterende tallet vil bli fylt ut med innledende nuller hvis antall plasser er mindre enn angitt. Du kan kontrollere formatet som brukes av starttidsstempelet med <START:format>. Formatet er som standard '%H:%M:%S' hvis ingen er angitt. Gyldige formatkoder er: • %h – timer • %H – timer null-utfylt til to plasser • %m – minutter • %M – minutter null-utfylt til to plasser • %s – sekunder • %S – sekunder null-utfylt til to plasser • %n – nanosekunder med ni plasser • %<1-9>n – nanosekunder med opptil ni plasser (eks. tre plasser med %3n) --cue-chapter-name-format format mkvmerge(1) støtter lesing av CUE-ark for lydfiler som inndata for kapitler. CUE-ark inneholder vanligvis oppføringene PERFORMER og TITLE for hver indeksoppføring. mkvmerge(1) bruker disse to strengene for å konstruere kapittelnavnet. Med dette alternativet kan formatet som brukes for dette navnet angis. Hvis dette alternativet ikke er gitt, vil mkvmerge(1) bruke standard formatet '%p - %t' (utøveren, etterfulgt av et mellomrom, en bindestrek, et annet mellomrom og tittelen). Hvis formatet er gitt, kopieres alt unntatt følgende metategn som det er, og metategnene erstattes slik: • %perstattes av gjeldende oppførings PERFORMER-streng, • %t erstattes av gjeldende oppførings TITLE-streng, • %n erstattes av gjeldende spornummer og • %N erstattes av gjeldende spornummer fylt med en innledende null hvis det er < 10. --chapters filnavn Les kapittelinformasjon fra filen filnavn. Se avsnittet om kapitler nedenfor for detaljer. --global-tags filnavn Les globale tagger fra filen filnavn. Se avsnittet om tagger nedenfor for detaljer. Generell utdatakontroll (avanserte globale alternativer) --track-order FID1:TID1,FID2:TID2,... Dette alternativet endrer rekkefølgen sporene for en inndatafil opprettes i. Argumentet er en kommadelt liste over par-IDer. Hvert par inneholder først fil-ID (FID1) som ganske enkelt er nummeret på filen på kommandolinjen som starter på 0. Den andre er en spor-ID (TID1) fra den filen. Hvis noen spor-ID-er utelates, opprettes disse sporene etter at de som er gitt med dette alternativet, er opprettet. Hvis dette alternativet ikke er angitt, sorteres sporene etter type først & rekkefølgen på kildefilen deretter. Videospor kommer først, etterfulgt av lyd- & undertekstspor. Andre sjelden brukte sportyper kommer sist. --cluster-length spesfikasjon Begrens antall datablokker eller varigheten av data i hver klynge. Spesifikasjonsparameteren kan enten være et tall n uten en enhet eller et tall d etterfikset med 'ms'. Hvis ingen enhet brukes vil mkvmerge(1) sette maksimalt n datablokker i hver klynge. Maksimalt antall blokker er 65535. Hvis nummeret d er etterfikset med 'ms' vil mkvmerge(1) sette på det meste d millisekunder med data i hver klynge. Minimum for d er '100ms', og maksimum er '32000ms'. mkvmerge(1) setter som standard maksimalt 65535 datablokker og 5000ms data i en klynge. Programmer som prøver å finne en bestemt ramme, kan bare søke direkte til en klynge og må lese hele klyngen etterpå. Derfor kan det å skape større klynger føre til upresis eller langsom søking. --clusters-in-meta-seek Forteller mkvmerge(1) å opprette et metasøk-element på slutten av filen som inneholder alle klynger. Se også avsnittet om Matroska filoppsett. --timestamp-scale faktor Tvinger tidsstempelskaleringsfaktoren til faktor. Gyldige verdier er i området 1000...10000000 eller den spesifiserte verdien -1. Normalt vil mkvmerge(1) bruke en verdi på 1000000, noe som betyr at tidsstempler og varigheter vil ha en presisjon på 1ms. For filer som ikke vil inneholde et videospor, men minst ett lydspor vil mkvmerge(1) automatisk velge et tidsstempelskaleringsfaktor slik at alle tidsstempler og varigheter har en presisjon på en lydsample. Dette fører til mer etterarbeid, men tillater presis søking og uttrekking. Hvis den magiske verdien -1 brukes, vil mkvmerge(1) bruke samplepresisjon selv om et videospor er til stede. --enable-durations Skrivevarighet for alle blokker. Dette vil øke filstørrelsen og gir ingen ekstra verdi for avspillere for øyeblikket. --no-cues Forteller mkvmerge(1) ikke å opprette og skrive signaldata som kan sammenlignes med en indeks i en AVI. Matroska filer kan spilles av uten signaldata, men søking vil trolig være upresis og tregere. Bruk dette bare hvis du virkelig er desperat etter plass eller for testformål. Se også alternativet --cues som kan spesifiseres for hver inndatafil. --no-date Som standard setter mkvmerge(1) segmentinformasjonsfeltet "dato" til tidspunktet og datoen når multipleksingen startet. Med dette alternativet skrives ikke det feltet i det hele tatt. --disable-lacing Deaktiverer sammenfletting for alle spor. Dette vil øke filens størrelse, spesielt hvis det er mange lydspor. Dette alternativet er ikke ment for daglig bruk. --disable-track-statistics-tags Normalt vil mkvmerge(1) skrive bestemte tagger med statistikk for hvert spor. Hvis slike tagger allerede er til stede, blir de overskrevet. Taggene er BPS, DURATION, NUMBER_OF_BYTES og NUMBER_OF_FRAMES. Aktivering av dette alternativet forhindrer mkvmerge(1) fra å skrive disse taggene og fra å berøre eksisterende tagger med samme navn. --disable-language-ietf Normalt vil mkvmerge(1) skrive de nye IETF BCP 47-språkelementene i tillegg til de eldre språkelementene i spordatahoder, kapitler og tagger. Hvis dette alternativet brukes, skrives bare de eldre elementene. --normalize-language-ietf modus Gjør det mulig å normalisere alle IETF BCP 47-språktagger til enten deres kanoniske form med modus 'kanonisk', til deres utvidede språkundertagger dannes med modus 'extlang' eller slår den av med modus 'av'. Som standard brukes normalisering til den kanoniske formen. I kanonisk form erstattes alle undertagger som det finnes foretrukne verdier for, med de foretrukne verdiene. Dette konverterer for eksempel 'zh-yue-jyutping' til 'yue-jyutping' eller 'fr-FX' til 'fr-FR'. For undertaggene for utvidet språk bygges den kanoniske formen først. Deretter erstattes alle primærspråk som det finnes en utvidet språkundertagg for, med den utvidede språkundertaggen og prefikset. Dette konverterer for eksempel 'yue-jyutping' tilbake til 'zh-yue-jyutping', men har ingen effekt på 'fr-FR' da 'fr' ikke er en undertagg for utvidet språk. --stop-after-video-ends Stopper behandlingen etter at det primære videosporet er avsluttet, og eventuelle gjenværende pakker med andre spor forkastes. Filsplitting, kobling, tilføying og sammenknytting (flere globale alternativer) --split spesifikasjon Splitter utdatafilen etter en gitt størrelse eller et gitt tidspunkt. Vær oppmerksom på at spor bare kan splittes rett før en nøkkelramme. Derfor kan splittpunktet være litt utenfor av det brukeren har spesifisert. For øyeblikket støtter mkvmerge(1) følgende moduser: 1. Splitting etter størrelse. Syntaks: --split [size:]d[k|m|g] Eksempler: --split size:700m eller --split 150000000 Parameteren d kan ende med 'k', 'm' eller 'g' for å indikere at størrelsen er henholdsvis i KB, MB eller GB. Ellers antas en størrelse i byte. Etter at gjeldende utdatafil har nådd denne størrelsesgrensen, vil en ny bli startet. Prefikset 'size:' kan utelates av kompatibilitetsgrunner. 2. Splitting etter en varighet. Syntaks: --split [duration:]HH:MM:SS.nnnnnnnnn|ds Eksempler: --split duration:00:60:00.000 eller --split 3600s Parameteren må enten ha formen HH:MM:SS.nnnnnnnnn for å spesifisere varigheten i opptil nanosekunders presisjon eller være et tall d etterfulgt av bokstaven 's' for varigheten i sekunder. HH er antall timer, MM antall minutter, SS antall sekunder og nnnnnnnnn antall nanosekunder. Både antall timer og antall nanosekunder kan utelates. Det kan være opptil ni sifre etter desimaltegnet. Etter at varigheten av innholdet i gjeldende utdata har nådd denne grensen, startes en ny utdatafil. Prefikset 'duration:' kan utelates av kompatibilitetsgrunner. 3. Splitting etter spesifikke tidsstempler. Syntaks: --split timestamps:A[,B[,C...]] Eksempel: --split timestamps:00:45:00.000,01:20:00.250,6300s Parametrene A, B, C osv. må alle ha samme format som de som brukes i løpet av varigheten (se ovenfor). Listen over tidsstempler er atskilt med komma. Når inndatastrømmen har nådd tidsstempelet for gjeldende splittpunkt, opprettes en ny fil. Deretter brukes neste splittpunkt gitt i denne listen. Prefikset 'timestamps:' kan ikke utelates. 4. Behold spesifikke deler ved å spesifisere tidsstempelområder mens andre forkastes. Syntaks: --split parts:start1-slutt1[,[+]start2-slutt2[,[+]start3-slutt3...]] Eksempler: 1. --split parts:00:01:20-00:02:45,00:05:50-00:10:30 2. --split parts:00:01:20-00:02:45,+00:05:50-00:10:30 3. --split parts:-00:02:45,00:05:50- Delemodusen forteller mkvmerge(1) å beholde visse tidsstempler mens andre forkastes. Områdene som skal beholdes må listes etter delene: nøkkelord og skilles med komma. Et område i seg selv består av et start- og et sluttstempel i samme format som de andre variantene av --split aksepter (f.eks. refererer både 00:01:20 og 80s til samme tidsstempel). Hvis et starttidsstempel utelates, brukes det som standard det forrige områdets sluttstempel. Hvis det ikke var noe tidligere område, er det som standard starten på filen (se eksempel 3). Hvis et sluttidsstempel er utelatt, er det som standard slutten av kildefilene som i utgangspunktet forteller mkvmerge(1) å beholde resten (se eksempel 3). Normalt vil hvert område bli skrevet til en ny fil. Dette kan endres slik at etterfølgende områder skrives til samme fil. For det må brukeren prefikse starttidsstempelet med en +. Dette forteller mkvmerge(1) ikke å opprette en ny fil og i stedet legge til området til den samme filen det forrige området ble skrevet til. Tidsstempler vil bli justert slik at det ikke blir noe gap i utdatafilen selv om det var et gap i de to områdene i inndatafilen. I eksempel 1 vil mkvmerge(1) opprette to filer. Den første vil inneholde innholdet som starter fra 00:01:20 frem til 00:02:45. Den andre filen vil inneholde innholdet som starter fra 00:05:50 frem til 00:10:30. I eksempel 2 vil mkvmerge(1) opprette bare en fil. Denne filen vil inneholde både innholdet som starter fra 00:01:20 frem til 00:02:45 og innholdet som starter fra 00:05:50 frem til 00:10:30. I eksempel 3 vil mkvmerge(1) opprette to filer. Den første vil inneholde innholdet fra starten av kildefilene til 00:02:45. Den andre filen vil inneholde innholdet som starter fra 00:05:50 til slutten av kildefilene. Note Merk at mkvmerge(1) bare tar beslutninger om splitting på viktige rammeposisjoner. Dette gjelder både starten og slutten av hvert område. Så selv om et sluttstempel er mellom to nøkkelrammer vil mkvmerge(1) fortsette å sende ut rammene opp til, men unntatt følgende nøkkelramme. 5. Behold spesifikke deler ved å spesifisere ramme-/feltnummerområder mens andre forkastes. Syntaks: --split parts-frames:start1-slutt1[,[+]start2-slutt2[,[+]start3-slutt3...]] Eksempler: 1. --split parts-frames:137-258,548-1211 2. --split parts-frames:733-912,+1592-2730 3. --split parts-frames:-430,2512- parts-frames-modusen mode forteller mkvmerge(1) å beholde visse områder med ramme-/feltnumre mens andre forkastes. Områdene som skal beholdes, må oppføres etter parts-frames:-nøkkelordet og være separert med kommategn. Et område i seg selv består av en start og en sluttramme/feltnummer. Nummereringen starter på 1. Hvis et startnummer utelates, er det som standard sluttnummeret til det forrige området. Hvis det ikke var noe tidligere område, er det som standard starten på filen (se eksempel 3). Hvis et sluttnummer er utelatt, er det som standard slutten av kildefilene som i utgangspunktet forteller mkvmerge(1) å beholde resten (se eksempel 3). Normalt vil hvert område bli skrevet til en ny fil. Dette kan endres slik at etterfølgende områder skrives til samme fil. For det må brukeren prefikse startnummeret med en +. Dette forteller mkvmerge(1) ikke å opprette en ny fil og i stedet tilføye området til den samme filen det forrige området ble skrevet til. Tidsstempler vil bli justert slik at det ikke blir noe gap i utdatafilen selv om det var et gap i de to områdene i inndatafilen. Note Merk at mkvmerge(1) bare tar beslutninger om splitting på viktige rammeposisjoner. Dette gjelder både starten og slutten av hvert område. Så selv om en ramme/felt er mellom to nøkkelrammer vil mkvmerge(1) fortsette å sende ut rammene opp til, men unntatt følgende nøkkelramme. I eksempel 1 vil mkvmerge(1) opprette to filer. Den første inneholder innholdet fra det første nøkkelbildet ved eller etter 137 og frem til, men ekskludert det første nøkkelbildet ved 258 eller etter. Den andre filen vil inneholde innholdet som starter fra 548 til 1211. I eksempel 2 vil mkvmerge(1) opprette bare en fil. Denne filen vil inneholde både innholdet som starter fra 733 frem til 912 og innholdet som starter fra 1592 frem til 2730. I eksempel 3 vil mkvmerge(1) opprette to filer. Den første vil inneholde innholdet fra starten av kildefilene til 430. Den andre filen vil inneholde innholdet som starter fra 2512 til slutten av kildefilene. Denne modusen vurderer bare det første videosporet som sendes ut. Hvis det ikke sendes ut noe videospor, vil det ikke oppstå splitting. Note Tallene gitt med dette argumentet tolkes basert på antall Matroska blokker som er sendt ut. En enkelt Matroska blokk inneholder enten en fullformat (for progressivt innhold) eller et enkelt felt (for sammenflettet innhold). MKVMERGE skiller ikke mellom disse to og teller bare antall blokker. For eksempel: hvis man ønsket å splitte etter den 25. fulle rammen med sammenflettet innhold, måtte man bruke 50 (to felt per full ramme) som splittpunkt. 6. Splitting etter spesifikke rammer/felt. Syntaks: --split frames:A[,B[,C...]] Eksempel: --split frames:120,237,891 Parametrene A, B, C osv. må alle være positive heltall. Nummereringen starter på 1. Listen over ramme-/feltnumre er atskilt med komma. Etter at inndatastrømmen har nådd ramme-/feltnummeret for gjeldende splittpunkt, opprettes en ny fil. Deretter brukes neste splittpunkt gitt i denne listen. Prefikset 'frames:' kan ikke utelates. Denne modusen vurderer bare det første videosporet som sendes ut. Hvis det ikke sendes ut noe videospor, vil det ikke oppstå splitting. Note Tallene gitt med dette argumentet tolkes basert på antall Matroska blokker som er sendt ut. En enkelt Matroska blokk inneholder enten en fullformat (for progressivt innhold) eller et enkelt felt (for sammenflettet innhold). MKVMERGE skiller ikke mellom disse to og teller bare antall blokker. For eksempel: hvis man ønsket å splitte etter den 25. fulle rammen med sammenflettet innhold, måtte man bruke 50 (to felt per full ramme) som splittpunkt. 7. Splitting før spesifikke kapitler. Syntaks: --split chapters:all eller --split chapters:A[,B[,C...]] Eksempel: --split chapters:5,8 Parametrene A, B, C osv. må alle være positive heltall. Nummereringen starter på 1. Listen over kapittelnumre er atskilt med komma. Oppdeling skjer rett før den første nøkkelrammen hvis tidsstempel er lik eller større enn starttidsstempelet for kapitlene der tallene er oppført. Et kapittel som starter på 0s blir aldri vurdert for splitting og forkastes stille. Nøkkelordet all kan brukes i stedet for å liste opp alle kapittelnumre manuelt. Prefikset 'chapters:' kan ikke utelates. Note Matroska filformatet støtter vilkårlig dypt nestede kapittelstrukturer kalt 'utgaveoppføringer' og 'kapittelatomer'. Denne modusen vurderer imidlertid bare det øverste nivået av kapitler på tvers av alle utgaveoppføringer. For denne splittingsmodusen behandles utdatafilnavnet annerledes enn for den normale operasjonen. Den kan inneholde et printf-lignende uttrykk '%d' inkludert en valgfri feltbredde, f.eks. '%02d'. Hvis det gjør det, blir det nåværende filnummeret formatert riktig og satt inn på det punktet i filnavnet. Hvis det ikke finnes et slikt mønster, antas et mønster av '-%03d' rett før filens utvidelse: '-o output.mkv' vil resultere i 'output-001.mkv' og så videre. Hvis det ikke er noen utvidelse, vil '-%03d' bli tilføyd navnet. Et annet mulig mønster er '%c' som vil bli erstattet av navnet på det første kapittelet i filen. Merk at når '%c' er til stede, vil mønsteret '-%03d' ikke bli lagt til automatisk. --link Koble filer til hverandre når utdatafilen splittes. Se avsnittet om filkobling nedenfor for mer informasjon. --link-to-previous segment-UID Kobler den første utdatafilen til segmentet med segment-UID-en gitt av segment-UID-parameteren. Se avsnittet om filkobling nedenfor for mer informasjon. Hvis SID starter med =, tolkes resten som navnet på en Matroska-fil hvis segment-UID leses og brukes. --link-to-next segment-UID Kobler den siste utdatafilen til segmentet med segment-UID-en gitt av segment-UID-parameteren. Se avsnittet om filkobling nedenfor for mer informasjon. Hvis SID starter med =, tolkes resten som navnet på en Matroska-fil hvis segment-UID leses og brukes. --append-mode modus Bestemmer hvordan tidsstempler beregnes ved tilføying av filer. Parameter-modusen kan ha to verdier: 'fil' som også er standard og 'spor'. Når mkvmerge tilføyer et spor (kalt 'track2_1' fra nå av) fra en annen fil (kalt 'fil2') til et spor (kalt 'track1_1') fra den første filen (kalt 'file1') så må den forskyve alle tidsstempler for 'track2_1' med en mengde. For 'fil'-modus er denne mengden det høyeste tidsstempelet som oppstår i 'fil1', selv om tidsstempelet var fra et annet spor enn 'track1_1'. I spormodus er forskyvningen det høyeste tidsstempelet på 'track1_1'. Dessverre kan mkvmerge ikke oppdage hvilken modus som kan brukes pålitelig. Derfor er den standard til 'fi' -modus. 'Fil' -modus fungerer vanligvis bedre for filer som er opprettet uavhengig av hverandre; f.eks. når du tilføyer AVI- eller MP4-filer. 'Spor'-modus kan fungere bedre for kilder som egentlig bare er deler av en stor fil, for eksempel for VOB- og EVO-filer. Undertekstspor blir alltid behandlet som om 'fil'-modus var aktiv, selv om 'spor'-modus faktisk er det. --append-to SFID1:STID1:DFID1:DTID1[,...] Dette alternativet kontrollerer hvilket spor et annet spor tilføyes. Hver spesifikasjon inneholder fire ID-er: en fil-ID, en spor-ID, en annen fil-ID og en ekstra spor-ID. Det første paret, "kildefil-ID" og "kildespor-ID", identifiserer sporet som skal tilføyes. Det andre paret, "destinasjonsfil-ID" og "destinasjonsspor-ID", identifiserer sporet den første er tilføyd til. Hvis dette alternativet er utelatt, brukes en standardtilordning. Denne standardtilordningen legger til hvert spor fra gjeldende fil til et spor fra den forrige filen med samme sporings-ID. Dette gjør det enkelt å tilføye hvis en film er splittet i to deler og begge filene har samme antall spor og spor-IDer med kommandoen mkvmerge -o utdata.mkv del1.mkv + del2.mkv. + Et enkelt '+' fører til at neste fil tilføyes i stedet for å legges til. '+' kan også settes foran neste filnavn. Derfor er de følgende to kommandoene likeverdige: $ mkvmerge -o full.mkv fil1.mkv + fil2.mkv $ mkvmerge -o full.mkv fil1.mkv +fil2.mkv [ fil1 fil2 ] Hvis flere filnavn finnes i et par hakeparenteser, vil den andre og alle følgende filer bli tilføyd den første filen som er navngitt i parentesene. Dette er en alternativ syntaks til å bruke '+' mellom filnavnene. Derfor er de følgende to kommandoene likeverdige: $ mkvmerge -o full.mkv fil1.mkv + fil2.mkv $ mkvmerge -o full.mkv '[' fil1.mkv fil2.mkv ']' = For visse filtyper (MPEG-programstrømmer = VOBer) ser mkvmerge(1) vanligvis etter filer i samme katalog som en inndatafil som har samme basenavn og bare er forskjellige i kjørende nummer (f.eks. 'VTS_01_1.VOB', 'VTS_01_2.VOB', 'VTS_01_3.VOB' osv.) og behandler alle disse filene som om de var sammenslått til en enkelt stor fil. Dette alternativet, en enkelt '=', fører mkvmerge til ikke å lete etter de ekstra filene. '=' kan også settes foran neste filnavn. Derfor er de følgende to kommandoene likeverdige: $ mkvmerge -o full.mkv = fil1.vob $ mkvmerge -o full.mkv =fil1.vob ( fil1 fil2 ) Hvis flere filnavn er inneholdt i et par parenteser, vil disse filene bli behandlet som om de var satt sammen til en enkelt stor fil som består av innholdet i hver av filene etter hverandre. Dette kan brukes til f.eks. VOB filer som kommer fra en DVD- eller MPEG-transportstrømmer. Den kan ikke brukes hvis hver fil inneholder sitt eget sett med datahoder, noe som vanligvis er tilfelle med frittstående filer som AVI eller MP4. Å sette et filnavn i parentes forhindrer også mkvmerge(1) fra å lete etter flere filer med samme basenavn som beskrevet i alternativ =. Derfor er disse to kommandolinjene likeverdige: $ mkvmerge -o ut.mkv = fil.mkv $ mkvmerge -o ut.mkv '(' fil.mkv ')' Flere ting bør bemerkes: 1. Det må være mellomrom både etter åpningen og før den avsluttende parentesen. 2. Hver parameter mellom parenteser tolkes som et filnavn. Derfor må alle alternativer som gjelder for denne logiske filen, være oppført før den innledende parentesen. 3. Noen skall behandler parentes som spesialtegn. Derfor må du maskere eller sitere dem som vist i eksemplet ovenfor. Støtte for vedlegg (flere globale alternativer) --attachment-description beskrivelse Ren tekstbeskrivelse av følgende vedlegg. Gjelder det neste alternativet --attach-file eller --attach-file-once. --attachment-mime-type MIME type MIME-type for følgende vedlegg. Gjelder det neste alternativet --attach-file eller --attach-file-once. En liste over offisielt anerkjente MIME-typer finner du f.eks. på IANAs hjemmeside[2]. MIME-typen er obligatorisk for et vedlegg. Hvis ingen MIME-type er gitt en for et vedlegg, vil typen bli oppdaget automatisk. --attachment-name navn Angir navnet som skal lagres i utdatafilen for dette vedlegget. Hvis dette alternativet ikke er gitt, vil navnet bli avledet fra filnavnet på vedlegget som gitt med alternativet --attach-file eller --attach-file-once. --attach-file filnavn, --attach-file-once filnavn Oppretter et filvedlegg inne i Matroska-filen. MIME-typen må ha blitt angitt før dette alternativet kan brukes. Forskjellen mellom de to formene er at under splitting blir filene vedlagt med --attach-file vedlagt alle utdatafiler, mens de vedlagt med --attach-file-once bare legges til den første filen som opprettes. Hvis splitting ikke brukes, gjør begge det samme. mkvextract(1) kan brukes til å trekke ut vedlagte filer fra en Matroska-fil. --enable-legacy-font-mime-types Aktiverer bruk av eldre MIME-typer for visse typer skriftvedlegg. For eksempel vil 'application/x-truetype-font' bli brukt for TrueType-fonter i stedet for 'fonts/ttf'. Dette påvirker både nye vedlegg hvis MIME-typen oppdages automatisk og eksisterende vedlegg hvis lagrede MIME-typer vil bli tilordnet på nytt til de eldre. De berørte MIME-typene er 'font/sfnt', 'font/ttf' og 'font/collection' som alle er tilordnet 'application/x-truetype-fonts' og 'font/otf' som er tilordnet 'application/vnd' .ms-opentype'. Alternativer som kan brukes for hver inndatafil -a, --audio-tracks [!]n,m,... Kopier lydsporene n, m osv. Tallene er spor-ID-er som kan fås med --identify-bryteren. De er ikke bare spornumrene (se avsnittet spor-ID-er). Standard: kopier alle lydspor. I stedet for spor-ID-er kan du også oppgi ISO 639-2-språkkoder. Dette vil bare fungere for kildefiler som tilbyr språktagger for sporene sine. Standard: kopier alle spor av denne typen. Hvis ID-ene er prefikset med ! da blir betydningen snudd: kopier alle spor av denne typen bortsett fra de som er oppført etter !. -d, --video-tracks [!]n,m,... Kopier videosporene n, m osv. Tallene er spor-ID-er som kan fås med --identify-bryteren. De er ikke bare spornumrene (se avsnittet spor-ID-er). Standard: kopier alle videospor. I stedet for spor-ID-er kan du også oppgi ISO 639-2-språkkoder. Dette vil bare fungere for kildefiler som tilbyr språktagger for sporene sine. Hvis ID-ene er prefikset med ! da blir betydningen snudd: kopier alle spor av denne typen bortsett fra de som er oppført etter !. -s, --subtitle-tracks [!]n,m,... Kopier undertekstsporene n, m osv. Tallene er spor-ID-er som kan fås med --identify-bryteren. De er ikke bare spornumrene (se avsnittet spor-ID-er). Standard: kopier alle undertekstspor. I stedet for spor-ID-er kan du også oppgi ISO 639-2-språkkoder. Dette vil bare fungere for kildefiler som tilbyr språktagger for sporene sine. Hvis ID-ene er prefikset med ! da blir betydningen snudd: kopier alle spor av denne typen bortsett fra de som er oppført etter !. -b, --button-tracks [!]n,m,... Kopier knappsporene n, m osv. Tallene er spor-ID-er som kan fås med --identify-bryteren. De er ikke bare spornumrene (se avsnittet spor-ID-er). Standard: kopier alle knappspor. I stedet for spor-ID-er kan du også oppgi ISO 639-2-språkkoder. Dette vil bare fungere for kildefiler som tilbyr språktagger for sporene sine. Hvis ID-ene er prefikset med ! da blir betydningen snudd: kopier alle spor av denne typen bortsett fra de som er oppført etter !. --track-tags [!]n,m,... Kopier taggene for sporene n, m osv. Tallene er spor-ID-er som kan fås med --identify-bryteren. De er ikke bare spornumrene (se avsnittet spor-ID-er). Standard: kopier tagger for alle spor. Hvis ID-ene er prefikset med ! blir betydningen snudd: kopier alt bortsett fra de ID-ene som er oppført etter !. -m, --attachments [!]n[:all|first],m[:all|first],... Kopier vedleggene med ID-ene n, m osv. til alle eller bare den første utdatafilen. Hver ID kan følges av enten ':all' (som er standard hvis ingen av dem er angitt) eller ':first'. Hvis splitting er aktiv, blir de vedleggene hvis IDer er spesifisert med ':all' kopiert til alle de resulterende utdatafilene mens de andre bare kopieres til den første utdatafilen. Hvis splitting ikke er aktiv, har begge variantene samme effekt. Standard er å kopiere alle vedlegg til alle utdatafiler. Hvis ID-ene er prefikset med ! blir betydningen snudd: kopier alt bortsett fra de ID-ene som er oppført etter !. -A, --no-audio Ikke kopier noe lydspor fra denne filen. -D, --no-video Ikke kopier noe videospor fra denne filen. -S, --no-subtitles Ikke kopier noe undertekstspor fra denne filen. -B, --no-buttons Ikke kopier noe knappspor fra denne filen. -T, --no-track-tags Ikke kopier noen sporspesifikke tagger fra denne filen. --no-chapters Ikke kopier kapitler fra denne filen. -M, --no-attachments Ikke kopier vedlegg fra denne filen. --no-global-tags Ikke kopier globale tagger fra denne filen. --regenerate-track-uids Når dette alternativet brukes for en Matroska-kildefil, vil mkvmerge(1) opprette nye tilfeldige unike spor-ID-er i stedet for å beholde de eksisterende i filen. Eksisterende spor-UID-er i kapitler & tagger som leses fra den samme filen vil bli tilordnet på nytt til de nylig genererte verdiene. Denne virkemåten aktiveres automatisk for Matroska-filer opprettet av MakeMKV-programvaren. Årsaken er at MakeMKV bruker fortløpende tall (1, 2, 3...) som UID-er i stedet for å generere tilfeldige. -y, --sync TID:d[,o[/p]] Juster tidsstemplene til sporet med id TID med d ms. Spor-ID-ene er de samme som de som er gitt med --identify (se avsnitt spor-id-er). o/p: juster tidsstemplene med o/p for å fikse lineære drifter. per standard til 1 hvis utelatt. Både o og p kan være flyttall. Standardinnstillinger: ingen manuell korrigering av synkronisering (som er det samme som d = 0 og o/p = 1.0). Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. --cues TID:none|iframes|all Kontrollerer hvilke sporsignal (indeks)-oppføringer som opprettes for det gitte sporet (se avsnittet spor-IDer). 'ingen' hemmer opprettelsen av signaloppføringer. For 'iframes' legges bare blokker uten bakover- eller fremoverreferanser (= I-rammer i videospor) inn i signalarket. 'all' forårsaker mkvmerge(1) til å opprette signaloppføringer for alle blokker som vil gjøre filen veldig stor. Standard er 'iframes' for video- og undertekstspor og 'none' for lydspor. Se også alternativet --no-cues som hindrer opprettelsen av signaloppføringer uavhengig av --cues-alternativene som brukes. Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. --default-track-flag TID[:bool] Angir "standard spor"flagg for det gitte sporet (se avsnittet spor-ID-er) hvis det valgfrie argumentet bool er satt til 1 eller hvis det ikke finnes. Flagget vil bli satt hvis kildekonteineren ikke gir den informasjonen og brukeren ikke spesifiserer den via dette alternativet. Hvis brukeren ikke eksplisitt velger et spor under avspilling, bør avspilleren velge et av sporene som har flagget "standardspor" satt, og ta hensyn til brukerpreferanser som foretrukket språk. Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. --track-enabled-flag TID[:bool] Setter flagget "spor aktivert" for det gitte sporet (se avsnittet spor-IDer) til den oppgitte verdien bool (0 eller 1; standard til 1 hvis ikke angitt). Spor er aktivert som standard hvis det ikke er angitt noe alternativ for dem, og kildekonteineren heller ikke oppgir denne informasjonen. Bare spor der flagget "spor aktivert" er angitt, skal vurderes for avspilling. Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. --forced-display-flag TID[:bool] Angir flagget for "tvungen visning" for det angitte sporet (se avsnittet spor-ID-er) hvis det valgfrie argumentet bool er satt til 1 eller hvis det ikke finnes. Bruk dette alternativet for spor som inneholder tekst på skjermen eller fremmedspråklig dialog. Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. --hearing-impaired-flag TID[:bool] Angir flagget for "hørselshemmet" for det angitte sporet (se avsnittet spor-ID-er) hvis det valgfrie argumentet bool er satt til 1 eller hvis det ikke finnes. Dette flagget kan angis hvis sporet er egnet for brukere med hørselshemminger. Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. --visual-impaired-flag TID[:bool] Angir flagget for "synshemmet" for det angitte sporet (se avsnittet spor-ID-er) hvis det valgfrie argumentet bool er satt til 1 eller hvis det ikke finnes. Dette flagget kan settes hvis sporet er egnet for brukere med synshemming. Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. --text-descriptions-flag TID[:bool] Angir "tekstbeskrivelser"-flagget for det angitte sporet (se avsnittet spor-IDer) hvis det valgfrie argumentet bool er satt til 1 eller hvis det ikke finnes. Dette flagget kan angis hvis sporet inneholder tekstlige beskrivelser av videoinnhold som er egnet for avspilling via et tekst-til-tale-system for en synshemmet bruker. Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. --original-flag TID[:bool] Angir flagget for "original språk" for det angitte sporet (se avsnittet spor-ID-er) hvis det valgfrie argumentet bool er satt til 1 eller hvis det ikke finnes. Dette flagget kan angis hvis sporet er på innholdets originalspråk (ikke en oversettelse). Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. --commentary-flag TID[:bool] Angir "kommentar"flagget for det angitte sporet (se avsnittet spor-ID-er) hvis det valgfrie argumentet bool er satt til 1 eller hvis det ikke finnes. Dette flagget kan angis hvis sporet inneholder kommentarer. Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. --track-name TID:navn Setter spornavnet for det gitte sporet (se avsnittet spor-IDer) til navn. --language TID:språk Angir språket for det gitte sporet (se avsnittet spor-ID-er). Både ISO 639-2 språkkoder og ISO 639-1 landskoder er tillatt. Landskodene konverteres automatisk til språkkoder. Alle språk, inkludert deres ISO 639-2-koder, kan listes opp med --list-languages-alternativet. Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. -t, --tags TID:filnavn Les tagger for sporet med nummeret TID fra filen filnavn. Se avsnittet om tagger nedenfor for mer informasjon. --aac-is-sbr TID[:0|1] Forteller mkvmerge(1) at sporet med ID TID er SBR AAC (også kjent som HE-AAC eller AAC+). Dette alternativet er nødvendig hvis a) kildefilen er en AAC-fil (ikke for en Matroska fil) og b) AAC-filen inneholder SBR AAC-data. Årsaken til denne bryteren er at det er teknisk umulig å automatisk skille normale AAC-data fra SBR AAC-data uten å dekode en komplett AAC-ramme. Siden det er flere patentproblemer med AAC-dekodere vil mkvmerge(1) aldri inneholde dette dekodingsstadiet. Så for SBR AAC-filer er denne bryteren obligatorisk. Den resulterende filen spilles kanskje ikke av riktig eller ikke i det hele tatt hvis bryteren ble utelatt. Hvis kildefilen er en Matroska fil, bør CodecID være nok til å oppdage SBR AAC. Men hvis CodecID er feil, kan denne bryteren brukes til å rette opp det. Hvis mkvmerge urettmessig oppdager at en AAC-fil er SBR, kan du legge til :0' til spor-IDen. --audio-emphasis TID:n|symbolsk navn Angir vekten for lydsporet med spor-ID TID. Modusen kan enten være et tall n (visse verdier mellom 0 og 16) eller et symbolsk navn. Alle gyldige tall og symbolske navn kan listes opp med alternativet --list-audio-emphasis. --reduce-to-core TID Noen lydkodeker har en tapsfull kjerne og valgfrie utvidelser som implementerer tapsfri dekoding. Dette alternativet forteller mkvmerge(1) å bare kopiere kjernen, men ikke utvidelsene. Som standard kopierer mkvmerge(1) både kjernen og utvidelsene. For øyeblikket påvirkes bare DTS-spor av dette alternativet. TrueHD-spor som inneholder en innebygd AC-3-kjerne, presenteres i stedet som to separate spor der brukeren kan velge hvilket spor som skal kopieres. For DTS ville en slik ordning ikke fungere, da HD-utvidelsene ikke kan dekodes av seg selv - i motsetning til TrueHD-dataene. --remove-dialog-normalization-gain TID Noen lydkodeker inneholder datahodefelt som forteller dekoderen eller avspilleren å bruke en (vanligvis negativ) forsterkning for dialognormalisering. Dette alternativet forteller mkvmerge(1) å fjerne eller minimere denne forsterkningen ved å endre de tilsvarende datahodefeltene. For øyeblikket påvirkes bare AC-3-, DTS- og TrueHD-spor av dette alternativet. --timestamps TID:filnavn Les tidsstemplene som skal brukes for den spesifikke spor-ID-en fra filnavnet. Disse tidsstemplene overstyrer kraftig tidsstemplene som mkvmerge(1) normalt beregner. Les avsnittet om eksterne tidsstempelfiler. --default-duration TID:x Tvinger standardvarigheten for et gitt spor til den angitte verdien. Endrer også sporets tidsstempler slik at de samsvarer med standardvarigheten. Argumentet x må være etterfikset med 's', 'ms', 'us', 'ns', 'fps', 'p' eller 'i' for å spesifisere standard varighet i henholdsvis sekunder, millisekunder, mikrosekunder, nanosekunder, 'bilder per sekund', 'progressive bilder per sekund' eller 'sammenflettede bilder per sekund'. Tallet x i seg selv kan være et flyttall eller en brøk. Hvis standardvarigheten ikke tvinges, vil mkvmerge prøve å utlede sporets standardvarighet fra konteineren og/eller den kodede bitstrømmen for bestemte sportyper, for eksempel AVC/H.264 eller MPEG-2. Dette alternativet kan også brukes til å endre FPS for videospor uten å måtte bruke en ekstern tidsstempelfil. --fix-bitstream-timing-information TID[:0|1] Normalt endrer ikke mkvmerge(1) timinginformasjonen (ramme / feltfrekvens) som er lagret i videobitstrømmen. Med dette alternativet justeres denne informasjonen slik at den samsvarer med informasjonen om konteinertidsberegning. Beholdertidsinformasjonen kan komme fra forskjellige kilder: fra kommandolinjen (se alternativ --default-duration), kildekonteineren eller avledet fra bitstrømmen. Note Dette har bare blitt implementert for AVC / H.264-videospor så langt. --compression TID:n Velger komprimeringsmetoden som skal brukes for sporet. Merk at avspilleren også må støtte denne metoden. Gyldige verdier er 'none', 'zlib' og 'mpeg4_p2'/'mpeg4p2'. Komprimeringsmetoden 'mpeg4_p2'/'mpeg4p2' er en spesiell komprimeringsmetode kalt 'header removal' (fjerning av datahode) som bare er tilgjengelig for MPEG4 del 2 videospor. Standard for noen underteksttyper er 'zlib' komprimering. Denne komprimeringsmetoden er også den som de fleste om ikke alle avspillingsapplikasjoner støtter. Støtte for andre komprimeringsmetoder enn 'none' er ikke garantert. Alternativer som bare gjelder for videospor -f, --fourcc TID:FourCC Tvinger FourCC til den angitte verdien. Fungerer bare for videospor i 'MS-kompatibilitetsmodus'. --display-dimensions TID:breddexhøyde Matroska filer inneholder to verdier som angir skjermegenskapene som en spiller skal skalere bildet ved avspilling til: skjermbredde og skjermhøyde. Disse verdiene kan settes med dette alternativet, f.eks. '1:640x480'. En annen måte å angi verdiene på er å bruke --aspect-ratio eller --aspect-ratio-factor alternativet (se nedenfor). Disse alternativene utelukker hverandre. --aspect-ratio TID:sideforhold|bredde/høyde Matroska filer inneholder to verdier som angir skjermegenskapene som en spiller skal skalere bildet ved avspilling til: skjermbredde og skjermhøyde. Med dette alternativet vil mkvmerge(1) automatisk beregne visningsbredden og visningshøyden basert på bildets opprinnelige bredde og høyde og størrelsesforholdet gitt med dette alternativet. Forholdstallet kan angis enten som flyttall sideforhold eller som en brøk 'bredde/høyde', f.eks. '16/9'. En annen måte å angi verdiene på er å bruke --aspect-ratio-factor eller --display-dimensions alternativene (se ovenfor og nedenfor). Disse alternativene utelukker hverandre. --aspect-ratio-factor TID:faktor|n/d En annen måte å angi størrelsesforholdet på er å spesifisere en faktor. Det opprinnelige sideforholdet multipliseres først med denne faktoren og brukt som målsideforhold etterpå. En annen måte å angi verdiene på er å bruke --aspect-ratio eller --display-dimensions alternativene (se ovenfor). Disse alternativene utelukker hverandre. --cropping TID:venstre,topp,høyre,bunn Angir pikselbeskjæringsparametrene for et videospor til de angitte verdiene. --color-matrix-coefficients TID:n Angir matrisekoeffisientene til videoen som brukes til å utlede luma- og kromaverdier fra primærfarger med rød, grønn og blå farge. Parameteren n er et heltall som spenner fra 0 og 10. Gyldige verdier og deres betydning er: 0: GBR, 1: BT709, 2: uspesifisert, 3: reservert,4: FCC, 5: BT470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: YCOCG, 9: BT2020 ikke-konstant luminans, 10: BT2020 konstant luminans --color-bits-per-channel TID:n Angir antall kodede biter for en fargekanal. En verdi på 0 indikerer at antall biter ikke er angitt. --chroma-subsample TID:hori,vert Mengden piksler som skal fjernes i Cr- og Cb-kanalene for hver piksel som ikke fjernes horisontalt/vertikalt. Eksempel: for video med 4:2:0 kroma subsampling bør parameteren settes til TID:1,1. --cb-subsample TID:hori,vert Antall piksler som skal fjernes i Cb-kanalen for hver piksel som ikke fjernes horisontalt/vertikalt. Dette er additiv med --chroma-subsample. Eksempel: for video med 4:2:1 kroma subsampling, bør parameteren --chroma-subsample settes til TID:1,0 og Cb-subsample bør settes til TID:1,0. --chroma-siting TID:hori,vert Angir hvordan kroma plasseres horisontalt/vertikalt (0: uspesifisert, 1: topp sammenplassert, 2: halv). --color-range TID:n Angir beskjæringen av fargeområdene (0: uspesifisert, 1: kringkastingsområde, 2: hele området (ingen klipping), 3: definert av matrisekoeffisienter/overføringsegenskaper). --color-transfer-characteristics TID:n Overføringsegenskapene til videoen. Gyldige verdier og deres betydning er: 0: reservert, 1: ITU-R BT.709, 2: uspesifisert, 3: reservert, 4: gamma 2.2-kurve, 5: gamma 2.8-kurve, 6: SMPTE 170M, 7: SMPTE 240M, 8: lineær, 9: log, 10: log sqrt, 11: IEC 61966-2-4, 12: ITU-R BT.1361 utvidet fargespekter, 13: IEC 61966-2-1, 14: ITU-R BT.2020 10 bit, 15: ITU-R BT.2020 12 bit, 16: SMPTE ST 2084, 17: SMPTE ST 428-1; 18: ARIB STD-B67 (HLG) --color-primaries TID:n Angir primærfargene til videoen. Gyldige verdier og deres betydning er: 0: reservert, 1: ITU-R BT.709, 2: uspesifisert, 3: reservert, 4: ITU-R BT.470M, 5: ITU-R BT.470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: FILM, 9: ITU-R BT.2020, 10: SMPTE ST 428-1, 22: JEDEC P22 fosfor --max-content-light TID:n Angir maksimal lysstyrke for en enkelt piksel (maksimalt innholdslysnivå) i candela per kvadratmeter (cd/m²). Verdien av n skal være et ikke-negativt heltall. --max-frame-light TID:n Stiller inn maksimal lysstyrke for en enkelt helbilde (maksimalt rammegjennomsnittlig lysnivå) i candela per kvadratmeter (cd/m²). Verdien av n skal være et ikke-negativt heltall. --chromaticity-coordinates TID:rød-x,rød-y,grønn-x,grønn-y,blå-x,blå-y Angir de røde/grønne/blå kromatisitetskoordinatene som definert av CIE 1931. --white-color-coordinates TID:x,y Angir koordinatene for kromatisitet for hvit farge som definert av CIE 1931. --max-luminance TID:flyttall Angir maksimal lysstyrke i candelaer per kvadratmeter (cd/m²). Verdien skal være mindre enn 9999,99. --min-luminance TID:flyttall Angir minimum lysstyrke i candelaer per kvadratmeter (cd/m²). Verdien skal være mindre enn 999,9999. --projection-type TID:metode Angir videoprojeksjonsmetoden som brukes. Gyldige verdier er 0 (rektangulær projeksjon), 1 (ekvirektangulær projeksjon), 2 (kubekartprojeksjon) og 3 (maskeprojeksjon). --projection-private TID:data Angir private data som bare gjelder for en bestemt projeksjon. Data må gis som hex-tall med eller uten "0x" -prefikset, med eller uten mellomrom. --projection-pose-yaw TID:flyttall Spesifiserer en girrotasjon til projeksjonen. --projection-pose-pitch TID:flyttall Spesifiserer en tonehøyderotasjon til projeksjonen. --projection-pose-roll TID:flyttall Spesifiserer en rullerotasjon til projeksjonen. --field-order TID:n Angir feltrekkefølgen for videosporet med spor-ID-en TID. Rekkefølgen må være ett av følgende numre: 0: progressiv; 1: sammenflettet med toppfelt vist først og toppfelt lagret først; 2: ubestemt feltrekkefølge; 6: sammenflettet med det nederste feltet vist først og det nederste feltet lagret først; 9: sammenflettet med bunnfelt vist først og toppfelt lagret først; 14: sammenflettet med toppfelt vist først og nederste felt lagret først --stereo-mode TID:n|symbolsk navn Stiller inn stereomodus for videosporet med spor-ID TID. Modusen kan enten være et nummer n mellom 0 and 14 eller et symbolsk navn. Alle gyldige numre & navn kan listes med --list-stereo-modes alternativet. Alternativer som bare gjelder for tekst-undertekstspor --sub-charset TID:tegnsett Angir tegnsettet for konverteringen til UTF-8 for UTF-8-undertekster for den angitte spor-ID-en. Hvis det ikke er angitt, vil tegnsettet bli avledet fra gjeldende nasjonale innstillinger. Merk at et tegnsett ikke er nødvendig for undertekster lest fra Matroska filer eller fra Kate-strømmer, da disse alltid lagres i UTF-8. Se avsnittet om tekstfiler og tegnsett for en forklaring på hvordan mkvmerge(1) konverterer mellom tegnsett. Dette alternativet kan brukes flere ganger for en inndatafil som gjelder for flere spor ved å velge forskjellige spor-IDer hver gang. Andre alternativer -i, --identify filnavn Vil la mkvmerge(1) undersøke enkeltfilen og rapportere dens type, sporene i filen og deres spor-IDer. Hvis dette alternativet brukes, er det eneste andre alternativet som er tillatt, filnavnet. Utdataformatet som brukes til resultatet, kan endres med alternativet --identification-format. -J filnavn Dette er et praktisk alias for "--identification-format json --identify filnavn". -F, --identification-format format Bestemmer utdataformatet som brukes av --identify alternativet. Følgende formater støttes: text (standard hvis dette alternativet ikke brukes) og json. 1. Text-formatet er kort og lesbart. Den består av en linje per element funnet (konteiner, spor, vedlegg osv.). Dette formatet er ikke ment å analyseres. Utdataen vil bli oversatt til språket mkvmerge(1) bruker (se også --ui-language). 2. json- formatet gir en maskinlesbar JSON-representasjon. Dette formatet følger JSON-skjemaet som er beskrevet i følgende fil: mkvmerge-identification-output-schema-v20.json[3] Alle versjoner av JSON-skjemaet er tilgjengelige både på nett og i de frigitte kildekodearkivene. --probe-range-percentage prosent Filtyper som MPEG-program og transportstrømmer (.vob, .m2ts) krever analyse av en viss mengde data for å oppdage alle sporene i filen. Denne mengden er 0,3 % av kildefilens størrelse eller 10 MB, avhengig av hva som er høyest. Hvis spor er kjent for å være til stede, men ikke funnet, kan prosentandelen som skal undersøkes endres med dette alternativet. Minimum 10 MB er innebygd og kan ikke endres. --list-audio-emphasis Viser alle gyldige tall og tilhørende symbolske navn for --audio-emphasis alternativet. --list-languages Viser alle språk og deres ISO 639-2-kode som kan brukes med --language alternativet. --list-stereo-modes Viser alle gyldige tall og tilhørende symbolske navn for --stereo-mode alternativet. -l, --list-types Viser inndatafiltyper som støttes. --priority prioritet Angir prosessprioriteten som mkvmerge(1) kjører med. Gyldige verdier er 'laveste', 'lavere', 'normal', 'høyere' og 'høyeste'. Hvis ingenting er gitt vil 'normal' bli brukt. På Unix-lignende systemer vil mkvmerge(1) bruke nice(2) funksjonen. Derfor kan kun superbrukeren bruke 'høyere' og 'høyeste'. På Windows er alle verdier brukbare for alle brukere. Å velge 'laveste' fører også til at mkvmerge(1) velger inaktiv I/O-prioritet i tillegg til lavest mulig prosessprioritet. --command-line-charset character-set Angir tegnsettet for å konvertere strenger gitt på kommandolinjen fra. Det er som standard tegnsettet gitt av systemets gjeldende nasjonale innstilling. Denne innstillingen gjelder for argumenter for følgende alternativer: --title, --track-name og --attachment-description. --output-charset character-set Angir tegnsettet som strenger konverteres til som skal sendes ut. Den er standard til tegnsettet gitt av systemets gjeldende lokalitet. -r, --redirect-output filnavn Skriver alle meldinger til filen filnavn i stedet for til konsollen. Selv om dette kan gjøres enkelt med omdirigering av utdata, er det tilfeller der dette alternativet er nødvendig: når terminalen tolker utdataene på nytt før du skriver den til en fil. Tegnsettet angitt med --output-charset er hedret. --flush-on-close Ber programmet tømme alle data som er bufret i minnet til lagring når filer som er åpnet for skriving lukkes. Dette kan brukes til å forhindre tap av data ved strømbrudd eller for å omgå visse problemer i operativsystemet eller driverne. Ulempen er at multipleksing vil ta lengre tid da mkvmerge vil vente til alle data er skrevet til lagringen før den avsluttes. Se saker #2469 og #2480 på MKVToolNix-feilsporeren for dyptgående diskusjoner om fordeler og ulemper. --ui-language kode Tvinger oversettelsene for språk- koden som skal brukes (eks. 'de_DE' for tyske oversettelser). Ved å skrive inn 'list' som koden vil føre til at programmet sender ut en liste over tilgjengelige oversettelser. --abort-on-warnings Ber programmet om å avbryte etter at den første advarselen er sendt ut. Programmets avslutningskode vil være 1. --deterministic frø Gjør det mulig å opprette byte-identiske filer hvis samme versjon av mkvmerge(1) brukes med samme kildefiler, samme sett med alternativer og samme frø. Vær oppmerksom på at segmentinformasjonsfeltet "dato" ikke er skrevet i denne modusen. Frøet kan være en vilkårlig streng og trenger ikke å være et tall. Resultatet av byte-identiske filer er bare garantert under følgende forhold: 1. Den samme versjonen av mkvmerge(1) bygget med de samme versjonene av libEBML og libMatroska brukes. 2. Kildefilene som brukes er byte-identiske. 3. De samme kommandolinjealternativene brukes i samme rekkefølge (med unntak av --output ...). Bruk av andre versjoner av mkvmerge(1) eller andre kommandolinjealternativer kan resultere i den samme byte-identiske filen, men det kan ikke garanteres å gjøre det. --debug emne Slå på feilsøking for en bestemt funksjon. Dette alternativet er bare nyttig for utviklere. --engage funksjon Slå på eksperimentelle funksjoner. En liste over tilgjengelige funksjoner kan bes med mkvmerge --engage-list. Disse funksjonene er ikke ment å brukes i normale situasjoner. --gui-mode Slår på det grafiske grensesnittet. I denne modusen kan spesialformaterte linjer være utdata som kan fortelle et kontrollerende grafisk grensesnitt hva som skjer. Disse meldingene følger formatet '#GUI#melding'. Meldingen kan etterfølges av nøkkel/verdipar som i '#GUI#melding#nøkkel1=verdi1#nøkkel2=verdi2...'. Verken meldingene eller nøklene blir noen gang oversatt og sendes alltid ut på engelsk. @alternativer-fil.json Leser flere kommandolinjeargumenter fra filen alternativer-fil. Se avsnittet om alternativfiler for videre informasjon. --capabilities Viser informasjon om valgfrie funksjoner som er kompilert inn og avsluttet. Den første utlinjen vil være versjonsinformasjonen. Alle etterfølgende linjer inneholder nøyaktig ett ord hvis tilstedeværelse indikerer at funksjonen er kompilert inn. Disse funksjonene er: • 'FLAC' -- reading raw FLAC filer og håndtering FLAC spor i andre konteinere, f.eks. Ogg eller Matroska. -h, --help Vis bruksinformasjon og avslutt. -V, --version Vis versjonsinformasjon og avslutt.
BRUK
For hver fil kan brukeren velge hvilke spor mkvmerge(1) skal ta. De er alle satt inn i filen spesifisert med -o. En liste over kjente (og støttede) kildeformater kan fås med alternativet -l. Important Rekkefølgen på kommandolinjealternativer er viktig. Vennligst les avsnittet "Alternativ rekkefølge" hvis du er ny bruker av programmet.
REKKEFøLGE På ALTERNATIV
Rekkefølgen som alternativene angis i, er viktig for noen alternativer. Alternativene faller inn i to kategorier: 1. Alternativer som påvirker hele programmet og ikke er knyttet til noen inndatafil. Disse inkluderer, men er ikke begrenset til: --command-line-charset, --output eller --title. Disse kan vises hvor som helst på kommandolinjen. 2. Alternativer som påvirker en enkelt inndatafil eller et enkelt spor i en inndatafil. Alle disse alternativene gjelder for følgende inndatafil på kommandolinjen. Alle alternativer som gjelder for samme inndatafil (eller spor fra samme inndatafil), kan skrives i hvilken som helst rekkefølge så lenge de alle vises før navnet på inndatafilen. Eksempler på alternativer som gjelder for en inndatafil er: --no-chapters eller --chapter-charset. Eksempler på alternativer som gjelder for ett enkelt spor: --default-duration eller --language. Alternativene behandles fra venstre mot høyre. Hvis et alternativ vises flere ganger innenfor samme omfang, brukes den siste forekomsten. Derfor settes tittelen til "Noe annet" i følgende eksempel: $ mkvmerge -o utdata.mkv --title 'Det og dette' input.avi --title 'Noe annet' Følgende eksempel viser at det er greit å bruke --language-alternativet to ganger fordi de brukes i forskjellige områder. Selv om de gjelder for samme spor-ID, gjelder de for forskjellige inndatafiler og har derfor forskjellige omfang: $ mkvmerge -o utdata.mkv --language 0:fre français.ogg --language 0:deu deutsch.ogg
EKSEMPLER
La oss anta at du har en fil som heter MinFilm.avi og lydsporet i en egen fil, f.eks. 'MinFilm.wav'. Først vil du kode lyden til OggVorbis: $ oggenc -q4 -o MinFilm.ogg MinFilm.wav Etter et par minutter kan du forene video og lyd: $ mkvmerge -o MinFilm-med-lyd.mkv MinFilm.avi MinFilm.ogg Hvis din AVI allerede inneholder et lydspor, blir det også kopiert (hvis mkvmerge(1) støtter lydformatet). For å unngå det bare gjør $ mkvmerge -o MinFilm-med-lyd.mkv -A MinFilm.avi MinFilm.ogg Etter noen minutters betenkningstid ripper du et annet lydspor, f.eks. regissørens kommentarer eller et annet språk til "MinFilm-leggtil-lyd.wav". Kod den på nytt og slå den sammen med den andre filen: $ oggenc -q4 -o MinFilm-leggtil-lyd.ogg MinFilm-leggtil-lyd.wav $ mkvmerge -o MM-komplett.mkv MinFilm-med-lyd.mkv MinFilm-leggtil-lyd.ogg Det samme resultatet kan oppnås med $ mkvmerge -o MM-komplett.mkv -A MinFilm.avi MinFilm.ogg MinFilm-leggtil-lyd.ogg Fyr opp mplayerog kos deg. Hvis du har flere lydspor (eller til og med videospor), kan du fortelle mplayer hvilket spor som skal spilles med '-vid' og '-aid' alternativene. Disse er 0-baserte og skiller ikke mellom video og lyd. Hvis du trenger et lydspor synkronisert, kan du gjøre det enkelt. Finn først ut hvilken spor-ID Vorbis-sporet har med $ mkvmerge --identify ikke-synkronisert.ogg Nå kan du bruke denne ID-en på følgende kommandolinje: $ mkvmerge -o synkronisert.mkv -A kilde.avi -y 12345:200 ikke-synkronisert.ogg Dette vil legge til 200 ms stillhet i begynnelsen av lydsporet med ID-en 12345 tatt fra 'ikke-synkronisert.ogg'. Noen filmer synkroniseres riktig, men går sakte ut av synkronisering. For denne typen filmer kan du angi en forsinkelsesfaktor som brukes på alle tidsstempler – ingen data legges til eller fjernes. Så hvis du gjør den faktoren for stor eller for liten, får du dårlige resultater. Et eksempel er at en episode jeg transkodet var 0.2 sekunder ute av synkronisering på slutten av filmen som var 77340 rammer lang. Ved 29.97fps korresponderer0.2 sekunder omtrent til 6 rammer. Da gjorde jeg dette $ mkvmerge -o synkronisert.mkv -y 23456:0,77346/77340 ikke-synkronisert.mkv Resultatet ble bra. Synkroniseringsalternativene kan også brukes til undertekster på samme måte. For tekst-undertekster kan du enten bruke Windows-programvare (som SubRipper) eller subrip-pakken som finnes i transkode(1)s kilder i katalogen 'contrib/subrip'. Den generelle prosessen er: 1. trekk ut en rå undertekststrøm fra kilden: $ tccat -i /sti/til/kopiert/dvd/ -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | undertekst2pgm -o minfilm 2. konverter de resulterende PGM-bildene til tekst med gocr: $ pgm2txt minfilm 3. stavekontroll av de resulterende tekstfilene: $ ispell -d american *txt 4. konverter tekstfilene til en SRT-fil: $ srttool -s -w -i minfilm.srtx -o minfilm.srt Den resulterende filen kan brukes som en annen inndatafil for mkvmerge(1): $ mkvmerge -o minfilm.mkv minfilm.avi minfilm.srt Hvis du vil spesifisere språket for et gitt spor, gjøres dette enkelt. Finn først ut ISO 639-2-koden for språket ditt. mkvmerge(1) kan liste alle disse kodene for deg: $ mkvmerge --list-languages Søk i listen etter språkene du trenger. La oss anta at du har lagt to lydspor i en Matroska fil og vil angi språkkodene deres og at spor-ID-ene deres er 2 og 3. Dette kan gjøres med $ mkvmerge -o med-språk-koder.mkv --language 2:ger --language 3:dut uten-språk-koder.mkv Som du kan se, kan du bruke --language-bryteren flere ganger. Kanskje du også vil at spilleren skal bruke det nederlandske språket som standardspråk. Du har også ekstra undertekster, for eksempel på engelsk og fransk, og vil at spilleren skal vise de franske som standard. Dette kan gjøres med $ mkvmerge -o med-språk-koder.mkv --language 2:ger --language 3:dut --default-track-flag 3 uten-språk-koder.mkv --language 0:eng engelsk.srt --default-track-flag 0 --language 0:fre fransk.srt Hvis du ikke ser språket eller standard sporflagg som du har angitt i mkvinfo(1)s utdata, kan du lese avsnittet om standard verdier. Slå av komprimeringen for en inndatafil. $ mkvmerge -o ingen-komprimering.mkv --compression -1:none MinFilm.avi --compression -1:none minfilm.srt
SPOR-IDER
Vanlige spor-IDer Noen av alternativene for mkvmerge(1) trenger en spor-ID for å spesifisere hvilket spor de skal brukes på. Disse spor-IDene skrives ut av leserne når de demultiplekser gjeldende inndatafil, eller hvis mkvmerge(1) kalles med --identify-alternativet. Et eksempel på slik utdata: $ mkvmerge -i v.mkv Fil 'v.mkv': konteiner: Matroska Spor ID 0: video (V_MS/VFW/FOURCC, DIV3) Spor ID 1: lyd (A_MPEG/L3) Ikke forveksle spor-IDene som er tilordnet sporene som er plassert i utdata-MKV-filen, med spor-ID-ene til inndatafilene. Bare spor-ID-ene for inndatafilen brukes til alternativer som trenger disse verdiene. Vær også oppmerksom på at hver inndatafil har sitt eget sett med spor-IDer. Derfor endres ikke spor-ID-ene for filen 'file1.ext' som rapportert av 'mkvmerge --identify' uansett hvor mange andre inndatafiler som er der eller i hvilken posisjon 'file1.ext' brukes. Spor-ID-er tildeles slik: • AVI-filer: videosporet har ID 0. Lydsporene får ID-er i stigende rekkefølge fra 1. • AAC, AC-3, MP3, SRT og WAV-filer: Det ene 'sporet' i den filen får ID 0. • De fleste andre filer: Spor-ID-ene tilordnes i rekkefølge sporene finnes i filen fra 0. Alternativene som bruker spor-ID-ene er de hvis beskrivelse inneholder 'TID'. Følgende alternativer bruker spor-ID-er også: --audio-tracks, --video-tracks, --subtitle-tracks, --button-tracks og --track-tags. Spesial spor-IDer Det er flere IDer som har spesiell betydning og som ikke forekommer i identifikasjonsutdataene. Den spesielle spor-ID-en '-1' er et jokertegn og bruker den gitte bryteren på alle spor som leses fra en inndatafil. Den spesielle spor-IDen '-2' refererer til kapitlene i en kildefil. Foreløpig bruker bare alternativet --sync denne spesielle IDen. Som et alternativ til --sync -2:... kan alternativet --chapter-sync ... brukes.
SPRåKHåNDTERING
Matroska har støtte for to forskjellige typer språkelementer: det gamle, utdaterte "Language"-elementet som inneholder ISO 639-2 alfa 3-koder og de nye "LanguageIETF"-kodene som inneholder IETF BCP 47-språkkoder. Alle mkvmerge(1)s alternativer som godtar et språk, godtar en BCP 47-språkkode. mkvmerge(1) vil utlede verdien for det avviklede "Språk"-elementet fra BCP 47-språkkodene der det er mulig. Når du identifiserer en fil i JSON-modus, blir eksisterende "LanguageIETF"-sporhodeelementer sendt ut som language_ietf-sporegenskapen. Når du skriver en fil vil mkvmerge(1) alltid skrive "LanguageIETF", "ChapLanguageIETF" og "TagLanguageIETF" elementer (de to sistnevnte bare hvis kapitler eller koder er skrevet henholdsvis). I tillegg til disse elementene vil de tilsvarende gamle elementene bli skrevet; de blir satt til ISO 639-2-kodedelen av BCP 47-språktaggen. For eksempel, når sporspråket er satt til sr-Cyrl-RS, vil "LanguageIETF" bli satt til sr-Cyrl-RS og det gamle "Language" -elementet vil bli satt til srp. Når du leser eksisterende filer (Matroska-filer, XML-kapittel- eller taggfiler osv.) som allerede inneholder "... LanguageIETF"-elementer vil de eksisterende elementene bli beholdt. Ellers vil "... LanguageIETF"-elementer bli lagt til basert på kommandolinjealternativer og andre eksisterende avviklede "... Language"-elementer. Opprettelsen av de nye elementene kan deaktiveres helt med kommandolinjealternativet --disable-language-ietf som opererer på alle tre nye elementer. Du kan velge normaliseringsmetoden som brukes på undertagger for utvidet språk med parameteren --normalize-language-ietf.
TEKSTFILER OG TEGNSETTKONVERTERINGER
Note Denne seksjonen gjelder for alle programmer i MKVToolNix, selv om den bare nevner mkvmerge(1). Introduksjon All tekst i en Matroska fil er kodet i UTF-8. Dette betyr at mkvmerge(1) må konvertere hver tekstfil den leser, samt hver tekst gitt på kommandolinjen fra ett tegnsett til UTF-8. Til gjengjeld betyr dette også at mkvmerge(1)s utdata må konverteres tilbake til det tegnsettet fra UTF-8, f.eks. hvis en ikke-engelsk oversettelse brukes med --ui-language eller for tekst som kommer fra en Matroska fil. mkvmerge(1) gjør denne konverteringen automatisk basert på tilstedeværelsen av en byterekkefølgemarkør (kort: BOM) eller systemets gjeldende nasjonale innstilling. Hvordan tegnsettet utledes fra den nasjonale innstillingen, avhenger av operativsystemet som mkvmerge(1) kjøres på. Markører for byterekkefølge (BOM) Tekstfiler som starter med en BOM, er allerede kodet i én representasjon av UTF. mkvmerge(1) støtter følgende fem moduser: UTF-8, UTF-16 Little og Big Endian, UTF-32 Little og Big Endian. Tekstfiler med en BOM konverteres automatisk til UTF-8. Noen av parametrene som ellers ville angi tegnsettet for en slik fil (f.eks. --sub-charset) blir stille ignorert. Linux og Unix-lignende systemer inkludert macOS På Unix-lignende systemer bruker mkvmerge(1) systemkallet setlocale(3) som igjen bruker miljøvariablene LANG, LC_ALL og LC_CYPE. Det resulterende tegnsettet er ofte et av UTF-8- eller ISO-8859-*-familien og brukes til alle tekstfiloperasjoner og for koding av strenger på kommandolinjen og for utdata til konsollen. Windows I Windows bestemmes standard tegnsett som brukes til å konvertere tekstfiler, av et kall til systemkallet GetACP(). Lesing av kommandolinjen gjøres med GetCommandLineW()-funksjonen som allerede returnerer en Unicode-streng. Derfor ignoreres alternativet --command-line-charset i Windows. Utdata til konsollen består av tre scenarier: 1. Hvis utdataene omdirigeres med alternativet --redirect-output, er standard tegnsett UTF-8. Dette kan endres med --output-charset. 2. Hvis utdataene omdirigeres med cmd.exe selv, for eksempel med mkvinfo-fil.mkv > info.txt, er tegnsettet alltid UTF-8 og kan ikke endres. 3. Ellers (når du skriver direkte til konsollen) brukes Windows-funksjonen WriteConsoleW(), og alternativet --output-charset ignoreres. Konsollen skal kunne generere alle Unicode-tegn som den tilsvarende språkstøtten er installert for (det kan for eksempel hende at kinesiske tegn ikke vises i engelske Windows-versjoner). Kommandolinjealternativer Det finnes følgende alternativer som gjør det mulig å angi tegnsettene: • --sub-charset for tekstundertekstfiler og for tekstundertekstspor lagret i conteinerformater der tegnsettet ikke kan bestemmes entydig (f.eks. Ogg-filer), • --chapter-charset for kapitteltekstfiler og for kapitler og filtitler lagret i konteinerformater der tegnsettet ikke kan bestemmes entydig (f.eks. Ogg-filer for kapittelinformasjon, spor- og filtitler osv.; MP4-filer for kapittelinformasjon), • --command-line-charset for alle strenger på kommandolinjen, • --output-charset for alle strengene som er skrevet til konsollen eller til en fil, hvis utdataene er omdirigert med --redirect-output alternativet. På ikke-Windows-systemer er standard for utdatategnsettet systemets gjeldende tegnsett. På Windows standardiseres det til UTF-8 både for omdirigering med --redirect-output og med cmd.exe i seg selv, f.eks. mkvinfo file.mkv > info.txt.
ALTERNATIVFILER
En alternativfil er en fil mkvmerge(1) kan lese flere kommandolinjeargumenter fra. Dette kan brukes for å omgå visse begrensninger i skallet eller operativsystemet når du kjører eksterne programmer som en begrenset kommandolinjelengde. En alternativfil inneholder JSON-formaterte data. Innholdet må være en gyldig JSON-tabell som bare består av JSON-strenger. Filens koding må være UTF-8. Filen skal ikke starte med en byterekkefølgemarkør (BOM), men hvis det finnes en, hoppes den over. Reglene for å unnslippe spesialtegn inne i JSON er de i den offisielle JSON-spesifikasjonen, RFC 7159[4]. Selve alternativfilens navn må angis som et kommandolinjeargument med '@-tegn som prefiks. Kommandolinjen 'mkvmerge -o "minfil.mkv" -A "en film.avi" lyd.ogg' kan konverteres til følgende JSON-alternativfil kalt f.eks. 'alternativer.json': [ "-o", "c:\\Matroska\\min fil.mkv", "--title", "#65", "-A", "en film.avi", "lyd.ogg" ] Den tilsvarende kommandoen vil da være 'mkvmerge @alternativer.json'.
FILKOBLING
Matroska støtter filkobling som ganske enkelt sier at en bestemt fil er forgjengeren eller etterfølgeren til den nåværende filen. For å være presis er det egentlig ikke filene som er koblet, men Matroska segmentene. Siden de fleste filer sannsynligvis bare vil inneholde ett Matroska segment, bruker følgende forklaringer begrepet 'filkobling', selv om 'segmentkobling' ville være mer passende. Hvert segment identifiseres av en unik 128-biters bred segment-UID. Denne UID-en genereres automatisk av mkvmerge(1). Koblingen gjøres primært ved å sette segment-UID-ene (kort: SID) til den forrige/neste filen inn i segmentoverskriftsinformasjonen. mkvinfo(1) skriver ut disse SIDs hvis den finner dem. Hvis en fil er delt inn i flere mindre og kobling brukes, vil ikke tidsstemplene starte på 0 igjen, men fortsette der den siste filen har sluttet. På denne måten beholdes den absolutte tiden selv om de tidligere filene ikke er tilgjengelige (f.eks. ved strømming). Hvis ingen kobling brukes, skal tidsstemplene starte på 0 for hver fil. Som standard bruker mkvmerge(1) ikke filkobling. Hvis du vil det, kan du slå den på med --link-alternativet. Dette alternativet er bare nyttig hvis splitting også er aktivert. Uansett om splitting er aktiv eller ikke, kan brukeren fortelle mkvmerge(1) å koble de produserte filene til bestemte SID-er. Dette oppnås med alternativene --link-to-previous og --link-to-next. Disse alternativene godtar et segment-SID i formatet som mkvinfo(1) sender ut: 16 heksadesimale tall mellom 0x00 og 0xff med prefiks '0x' for hvert, f.eks. '0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93'. Alternativt kan en kortere form brukes: 16 heksadesimale tall mellom 0x00 og 0xff uten '0x' prefikser og uten mellomrommene, f.eks. '41da7366d9cfb21eae78ebb45ecab393'. Hvis splitting brukes, blir den første filen koblet til SID-en gitt med --link-to-previous og den siste filen er knyttet til SID gitt med --link-to-next. Hvis splitting ikke brukes, vil den ene utdatafilen bli koblet til begge de to SIDene.
STANDARD VERDIER
Matroska spesifikasjonen angir at noen elementer har en standardverdi. Vanligvis skrives ikke et element til filen hvis verdien er lik standardverdien for å spare plass. Elementene som brukeren kan gå glipp av i mkvinfo(1)s utdata er språk og standard sporflagg-elementene. Standard verdi for språk er engelsk ('eng'), og standard verdien for standard sporflagg er sann. Derfor, hvis du brukte --language 0:eng for et spor vil det ikke vises i mkvinfo(1)s utdata.
VEDLEGG
Kanskje du også vil beholde noen bilder sammen med Matroska -filen, eller du bruker SSA-undertekster og trenger en spesiell TrueType-skrift som er veldig sjelden. I disse tilfellene kan du legge disse filene ved Matroska-filen. De vil ikke bare bli tilføyd filen, men innebygd i den. En avspiller kan deretter vise disse filene ('bilder'-tilfellet) eller bruke dem til å gjengi undertekstene ('TrueType skrifttyper'-tilfellet). Her er et eksempel på hvordan du legger ved et bilde og en TrueType-skrift til utdatafilen: $ mkvmerge -o utdata.mkv -A video.avi lyd.ogg \ --attachment-description "Jeg og bandet bak scenen i en liten sammenkomst" \ --attachment-mime-type image/jpeg \ --attach-file meg_og_bandet.jpg \ --attachment-description "Den virkelige sjeldne og utrolig pene skrifttypen" \ --attachment-mime-type application/octet-stream \ --attach-file skikkelig_kul_font.ttf Hvis en Matroska som inneholder vedleggsfil brukes som en inndatafil, vil mkvmerge(1) kopiere vedleggene til den nye filen. Valget av hvilke vedlegg som kopieres og hvilke som ikke kopieres, kan endres med alternativene --attachments og --no-attachments.
KAPITLER
Matroska kapittel systemet er kraftigere enn det gamle kjente systemet som brukes av OGM- filer. De fullstendige spesifikasjonene finner du på Matroskas nettside[1]. mkvmerge(1) støtter to typer kapittelfiler som inndata. Det første formatet, kalt 'enkelt kapittelformat', er det samme formatet som OGM-verktøyene forventer. Det andre formatet er et XML basert kapittelformat som støtter alle Matroskas kapittelfunksjonalitet. Bortsett fra dedikerte kapittelfiler kan mkvmerge(1) også lese kapitler fra andre filformater (e.g. MP4, Ogg, Blu-rays eller DVDer). Enkelt kapittelformat Dette formatet består av linjepar som starter med henholdsvis 'CHAPTERxx=' og 'CHAPTERxxNAME='. Den første inneholder starttidsstempelet mens den andre inneholder tittelen. Her er et eksempel: CHAPTER01=00:00:00.000 CHAPTER01NAME=Intro CHAPTER02=00:02:30.000 CHAPTER02NAME=Baby forbereder seg på å rocke CHAPTER03=00:02:42.300 CHAPTER03NAME=Baby rocker huset mkvmerge(1) vil forvandle hvert par eller linjer til en Matroska ChapterAtom. Det angir ikke noe ChapterTrackNumber, noe som betyr at alle kapitler gjelder for alle spor i filen. Siden dette er en tekstfil, kan det hende at tegnsettkonvertering må gjøres. Se avsnittet om tekstfiler og tegnsett for en forklaring på hvordan mkvmerge(1) konverterer mellom tegnsett. Det XML baserte kapittelformatet Det XML baserte kapittelformatet ser slik ut som dette eksemplet: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE Chapters SYSTEM "matroskachapters.dtd"> <Chapters> <EditionEntry> <ChapterAtom> <ChapterTimeStart>00:00:30.000</ChapterTimeStart> <ChapterTimeEnd>00:01:20.000</ChapterTimeEnd> <ChapterDisplay> <ChapterString>A short chapter</ChapterString> <ChapterLanguage>eng</ChapterLanguage> </ChapterDisplay> <ChapterAtom> <ChapterTimeStart>00:00:46.000</ChapterTimeStart> <ChapterTimeEnd>00:01:10.000</ChapterTimeEnd> <ChapterDisplay> <ChapterString>A part of that short chapter</ChapterString> <ChapterLanguage>eng</ChapterLanguage> </ChapterDisplay> </ChapterAtom> </ChapterAtom> </EditionEntry> </Chapters> Med dette formatet er tre ting mulig som ikke er mulig med det enkle kapittelformatet: 1. Tidsstempelet for slutten av kapittelet kan settes, 2. kapitler kan nestes, 3. språket og landet kan settes mkvtoolnix-distribusjonen inneholder noen eksempelfiler i doc-underkatalog som kan brukes som grunnlag. Nedenfor vises XML-taggene som støttes, datatypene deres og, der det er aktuelt, det gyldige området for verdiene: Chapters (master) EditionEntry (master) EditionUID (unsigned integer, valid range: 1 <= value) EditionFlagHidden (unsigned integer, valid range: 0 <= value <= 1) EditionFlagDefault (unsigned integer, valid range: 0 <= value <= 1) EditionFlagOrdered (unsigned integer, valid range: 0 <= value <= 1) ChapterAtom (master) ChapterAtom (master) ChapterUID (unsigned integer, valid range: 1 <= value) ChapterTimeStart (unsigned integer) ChapterTimeEnd (unsigned integer) ChapterFlagHidden (unsigned integer, valid range: 0 <= value <= 1) ChapterFlagEnabled (unsigned integer, valid range: 0 <= value <= 1) ChapterSegmentUID (binary, valid range: 1 <= length in bytes) ChapterSegmentEditionUID (unsigned integer, valid range: 1 <= value) ChapterPhysicalEquiv (unsigned integer) ChapterTrack (master) ChapterTrackNumber (unsigned integer, valid range: 1 <= value) ChapterDisplay (master) ChapterString (UTF-8 string) ChapterLanguage (UTF-8 string) ChapterCountry (UTF-8 string) ChapterProcess (master) ChapterProcessCodecID (unsigned integer) ChapterProcessPrivate (binary) ChapterProcessCommand (master) ChapterProcessTime (unsigned integer) ChapterProcessData (binary) Lese kapitler fra Blu-rays mkvmerge(1) kan lese kapitler fra ukrypterte Blu-rays. For det kan du bruke banen til en av MPLS-spillelistene med parameteren --chapters. Eksempel: --chapters /srv/blurays/BigBuckBunny/BDMV/PLAYLIST/00001.mpls Lese kapitler fra DVD-er Når MKVToolNix er kompilert med libdvdread biblioteket, kan mkvmerge(1) lese kapitler fra DVD-er. For det kan du bruke banen til en av mappene eller filene på DVD-en med parameteren --chapters. Siden DVD-er kan inneholde mer enn én tittel og hver tittel har sitt eget sett med kapitler, kan du legge til et kolon og ønsket tittelnummer på slutten av filnavnargumentet. Tittelnummeret er som standard 1. Eksempel: --chapters /srv/dvds/BigBuckBunny/VIDEO_TS:2 Generelle merknader Når du splitter filer vil mkvmerge(1) også justere kapitlene riktig. Dette betyr at hver fil bare inneholder kapitteloppføringene som gjelder for den, og at tidsstemplene vil bli forskjøvet for å samsvare med de nye tidsstemplene for hver utdatafil. mkvmerge(1) er i stand til å kopiere kapitler fra Matroska kildefiler med mindre dette er eksplisitt deaktivert med --no-chapters-alternativet. Kapitlene fra alle kilder (Matroska filer, Ogg-filer, MP4-filer, kapitteltekstfiler) blir vanligvis ikke slått sammen, men ender opp i separate ChapterEditions. Bare hvis kapitler leses fra flere Matroska eller XML filer som deler samme utgave UIDer, vil kapitler bli slått sammen til en enkelt ChapterEdition. Hvis en slik sammenslåing også er ønskelig i andre situasjoner, må brukeren trekke ut kapitlene fra alle kilder med mkvextract(1) først slå sammen XML filene manuelt og multiplekse dem etterpå.
TAGGER
Introduksjon Matroskas taggsystem ligner på andre konteinere: et sett med KEY = VALUE-par. Men i Matroska kan disse taggene også nestes, og både KEY og VALUE er egne elementer. Eksempelfilen example-tags-2.xml viser hvordan du bruker dette systemet. Omfanget til taggene Matroska tagger gjelder ikke automatisk for hele filen. De kan, men de kan også gjelde for forskjellige deler av filen: til ett eller flere spor, til ett eller flere kapitler, eller til og med til en kombinasjon av begge. Matroska spesifikasjonen[5] gir flere detaljer om dette faktum. Et viktig faktum er at tagger er knyttet til spor eller kapitler med Targets Matroska tagg-elementet, og at UID-ene som brukes til denne koblingen ikke er spor-ID-ene mkvmerge(1) bruker overalt. I stedet er tallene som brukes UID-ene som mkvmerge(1) beregner automatisk (hvis sporet er hentet fra et annet filformat enn Matroska) eller som kopieres fra kildefilen hvis sporets kildefil er en Matroska fil. Derfor er det vanskelig å vite hvilke UID-er som skal brukes i taggfilen før filen overleveres til mkvmerge(1). mkvmerge(1) kjenner to alternativer som du kan legge til tagger til Matroska filer: --global-tags og --tags alternativene. Forskjellen er at det tidligere alternativet, --global-tags, vil gjøre taggene anvendelig for hele filen ved å fjerne noen av disse Targets-elementene nevnt ovenfor. Det siste alternativet, --tags, setter automatisk inn UID-en som mkvmerge(1) genererer for taggen som er angitt med TID-delen av --tags-alternativet. Eksempel La oss si at du vil legge til tagger i et videospor som leses fra en AVI. mkvmerge --identify fil.avi forteller deg at videosporets ID (ikke bland denne ID-en med UID!) er 0. Så du oppretter din tagg-fil, utelater alle Targets-elementer og kaller mkvmerge(1): $ mkvmerge -o fil.mkv --tags 0:tagger.xml fil.avi Taggfilformat mkvmerge(1) støtter et XML basert taggfilformat. Formatet er veldig nært modellert etter Matroska spesifikasjonen[5]. Både binær- og kildedistribusjonene til MKVToolNix kommer med en eksempelfil kalt example-tags-2.xml som ganske enkelt viser alle kjente tagger og som kan brukes som grunnlag for virkelige taggfiler. Det grunnleggende er: • Det ytterste elementet må være <Tags>. • Én logisk tagg finnes i ett par <Tag> XML-tagger. • Mellomrom rett før og etter tagg-innhold ignoreres. Datatyper Det nye Matroska-taggingssystemet kjenner bare to datatyper, en UTF-8-streng og en binær type. Den første brukes for taggens navn og <String>-elementet mens den binære typen brukes for <Binary>-elementet. Siden binære data i seg selv ikke ville passe inn i en XML-fil støtter mkvmerge(1) to andre metoder for lagring av binære data. Hvis innholdet i en XML-tagg starter med '@', behandles følgende tekst som et filnavn. Den tilsvarende filens innhold kopieres til Matroska elementet. Ellers forventes dataene å være Base64-kodet. Dette er en koding som forvandler binære data til et begrenset sett med ASCII-tegn og brukes for eksempel i e-postprogrammer. mkvextract(1) vil sende ut Base64-kodede data for binære elementer. Det utdaterte taggingssystemet kjenner noen flere datatyper som finnes i de offisielle Matroska tagg-spesifikasjonene. Da mkvmerge(1) ikke støtter dette systemet lenger, er disse typene ikke beskrevet her. Kjente tagger for XML-filformatet Nedenfor vises XML-taggene som støttes, datatypene deres og, der det er aktuelt, det gyldige området for verdiene: Tags (master) Tag (master) Targets (master) TargetTypeValue (unsigned integer) TargetType (UTF-8 string) TrackUID (unsigned integer) EditionUID (unsigned integer) ChapterUID (unsigned integer) AttachmentUID (unsigned integer) Simple (master) Simple (master) Name (UTF-8 string) TagLanguage (UTF-8 string) DefaultLanguage (unsigned integer) String (UTF-8 string) Binary (binary)
SEGMENTINFORMASJON
Med en XML-fil med segmentinfo er det mulig å angi bestemte verdier i datahodefeltet "segment information" i en Matroska-fil. Alle disse verdiene kan ikke angis via andre kommandolinjealternativer. Andre "segmentinformasjon"-datahodefelt kan angis via kommandolinjealternativer, men ikke via XML-filen. Dette omfatter f.eks. --title og --timestamp-scale-alternativene. Det finnes andre elementer som verken kan angis via kommandolinjealternativer eller via XML-filene. Disse inkluderer følgende elementer: DateUTC (også kjent som "muxing date"), MuxingApp, WritingApp og Duration. De er alltid satt av mkvmerge(1) seg selv. Nedenfor vises XML-taggene som støttes, datatypene deres og, der det er aktuelt, det gyldige området for verdiene: Info (master) SegmentUID (binary, valid range: length in bytes == 16) SegmentFilename (UTF-8 string) PreviousSegmentUID (binary, valid range: length in bytes == 16) PreviousSegmentFilename (UTF-8 string) NextSegmentUID (binary, valid range: length in bytes == 16) NextSegmentFilename (UTF-8 string) SegmentFamily (binary, valid range: length in bytes == 16) ChapterTranslate (master) ChapterTranslateEditionUID (unsigned integer) ChapterTranslateCodec (unsigned integer) ChapterTranslateID (binary)
MATROSKA FILOPPSETT
Matroska filoppsettet er ganske fleksibelt. mkvmerge(1) vil gjengi en fil på en forhåndsdefinert måte. Den resulterende filen ser slik ut: [EBML-dataholde] [segment {metasøk #1} [segment informasjon] [sporinformasjon] {vedlegg} {kapitler} [klynge 1] {klynge 2} ... {klynge n} {signaler} {metasøk #2} {tagger}] Elementene i krøllete parenteser er valgfrie og avhenger av innholdet og alternativene som brukes. Et par notater: • metasøk #1 inkluderer bare et lite antall nivå 1-elementer, og bare hvis de faktisk eksisterer: vedlegg, kapitler, signaler, tagger, metasøk #2. Eldre versjoner av mkvmerge(1) brukes til å sette klyngene inn i dette metasøk-elementet også. Derfor var litt upresis gjetting nødvendig for å reservere nok plass. Det mislyktes ofte. Nå er bare klyngene lagret i metasøk #2, og metasøk #1 refererer til metasøkelementet #2. • Vedleggs-, kapittel- og taggelementer er bare til stede hvis de ble lagt til. Kortest mulig Matroska filen vil se slik ut: [EBML-datahode] [segment [segmentinformasjon] [sporinformasjon] [klynge 1]] Dette kan være tilfelle for rene lydfiler.
EKSTERNE TIDSSTEMPELFILER
mkvmerge(1) lar brukeren velge tidsstempler for et bestemt spor selv. Dette kan brukes til å lage filer med video med variabel bildefrekvens eller inkludere hull i lyd. En ramme i dette tilfellet er enheten som mkvmerge(1) oppretter separat per Matroska blokk. For video er dette nøyaktig en ramme, for lyd er dette en pakke med den spesifikke lydtypen. For eksempel for AC-3 vil dette være en pakke som inneholder 1536 sampler. Tidsstempelfiler som brukes når spor tilføyes hverandre, må bare angis for den første delen i en kjede med spor. Hvis du for eksempel føyer til to filer, v1.avi og v2.avi, og vil bruke tidsstempler, må kommandolinjen se omtrent slik ut: $ mkvmerge ... --timestamps 0:mine_tidsstempler.txt v1.avi +v2.avi Det er fire formater som gjenkjennes av mkvmerge(1). Den første linjen inneholder alltid versjonsnummeret. Tomme linjer, linjer som bare inneholder mellomrom og linjer som begynner med '#', ignoreres. Tidsstempel filformat v1 Dette formatet starter med versjonslinjen. Den andre linjen angir standard antall bilder per sekund. Alle følgende linjer inneholder tre tall atskilt med komma: startrammen (0 er den første rammen), sluttrammen og antall rammer i dette området. FPS er et flyttall med prikken '.' som desimaltegn. Områdene kan inneholde hull som standard FPS brukes til. Et eksempel: # timestamp format v1 assume 27.930 800,1000,25 1500,1700,30 Tidsstempel filformat v2 I dette formatet inneholder hver linje et tidsstempel for den tilsvarende rammen. Dette tidsstempelet må angis i millisekunds presisjon. Det kan være et flyttall, men det trenger ikke å være det. Du må gi minst like mange tidsstempellinjer som det er rammer i sporet. Tidsstemplene i denne filen må sorteres. Eksempel på 25 bilder per sekund: # timestamp format v2 0 40 80 Tidsstempel filformat v3 I dette formatet inneholder hver linje en varighet i sekunder etterfulgt av et valgfritt antall bilder per sekund. Begge kan være flyttall. Hvis antall bilder per sekund ikke er til stede, brukes standard. For lyd bør du la kodeken beregne rammetidsstemplene selv. For det bør du bruke 0.0 som antall bilder per sekund. Du kan også opprette gap i strømmen ved å bruke nøkkelordet 'gap' etterfulgt av varigheten av gapet. Eksempel på en lydfil: # timestamp format v3 assume 0.0 25.325 7.530,38.236 gap, 10.050 2.000,38.236 Tidsstempel filformat v4 Dette formatet er identisk med v2-formatet. Den eneste forskjellen er at tidsstemplene ikke trenger å sorteres. Dette formatet skal nesten aldri brukes.
AVSLUTNINGSKODER
mkvmerge(1) avsluttes med en av tre avslutningskoder: • 0 -- Denne avslutningskoden betyr at multipleksingen er fullført. • 1 -- I dette tilfellet har mkvmerge(1) sendt ut minst en advarsel, men multipleksingen fortsatte. En advarsel er prefikset med teksten 'Advarsel:'. Avhengig av problemene som er involvert, kan den resulterende filen være ok eller ikke. Brukeren oppfordres til å sjekke både advarselen og resultatfilen. • 2 -- Denne avslutningskoden brukes etter at det oppstod en feil. mkvmerge(1) avbryter rett etter at feilmeldingen er sendt ut. Feilmeldinger varierer fra feil kommandolinjeargumenter over lese-/skrivefeil til ødelagte filer.
MILJøVARIABLER
mkvmerge(1) bruker standardvariablene som bestemmer systemets lokalitet (for eksempel LANG og LC_*-familien). Ytterligere variabler: MKVMERGE_DEBUG, MKVTOOLNIX_DEBUG og dens korte form MTX_DEBUG Innholdet behandles som om det hadde blitt sendt via --debug-alternativet. MKVMERGE_ENGAGE, MKVTOOLNIX_ENGAGE og dens korte form MTX_ENGAGE Innholdet behandles som om det hadde blitt sendt via --engage-alternativet.
SE OGSå
mkvinfo(1), mkvextract(1), mkvpropedit(1), mkvtoolnix-gui(1)
WWW
Den nyeste versjonen finner du alltid på MKVToolNixs hjemmeside[6].
AUTHOR
Moritz Bunkus <moritz@bunkus.org> Utvikler
NOTES
1. Matroska nettside https://www.matroska.org/ 2. IANAs hjemmeside https://www.iana.org/assignments/media-types/ 3. mkvmerge-identification-output-schema-v20.json https://mkvtoolnix.download/doc/mkvmerge-identification-output-schema-v20.json 4. RFC 7159 https://tools.ietf.org/html/rfc7159 5. Matroska spesifikasjonen https://www.matroska.org/technical/specs/index.html 6. MKVToolNixs hjemmeside https://mkvtoolnix.download/