MKVMERGE(1)

REFERENTIENAAM
mkvmerge - Voegt multimedia stromen in een Matroska(TM) bestand in.

BEKNOPTE INHOUDSBESCHRIJVING

mkvmerge [global options] {-o out} [options1] {file1} [[options2] {file2}] [@optionsfile]

BESCHRIJVING

Dit programma neemt de invoer van verschillende media bestanden en voegt die stromen samen (allemaal of slechts een stukje) naar een Matroska(TM) bestand; zie de Matroska(TM)[1] website.

    Belangrijk

    The order of command line options is important. Please read the section "Option order" if you're new to the program.

Globale opties:

-v, --verbose
    Verhoog 'uitgebreidheid'.

-q, --quiet
    Onderdruk status uitvoer.

-o, --output file-name
    Schrijf naar het bestand file-name. Indien splitsen aan staat, dan wordt dat iets anders verwerkt. Zie uitleg voor de --split optie voor details.

-w, --webm
    Creëer een WebM herkenbaar bestand. mkvmerge zet dit tevens aan wanneer het uitvoerbestandsnaam de extensie "webm" heeft. Deze modus dwingt diverse beperkingen af. De enig toegestane codecs zijn VP8 video en Vorbis audio sporen. Géén van de volgende hoofdstuk markeringen zijn toegstaan. Het DocType kop item is veranderd naar "webm".

--title title
    Stelt de algemene naam in voor het uitvoer bestand, b.v. de film naam.

--default-language language-code
    Stelt de standaard land code in voor alle sporen tenzij die wordt overschreven met --language optie. De standaard code is 'onb' voor 'onbekend'.

Hanteren van segment info: (globale opties)

--segmentinfo filename.xml
    Leest segment informatie in van een XML bestand. Dit bestand kan de segment familie bevatten UID, segment UID, vorige en volgend segment UID elementen. een voorbeeld bestand en een DTD zijn ingesloten in de MKVToolNix distributie.

--segment-uid SID1,SID2,...
    Stelt het te gebruiken segment UID's in. Dit is een komma gesepareerde lijst van 128bit segment UID's in het gebruikelijke UID formaat: hex nummers met of zonder het "0x" voorzetsel, met of zonder spaties, exact 32 cijfers.

    Elk gecreëerd bestand bevat één segment, en elk segment heeft één UID. Als er meer segment UID's zijn opgegeven dan er zijn gecreëerd, dan zullen de extra UID's worden genegeerd. Zijn er minder UID's opgegeven dan er segmenten zijn gecreëerd, dan worden er willekeurig UID's voor hen aangemaakt.

Hanteren hoofstuk en markeeringen: (globale opties)

--chapter-language language-code
    Stelt de ISO639-2 land code waarde in welke geschreven wordt voor elk hoofdstuk ingang. Standaard naar 'eng'. Zie de sectie over hoofdstukken hieronder voor details.

    Deze optie kan gebruikt worden, voor simpele hoofdstukken en voor bronbestanden welke hoofdstukken bevatten maar geen informatie over hoofdstuk talen, b.v. MP4 and OGM bestanden.

--chapter-charset character-set
    Stelt de karakter set in, die gebruikt wordt voor de UTF-8 conversie voor simpele hoofdstuk bestanden. Zie de sectie over tekst bestanden en karakter sets voor een uitleg hoe mkvmerge(1) converteert tussen de 'verschillende' karakter sets.

    Deze schakelaar is ook van toepassing op hoofdstukken die zijn gekopieerd van een bepaalde inhoudstypen, b.v. Ogg/OGM en MP4 bestanden. Zie de sectie over hoofdstukken hieronder voor details.

--cue-chapter-name-format format
    mkvmerge(1) ondersteunt lezen van CUE volg document(en) (cue) voor audio bestanden als invoer voor hoofdstukken. CUE volg document(en) (cue) bevatten gewoonlijk informatie over de ARTIEST en TITEL voor elke index ingang. mkvmerge(1) gebruikt deze twee reeksen om de hoofdstuknaam te construeren. Met deze optie kan het formaat dat voor deze naam wordt gebruikt worden geplaatst.

    Is deze optie niet opgegeven, dan zal mkvmerge(1) het standaard format gebruiken '%p - %t' (de artiest (performer), gevolgd door een spatie, een streep, wederom een spatie en de titel).

    Is het format opgegeven dan zal alles behalve de volgende meta karakters gekopieerd worden zoals ze zijn, en de meta karakters worden vervangen zoals dit:

        • %p is vervangen door de huidige ingangen PERFORMER (artiest) reeks,

        • %t is vervangen door de huidige ingangen TITLE (titel) reeks,

        • %n wordt vervangen op huidig spoor nummer en

        • %N wordt vervangen op huidig spoor nummer en op/aangevuld met een beginnend/leidende nul als het is < 10 (kleiner dan).

--chapters file-name
    Leest hoofdstuk informatie in van een bestand file-name. Zie sectie over hoofdstukken kijk hieronder voor details.

--global-tags file-name
    Leest hoofdstuk informatie in van een bestand file-name. Zie sectie over hoofdstukken kijk hieronder voor details.

Algemene uitvoer controle (geavanceerde globale opties):

--track-order FID1:TID1,FID2:TID2,...
    Deze optie verandert de volgorde waarin de sporen voor een invoer bestand worden gereëerd. Het argument is een komma gescheiden lijst van gepaarde ID's. Elk paar bevat eerst het bestand ID (FID1) wat simpelweg een nummer van het bestand is op de commandoregel beginnend bij 0. Het tweede is een spoor ID (TID1) van dat bestand. Als sommige spoor id's worden weggelaten, dan zullen die sporen worden gecreëerd na diegene die met deze optie zijn gecreëerd.

--cluster-length spec
    Limiteert het aantal data blokken of de duur van de data in elke cluster. De spec parameter kan één van beide zijn een nummer n zonder een eenheid of een nummer d vastgezet met 'ms' (miliseconden).

    Als er geen eenheid is gebruikt dan zal mkvmerge(1) hoogstends zetten n data blokken in elke cluster. Het maximum aantal blokken is 65535.

    Als het nummer d is vastgezet met 'ms' dan zal mkvmerge(1) hoogstends zetten d milliseconden aan data in elke cluster. Het minimum voor d is '100ms', en het maximum is '32000ms'.

    mkvmerge(1) plaatst standaard op zijn hoogst 65535 data blokken en 5000ms aan data in een cluster.

    Programma's die een bepaald beeld proberen te zoeken, kunnen alleen direct naar een cluster zoeken en moeten daarna de gehele cluster lezen. Daarom kan het de oorzaak zijn, dat het maken van grote clusters kan leiden tot onnauwkeurigheid of traag zoeken.

--no-cues
    Vertelt mkvmerge(1) geen volg document(en) (cue) te creëren en te schrijven wat vergelijkbaar is met een index in een AVI. Matroska(TM) bestanden kunnen worden afgespeeld zonder volg document(en) (cue), maar dat kan leiden tot onnauwkeurigheid of traag zoeken. Gebruik dit alleen als je echt wanhopig bent qua ruimte of voor test doeleinden. Zie ook de optie volg document(en) (cue) welke opgegeven kan worden voor elk invoer bestand.

--clusters-in-meta-seek
    Vertelt mkvmerge(1) een meta element te creëren aan het eind van het bestand dat alle clusters bevat. Zie ook de sectie over de Matroska(TM) bestand layout.

--disable-lacing
    Zet het aaneenkoppelen uit voor alle sporen. Dit zal de bestandsgrootte verhogen, speciaal wanneer er veel audio sporen zijn. Deze optie is niet bedoeld voor dagelijks gebruik.

--enable-durations
    Duur schrijven voor alle blokken. Dit zal de bestandsgrootte verhogen en geeft geen extra waarde aan afspelers van dit moment.

--timecode-scale factor
    Forceert de tijdcode schaal factor naar factor. Geldige bereik waardes zijn 1000..10000000 of de speciale waarde -1.

    Normaal zal mkvmerge(1) een waarde gebruiken van 1000000 wat inhoudt, dat de tijd codes en duren een precisie hebben van 1ms. Voor bestanden die geen video maar minstends één audio spoor bevatten, zal mkvmerge(1) automatisch de tijd code schaal factor kiezen, zodat alle tijd codes en duren een precisie hebben van één audio voorbeeld. Dit veroorzaakt een grotere overhead maar staat een betere zoek en extractie precisie toe.

    Als de speciale waarde -1 is gebruikt, dan zal mkvmerge(1) een voorbeeld precisie gebruiken zelfs als er een video spoor aanwezig is.

Bestand splitsen, linken en toevoegen (meer globale opties):

--split specification
    Splits het uitvoer bestand na een opgegeven grootte of tijd. Opmerking, sporen kunnen alléén direct voor een sleutel beeld gesplitst worden. Vanwege het bufferen zal mkvmerge(1) als een splitspunt wordt bereikt, direct voor het volgende sleutel beeld gaan splitsen. Daarom kunnen de splitspunten enigzins afwijken van wat de gebruiker op gaf.

    Op het moment ondersteunt mkvmerge(1) drie verschillende modes.

        1. Splitsen op grootte.

        Ingave: --split [size:]d[k|m|g]

        Voorbeelden: --split size:700m of --split 150000000

        De parameter d kan eindigen met 'k', 'm' of 'g' ter indicatie dat de grootte respectievelijk wordt aangegeven in KB, MB of GB. Anders wordt een grootte in Bytes verondersteld. Nadat een uitvoer bestand zijn limiet heeft bereikt wordt er een andere aangemaakt.

        De 'size:' mag vanwege de verenigbaarheid (compatibiliteit) weggelaten worden.

        2. Splitsen na een duur van.

        Ingave: --split [duration:]HH:MM:SS.nnnnnnnnn|ds

        Voorbeeld: --split duration:00:60:00.000 of --split 3600s

        De parameter moet één van beiden de vormen hebben HH:MM:SS.nnnnnnnnn voor het specificeren van de duur tot in de precisie van een nanoseconde of een nummer d gevolgd door een letter 's' voor de duur in seconden. HH is het aantal uren, MM het aantal minuten, SS het aantal seconden en nnnnnnnnn het aantal nanoseconden. Zowel de uren alsmede de nanoseconden mogen weggelaten worden. Er mogen tot aan negen nummers opgegeven worden na de decimale punt. Nadat de duur van van de huidige inhoud deze limiet bereikt heeft, wordt er een nieuw uitvoer bestand gestart.

        De 'duration:' mag vanwege de verenigbaarheid (compatibiliteit) weggelaten worden.

        3. Splitsen na een specifieke tijdcode.

        Ingave: --split timecodes:A[,B[,C...]]

        Voorbeeld: --split timecodes:00:45:00.000,01:20:00.250,6300s

        De parameters A, B, C etc. moeten allen dezelfde indeling hebben als de duur (zie hierboven). De lijst van tijd codes is komma gesepareerd. Nadat de uitvoer stroom zijn huidige splits tijdcode limiet heeft bereikt wordt er een nieuw bestand gereëerd. Daarna wordt het volgende splits punt gebruikt van de gebruikte lijst.

        Het 'timecodes:' voorvoegsel mag niet wegelaten worden.

    Voor deze splits mode wordt het uitvoer bestand anders behandeld dan onder de normale werking. Het mag bevatten een printf zoals uitgedrukt '%d' inclusief een optioneel veld, b.v. '%02d'. Indien dit het geval is, zal het huidige bestandsaantal geschikt worden geformatteerd en op dat punt in het bestandsnaam worden ingevoegd. Is er geen dergelijk patroon dan wordt een patroon van '-%03d' aangenomen direct voor de bestand extensie: '-o output.mkv' zou resulteren in 'output-001.mkv' en zo verder. Is er geen extensie dan zal '-%03d' worden toegevoegd aan de naam.

--link
    Bestanden linken aan een ander tijdens het splitsen van het uitvoer bestand. Zie de sectie op bestand linken/verbinden onderstaand voor details.

--link-to-previous segment-UID
    Verbindt het laatste uitvoerbestand met het segment UID ingegeven door segment-UID parameter. Zie de sectie op bestand linken/verbinden onderstaand voor details.

--link-to-next segment-UID
    Verbindt het laatste uitvoerbestand met het segment UID ingegeven door segment-UID parameter. Zie de sectie op bestand linken/verbinden onderstaand voor details.

--append-mode mode
    Calculeert hoe tijd codes worden berekend wanneer die worden toevoegd aan een bestand. De parameter mode kan twee waardes bevatten: 'file' welke ook standaard is en 'track'.

    Wanneer mkvmerge een spoor toevoegt (genoemd 'track2_1' vanaf nu) van een tweede bestand (genoemd 'file2') naar een spoor (genoemd 'track1_1') van het eerste bestand (genoemd 'file1') dan moet het alle tijd codes compenseren voor 'track2_1' met een bepaalde hoeveelheid. Voor 'file' mode is deze hoeveelheid de hoogste tegengekomen tijd code in 'file1'. zelfs wanneer die tijd code van een ander spoor is dan 'track1_1'. In spoor mode de is compensatie de hoogste tijd code van 'track1_1'.

    Helaas kan mkvmerge niet detecteren welke mode betrouwbaar is. Daarom zet het de standaard waarde naar 'file' mode. 'file' mode werkt gewoonlijk beter voor bestanden indien die onafhankelijk van elkaar werden gemaakt; b.v. het toevoegen van AVI of MP4 bestanden. 'track' mode zou beter werken voor bronnen die hoofdzakelijk een deel van één groot bestand zijn, b.v. voor VOB en EVO bestanden.

    Hoofdstuk sporen worden altijd behandeld alsof 'file' mode actief is en zelfs wanneer 'track' mode actueel is.

--append-to SFID1:STID1:DFID1:DTID1[,...]
    Deze optie controleert welk spoor aan welk ander spoor moet worden toegevoegd (bestand wordt dubbel zo groot). Elke specificatie bevat vier ID's: een bestand ID, een spoor ID, een tweede bestand ID en een tweede spoor ID. Het eerste paar, "source file ID" en "source track ID", identificeert het spoor dat moet worden toegevoegd. Het tweede paar, "destination file ID" en "destination track ID", identificeert het spoor waaraan de eerste is toegevoegd.

    Als deze optie weggelaten wordt dan wordt een standaard indeling gebruikt. Deze standaard indeling voegt elk spoor van het huidige bestand toe aan een spoor van het vorige bestand met hetzelfde spoor ID. Dit staat het makkelijk toevoegen toe indien een film gesplitst is in twee delen en beide bestanden dezelfde aantal sporen en spoor ID's hebben, met het commando mkvmerge -o output.mkv part1.mkv +part2.mkv.

+
    Een enkele '+' veroorzaakt dat het volgende bestand wordt bijgevoegd (bestand wordt dubbel zo groot) i.p.v toegevoegd. De '+' kan worden ingegeven voor elk volgende bestandsnaam. Daarom zijn de volgende twee commando's gelijkwaardig:

        $ mkvmerge -o full.mkv file1.mkv + file2.mkv
        $ mkvmerge -o full.mkv file1.mkv +file2.mkv

=
    Normaal kijkt mkvmerge naar bestanden in dezelfde map welke dezelfde basis naam bevatten maar alleen verschillen van volgordenummer (b.v. 'VTS_01_1.VOB', 'VTS_01_2.VOB', 'VTS_01_3.VOB' etc). Deze optie, een enkele '=' maakt dat mkvmerge niet kijkt naar die extra bestanden.

    De '=' kan ook worden ingegeven voor elk volgende bestandsnaam. Daarom zijn de volgende twee commando's gelijkwaardig:

        $ mkvmerge -o full.mkv = file1.mkv
        $ mkvmerge -o full.mkv =file1.mkv

Bijlage ondersteuning (meer globale opties):

--attachment-description description
    Normale tekst beschrijving van de volgende bijlage. Is van toepassing op het volgende --attach-file of --attach-file-once optie.

--attachment-mime-type MIME type
    MIME type van de volgende bijlage. Is van toepassing op de volgende --attach-file of --attach-file-once optie. Een lijst van officiële herkende MIME typen kan gevonden worden b.v. op de IANA[2] thuisbasis. Het MIME type is verplicht voor een bijlage.

--attachment-name name
    Stelt de naam in voor deze bijlage welke wordt opgeslagen in het uitvoer bestand. Als deze optie niet is opgegeven dan zal de naam worden afgeleid van de naam van de bijlage zoals gegeven met de --attach-file of de --attach-file-once optie.

--attach-file file-name, --attach-file-once file-name
    Creëert een bestandsbijlage binnenin het Matroska(TM) bestand. Het MIME type moet ingesteld zijn voordat deze optie gebruikt kan worden. Het verschil tussen deze twee vormen is, dat tijdens het splitsen van de bestanden vastgemaakt met --attach-file aan alle uitvoerbestanden zijn vastgemaakt terwijl degene vastgemaakt met de --attach-file-once alleen zijn vastgemaakt aan het eerste bestand. Is splitsen niet gebruikt dan doen beide hetzelfde.

    mkvextract(1) kan worden gebruikt om bestanden uit een Matroska(TM) bestand te halen.

Opties welke gebruikt kunnen worden voor elk invoer bestand:

-a, --audio-tracks [!]n,m,...
    Kopieer de audio sporen n, m etc. De nummers zijn track ID's welke verkregen kunnen worden met de --identify schakelaar. Zij zijn simpelweg niet de spoor nummers (zie sectie spoor ID's). Standaard: Kopieer alle audio sporen.

    If the IDs are prefixed with ! then the meaning is reversed: copy everything but the IDs listed after the !.

-d, --video-tracks [!]n,m,...
    Kopieer de video sporen n, m etc. De nummers zijn track ID's welke kunnen worden verkregen met de --identify schakelaar. Zij zijn simpelweg niet de spoor nummers (sie sectie spoor ID's). Standaard: Kopieer alle video sporen..

    If the IDs are prefixed with ! then the meaning is reversed: copy everything but the IDs listed after the !.

-s, --subtitle-tracks [!]n,m,...
    Kopieer de ondertitel sporen n, m etc. De nummers zijn track ID's welke kunnen worden verkregen met de --identify schakelaar. Zij zijn simpelweg niet de spoor nummers (zie sectie spoor ID's). Standaard: Kopieer alle ondertitel sporen.

    If the IDs are prefixed with ! then the meaning is reversed: copy everything but the IDs listed after the !.

-b, --button-tracks [!]n,m,...
    Kopieer de knop sporenn, m etc. De nummers zijn track ID's welke kunnen worden verkregen met de --identify schakelaar. Zij zijn simpelweg niet de spoor nummerss (zie sectie spoor ID's). Standaard: Kopieer alle knop sporen.

    If the IDs are prefixed with ! then the meaning is reversed: copy everything but the IDs listed after the !.

--track-tags [!]n,m,...
    Kopieer de markeringen voor sporen n, m etc. De nummers zijn track ID's welke kunnen worden verkregen met de --identify schakelaar (zie sectie spoor ID's). Zij zijn simpelweg niet de spoor nummers. Standaard: Kopieer alle markering sporen.

    If the IDs are prefixed with ! then the meaning is reversed: copy everything but the IDs listed after the !.

-m, --attachments [!]n[:all|first],m[:all|first],...
    Kopieer de bijlagen met de ID's n, m etc, naar allen of alleen het eerste uitvoer bestand. Elk ID kan opgevolgd worden door ':all' (welke standaard is, als geen van twee is opgegeven) of ':first'. Als het splitsen actief is, dan zullen die bijlagen waarvan de ID's zijn gespecificeerd met ':all' worden gekopieerd naar alle resulterende uitvoer bestanden, terwijl de anderen alleen gekopieerd worden naar het eerste uitvoerbestand. Als splitsen niet actief is, dan hebben beide varianten hetzelfde effect .

    Standaard is, kopieer alle bijlagen naar alle uitvoer bestanden.

    If the IDs are prefixed with ! then the meaning is reversed: copy everything but the IDs listed after the !.

-A, --no-audio
    Kopieer geen enkel audio spoor van dit bestand.

-D, --no-video
    Kopieer geen enkel video spoor van dit bestand.

-S, --no-subtitles
    Kopieer geen enkel ondertitel spoor van dit bestand.

-B, --no-buttons
    Kopieer geen enkel knop spoor van dit bestand.

-T, --no-track-tags
    Kopieer geen enkel spoor-specifieke markeringen van dit bestand.

--no-chapters
    Kopieer geen hoofdstukken van dit bestand.

-M, --no-attachments
    Kopieer geen bijlagen van dit bestand.

--no-global-tags
    Kopieer geen globale markeringen van dit bestand.

--chapter-charset character-set
    Stelt de karakter set in, die gebruikt wordt voor de conversie naar UTF-8 voor de hoofdstuk informatie die zich bevindt in het bronbestand. Zie de sectie overtekst bestanden en karakter set's voor een uitleg hoe mkvmerge(1) converteert tussen de karakter set's.

--chapter-language language-code
    Zet de ISO639-2 taal code, welke wordt geschreven voor elk hoofdstuk ingang. Deze optie kan gebruikt worden, voor bronbestanden welke hoofdstuk informatie bevatten maar géén informatie over de talen, b.v. for MP4 en OGM bestanden.

-y, --sync TID:d[,o[/p]]
    Stelt de tijd code's bij van het spoor met het id TID met d ms. De spoor ID's zijn hetzelfde als degene gegeven met --identify (zie sectie spoor ID's).

    o/p: Stel de tijd code's bij met o/p om lineaire driften te corrigeren. p standaard naar 1 indien weggelaten. Beide o en p kunnen een veranderbaar nummer zijn.

    Standaard: geen handmatige sync correctie (wat hetzelfde is als d = 0 en o/p = 1.0).

    Deze optie kan meerdere keren worden gebruikt voor een invoer bestand, is van toepassing op verschillende sporen door het spoor ID elke keer te selecteren.

--cues TID:none|iframes|all
    Controle voor welke sporen cue (index) ingangen worden gereëerd voor een opgegeven spoor (zie sectie Spoor ID's). 'none' remt het creëren van volg document(en) (cue) af. Voor 'iframes' alléén blokken zonder voor of achteruit referenties ( = I beelden in video sporen) worden ingevoerd in het 'volg document(en) (cue)'. 'all' zorgt ervoor dat mkvmerge(1) aanmaakt, volg document(en) (cue) voor alle blokken welke het bestand erg groot maakt.

    Standaard is 'iframes' voor video sporen en 'none' voor alle anderen. Zie ook opties --no-cues welke verwezenlijken het creëren van volg document(en) (cue) ongeacht de --cues gebruikte opties.

    Deze optie kan meerdere keren worden gebruikt voor een invoer bestand, is van toepassing op verschillende sporen door het spoor ID elke keer te selecteren.

--default-track TID[:bool]
    Zet de 'standaard' markering voor een gegeven spoor (zie sectie spoor ID's) als het optionele argument bool niet aanwezig is. Als de gebruiker niet zelf uitdrukkelijk een spoor selecteert, dan zou de afspeler een spoor prefereren dat zijn 'standaard' markering heeft. Alleen één spoor van elk soort (audio, video, ondertitels, knoppen) kunnen deze 'standaard' markering gezet hebben. Indien een gebruiker geen spoor wenst te hebben met een standaard spoor markering gezet, dan moet hij zetten bool naar 0 voor alle sporen.

    Deze optie kan meerdere keren worden gebruikt voor een invoer bestand, is van toepassing op verschillende sporen door het spoor ID elke keer te selecteren.

--forced-track TID[:bool]
    Stelt de 'geforceerde' markering in voor een gegeven spoor (zie sectie spoor ID's) als het optionele argument bool niet aanwezig is. En afspeler moet alle sporen afspelen waarvan deze markering is gezet 1.

    Deze optie kan meerdere keren worden gebruikt voor een invoer bestand, is van toepassing op verschillende sporen door het spoor ID elke keer te selecteren.

--blockadd TID:level
    Houd alleen de BlockAdditions tot aan niveau level voor het opgegeven spoor. Standaard is alle niveau's. Deze optie heeft alleen effect op sommige codecs zoals WAVPACK4.

--track-name TID:name
    Stelt het spoor naam in van een gegeven spoor (zie sectie spoor ID's) naar naam.

--language TID:language
    Stelt de taal in voor het opgegeven spoor (zie sectie spoor ID's). Beide ISO639-2 taal codes en ISO639-1 land codes zijn toegestaan. De land code wordt automatisch vertaald naar taal code. Alle talen inclusief hun ISO639-2 codes kunnen uitgelijst worden met --list-languages optie.

    Deze optie kan meerdere keren worden gebruikt voor een invoer bestand, is van toepassing op verschillende sporen door het spoor ID elke keer te selecteren.

-t, --tags TID:file-name
    Leest de markeringen in van het spoor met het nummer TID van het bestand file-name. Zie de sectie over markeringen hieronder voor details.

--aac-is-sbr TID[:0|1]
    Vertelt mkvmerge(1) dat het spoor met het ID TID een SBR AAC is (ook bekend als HE-AAC of een AAC+). Deze optie is nodig als a) een bron bestand een AAC bestand is (niet voor een Matroska(TM) bestand) en b) het AAC bestand bevat SBR AAC data. De reden voor deze schakelaar is, dat het normaal technisch niet mogelijk is, automatisch te vertellen dat AAC data van SBR AAC data zonder deze volledig te decoderen van eenAAC beeld. Aangezien er verscheidene octrooi/patent kwesties zijn met AAC decoders zal mkvmerge(1) nooit dit decodeer stadium bevatten. Dus voor SBR AAC bestanden is deze schakelaar een vereiste. Het resulterende bestand zou niet correct afgespeeld kunnen worden of zelfs helemaal niet, wanneer deze schakelaar werd weggelaten.

    Als het bron bestand een Matroska(TM) bestand is, dan zou de CodecID genoeg moeten zijn om deze SBR AAC te detecteren. Hoewel, als de CodecID verkeerd is, dan kan deze schakelaar gebruikt worden om dat te corrigeren.

    Als mkvmerge verkeerd detecteert dat een AAC bestand een SBR is, dan kan je toevoegen ':0' aan het spoor ID.

--timecodes TID:file-name
    Leest de te gebruiken tijd code's in voor een specifiek spoor ID van file-name. Deze krachtige tijd code's heffen de tijd code's die mkvmerge(1) normaal berekend op. Lees de sectie over externe tijd code bestanden.

--default-duration TID:x
    Forceert de standaard duur van een gegeven spoor naar de gegeven waarde. Tevens de spoor tijdcode aanpast zodat die overeenkomt met de standaard duur. Het argument x moet zijn vastgezet met 's', 'ms', 'us', 'ns' of 'fps' om te specificeren de standaard duur in seconden, milliseconden, microseconden, nanoseconden of respectievelijk de ''beelden per seconde' (fps). Het aantal x kan zelf een veranderbaar nummer ziijn of een fractie.

    Als de standaard duur niet is geforceerd, dan zal mkvmerge proberen te achterhalen de standaard spoor duur van de houder en/of de gebruikte codec. Eén geval waarin deze optie in gebruik is, is bij het toevoegen van AVC/h.264 elementaire stromen, omdat deze géén informatie bevatten over de standaard aantal beelden per seconde (fps) of een standaard duur van elk beeld. Voor dergelijke bestanden neemt mkvmerge(1) aan een standaard duur van '25fps' tenzij dit overegeld is.

    Deze optie kan ook gebruikt worden om de FPS (beelden per seconde) te veranderen van video sporen zonder een extern tijdcode bestand te hoeven gebruiken.

--nalu-size-length TID:n
    Forceert de NALU lengte grootte naar n bytes. Deze parameter wordt alleen gebruikt als de AVC/h.264 elementaire stroom inpakker is gebruikt. Indien weggelaten is de standaard waarde 4 bytes, maar er zijn bestanden die beelden of delen bevatten die kleiner zijn dan 65536 bytes. Voor dergelijke bestanden kan je deze parameter gebruiken en de grootte verminderen naar 2.

--compression TID:n
    Selecteert de te gebruiken compressie methode in voor het spoor. Opmerking: de afspeler dient deze methode ook te ondersteunen. Geldige waarden zijn 'none', 'zlib', 'lzo'/'lxo1x', 'bz2'/'bzlib' en 'mpeg4_p2'/'mpeg4p2'. De waarden 'lzo'/'lxo1x' en 'bz2'/'bzlib' zijn alléén beschikbaar als mkvmerge(1) is gecompileerd met de ondersteuning voor de liblzo(TM) respectievelijk bzlib(TM) compressie bibliotheken.

    De compressie methode 'mpeg4_p2'/'mpeg4p2' is een speciale compressie methode genoemd 'header removal' die is alléén beschikbaar voorMPEG4 deel 2 video sporen.

    Standaard voor sommige ondertitels zijn 'zlib' compressie. Deze compressie wordt door bijna alle afspelers ondersteund zoniet allen. Ondersteuning voor andere compressie methoden anders dan 'none' is niet verzekerd.

Opties die alleen op video sporen van toepassing zijn:

-f, --fourcc TID:FourCC
    Forceert de FourCC naar de opgegeven waarde. Werkt alléén voor video sporen in de 'MS verenigbare mode'.

--display-dimensions TID:widthxheight
    Matroska(TM) bestanden bevatten twee waarden die de scherm eigenschappen instelt waarnaar een afspeler met afspelen naar toe zou moeten schalen: scherm breedte en scherm hoogte. Deze waaren worden ingesteld met deze optie, b.v. '1:640x480'.

    Een andere manier om de te gebruiken waarden te specificeren is --aspect-ratio of de --aspect-ratio-factor optie (zie hieronder). Deze opties zijn wederzijds - exclusief.

--aspect-ratio TID:ratio|width/height
    Matroska(TM) bestanden bevatten twee waarden die de scherm eigenschappen instelt waarnaar een afspeler met afspelen naar toe zou moeten schalen: scherm breedte en scherm hoogte. Met deze optie zal mkvmerge(1) automatisch calculeren de scherm breedte en de scherm hoogte gebaseerd, op de orginele beelden/plaatjes breedte en hoogte en de opgegeven verwachte verhouding met deze optie. De verhouding kan één van beiden zijn een veranderbaar nummer verhouding of als een fractie 'breedte/hoogte', b.v. '16/9'.

    Een andere manier om de te gebruiken waarden te specificeren is --aspect-ratio-factor of --display-dimensions opties (zie hieronder en hierboven). Deze opties zijn wederzijds - exclusief.

--aspect-ratio-factor TID:factor|n/d
    Een andere manier om de verwachtte verhouding te specificeren is een factor. De orginele verwachtte verhouding factor wordt eerst vermeningvuldigd met deze factor en daarna gebruikt als doel verhouding.

    Een andere manier om de te gebruiken waarden te specificeren is --aspect-ratio of --display-dimensions opties (zie boven). Deze opties zijn wederzijds - exclusief.

--cropping TID:left,top,right,bottom
    Stelt de video spoor uitsnij paramters in naar een gegeven waarden.

--stereo-mode TID:n|keyword
    Stelt de video mode in voor het video spoor met het spoor ID TID. Deze mode kan zijn een nummer n tussen 0 en 11 of één van de volgende:

    'mono', 'side_by_side_left_first', 'top_bottom_right_first', 'top_bottom_left_first', 'checkerboard_right_first', 'checkerboard_left_first', 'row_interleaved_right_first', 'row_interleaved_left_first', 'column_interleaved_right_first', 'column_interleaved_left_first', 'anaglyph', 'side_by_side_right_first'.

Opties alleen geldig voor tekst ondertitel sporen:

--sub-charset TID:character-set
    Stelt de karakter set conversie in naar UTF-8 voor UTF-8 ondertitels van een opgegeven spoor ID. Indien niet opgegeven, dan worden de huidig verkregen besturingssysteem lokatie gebruikt. Opmerking: een karakter set voor ondertitels is niet nodig wanneer er gelezen wordt vanuit een Matroska(TM) bestand of van Kate stromen, omdat deze altijd zijn opgeslagen in het UTF-8 format. Zie de sectie over tekst bestanden en karakter sets voor een uitleg hoe mkvmerge(1) converteert tussen de verschillende karakter sets.

    Deze optie kan meerdere keren worden gebruikt voor een invoer bestand, is van toepassing op verschillende sporen door het spoor ID elke keer te selecteren.

Andere opties:

-i, --identify file-name
    Zal mkvmerge(1) (met een sonde) een enkel bestand aftasten en het type rapporteren, de sporen in het bestand en hun spoor ID's. Als deze optie wordt gebruikt dan is de enige andere toegestane optie de bestandsnaam.

-I, --identify-verbose file-name
    Zal mkvmerge(1) (met een sonde) een enkel bestand aftasten en het type rapporteren, de sporen in het bestand en hun spoor ID's. Als deze optie wordt gebruikt dan is de enige andere toegestane optie de bestandsnaam.

    Deze optie maakt dat mkvmerge(1) extra informatie uitvoert over de inhoud en elk spoor. De extra informatie staat tussen haken ( [] ). Het bevat een spatie gescheiden sleutel/waarde paar, waar de sleutel en waarde's zijn gescheiden door een dubbel punt (:).

    Elke waarde wordt overgeslagen conform de regels beschreven in de sectie over overslaan van speciale karakters in een tekst.

-l, --list-types
    Somt invoer bestandstypen op.

--list-languages
    Somt alle talen en hun ISO639-2 code's op welke gebruikt kunnen worden met de --language optie.

--priority priority
    Stelt de proces prioriteit in waarmee mkvmerge(1) zijn werk doet. Geldige waarden zijn 'lowest', 'lower', 'normal', 'higher' en 'highest'. Is niets ingegeven dan wordt 'normal' gebruikt. Op unix achtige systemen zal mkvmerge(1) gebruiken de nice(2) functie. Daarom kan alléén de 'super' gebruiker die gebruiken 'higher' en 'highest'. Op Windows zijn alle waarden voor iedereen beschikbaar.

--command-line-charset (karakter-set)
    Plaatst het karakter dat wordt geplaatst om de reeksen om te zetten die op de commandoregel worden ingeven. Het is standaard aan het karakter van het systeem en afhankelijk van de besturingssysteem lokatie. Deze instellingen zijn van toepassing op argumenten van de volgende opties: --title, --track-name en --attachment-description.

--output-charset (karakter-set)
    Stelt de karakter set in waarnaar de reeksen dienen te worden geconverteerd naar de uitvoer. Standaard wordt gebruikt de karakter set die afhankelijk is van wat er in uw besturingssysteem staat aangegeven (lokatie).

-r, --redirect-output (bestandsnaam)
    Schrijft alle berichten naar een bestand file-name i.p.v naar het 'apparaat/houder'. Terwijl dit gemakkelijk met uitvoer omleiden kan worden gedaan er zijn gevallen waarin deze optie nodig is: wanneer de verwerker e.e.a her-interpreteert voordat het geschreven wordt naar het uitvoer bestand. De karakter set met --output-charset is toegewezen.

--ui-language code
    Forceert de vertaling voor de te gebruiken taal code (b.v. 'de_DE' voor de Duitse taal). Het heeft de voorkeur de 'omgevings variabelen' te gebruiken LANG, LC_MESSAGES en LC_ALL Hoewel opvragen van een 'list' voor een land code zal er voor zorgen dat mkvextract(1) een lijst zal uitvoeren van alle beschikbaren vertalingen.

@optie's-bestand
    Leest extra commandoregel argumenten in van een bestand options-file. Regels met een spatie (lege ruimte) als eerste karakter, zijn gemarkeerd als een hash (waarde) ('#') worden behandeld als commentaar en genegeerd. Een spatie aan het begin en einde van een regel worden verwijderd. Elke regel mag excact één waarde bevatten

    Verschillende karakters kunnen worden overgeslagen, b.v. als het nodig is een niet commentaar regel te starten met '#'. Deze regels worden beschreven in de sectie over overslaan van tekst.

    De commandoregel 'mkvmerge -o "mijn bestand.mkv" -A "een film.avi" geluid.ogg' kan geconverteerd worden naar het volgende optie bestand:

        # Write to the file "mijn bestand.mkv".
        -o
        my file.mkv
        # Only take the video from "een film.avi".
        -A
        een film.avi
        geluid.ogg

--capabilities
    Somt informtie op over optionele mogelijkheden die zijn gecompileerd en sluit af. De eerste uitvoer regel zal de versie informatie zijn. Alle volgende informatie regels bevatten exact één woord, waarvan de aanwezigheid aangeeft welke eigenschapen er binnenin zijn gecompileerd. Deze mogelijkheden zijn:

        • 'BZ2' -- de bzlib(TM) compressie bibliotheek. Heeft effect op de beschikbare compressie methoden voor de --compression optie.

        • 'LZO' -- de lzo(TM) compressie bibliotheek. Heeft effect op de beschikbare compressie methoden voor de --compression optie.

        • 'FLAC' -- lezen raw FLAC bestanden en behandelen van FLAC sporen in andere inhoudsmaten, b.v. Ogg(TM) of Matroska(TM).

-h, --help
    Toon gebruik informatie en sluit af.

-V, --version
    Toon versie informatie en sluit af.

--check-for-updates
    Controleert online op nieuwere versie's via ophalen op adres http://mkvtoolnix-releases.bunkus.org/latest-release.xml. Vier regels worden uitgevoerd in key=value stijl: het adres van waar de informatie wordt verkregen (key version_check_url), de huidig uitgevoerde versie (key running_version), laatst uitgebrachte versie (key available_version en het ophaal adres (key download_url).

    Nadien sluit het programma af met een afsluitwaarde van 0 als er geen nieuwere versie beschikbaar is, met een 1 als er een nieuwere beschikbaar is en 2 indien er een fout ontstond (b.v. als de opwaardeer info niet verkregen kon worden).

    Deze optie is alleeen beschikbaar indien het gebouwd is met ondersteuning voor libcurl.

GEBRUIK

Voor elk bestand kan de gebruiker selecteren welke sporen mkvmerge(1) zou moeten nemen. Zij zitten allemaal in het bestand gespecificeerd met -o. Een lijst met bekende (en ondersteunde) bron formaten kunnen verkregen worden met de -l optie.

    Belangrijk

    The order of command line options is important. Please read the section "Option order" if you're new to the program.

OPTIE VOLGORDE

Voor sommige optie's is de volgorde waarin zij zijn opgegeven belangrijk. Optie's mislukken in twee categorieën:

    1. Opties die het programma beinvloeden en niet verbonden zijn aan enig invoerbestand. Dez omvatten maar zijn niet beperkt tot --command-line-charset, --output of --title. Deze mogen waar dan ook op de commandoregel staan.

    2. Opties die één enkel invoerbstand beïnvloedden of spoor in een invoerbestand. Deze optie's zijn allen van toepassing op het invoerbestand op de commandoregel. Alle optie's naar hetzelfde invoerbestand (of naar sporen in hetzelfde invoerbestand) mogen in elke volgorde geschreven worden zolang deze voor het invoerbestandsnaam staan. Voorbeelden die een invoerbestand beïnvloedden zijn --no-chapters of --chapter-charset. Voorbeelden voor een enkel spoor --default-duration of --language.

De optie's worden uitgevoerd van links naar rechts. Indien er een optie meerdere keren is, binnen hetzelfde gebied, dan wordt de laatste gebruikt. Daarom zal de titel gezet worden naar "Iets anders" in het volgende voorbeeld:

    $ mkvmerge -o output.mkv --title 'Dit én Dat' input.avi --title 'Iets anders'

Het volgende voorbeeld toont dat het gebruiken van de optie --language tweemaal OK is, omdat zij andere gebieden gebruiken. Alhoewel zij tot hetzelfde spoor ID behoren maar van verschillende invoer bestanden en daarom verschillende gebieden hebben:

    $ mkvmerge -o output.mkv --language 0:fre français.ogg --language 0:deu deutsch.ogg

VOORBEELDEN

Laten we aannemen dat je een bestand genoemd hebt mijn film.avi en het audio spoor in een ander bestand, b.v. 'mijn film.wav'. Dan wil je eerst de audio coderen naar OggVorbis(TM):

    $ oggenc -q4 -omijn film.ogg mijn film.wav

Na een paar minuten kan je het video en audio samenvoegen:

    $ mkvmerge -o mijn film-met-geluid.mkv mijn film.avi mijn film.ogg

Als jouw AVI reeds een audio spoor bevat dan wordt ook die gekopieerd (als mkvmerge(1) dat audio formaat ondersteunt). Om dat te voorkomen doe simpel

    $ mkvmerge -o mijn film-met-geluid.mkv -A mijn film.avi mijn film.ogg

Na een paar minuten van wikken en wegen rip je een ander audio spoor, b.v. de regiseur zijn commentaar of een andere taal naar 'mijn film-voegtoe-geluid.wav'. Codeer het opnieuw en voeg het samen met het andere bestand:

    $ oggenc -q4 -omijn film-voegtoe-geluid.ogg mijn film-voegtoe-geluid.wav
    $ mkvmerge -o MM-complete.mkv mijn film-met-geluid.mkv mijn film-voegtoe-geluid.ogg

Hetzelfde resultaat kan worden verkregen met

    $ mkvmerge -o MM-complete.mkv -A mijn film.avi mijn film.ogg mijn film-voegtoe-geluid.ogg

Nu mplayer(TM) opstarten en geniet. Als je meerdere audio sporen hebt (of zelfs video sporen) dan kan je aangeven aan mplayer(TM) welk spoor af te spelen met de '-vid' en '-aid' opties. Deze zijn 0 gebaseerd en maken geen onderscheid tussen video en audio.

Indien het nodig is een audio spoor te synchroniseren kan je dat héél makkelijk doen. Achterhaal eerst welk spoor ID het Vorbis spoor bevat

    $ mkvmerge --identify outofsync.ogg

Nu kan je dat ID gebruiken voor de volgende commandoregel:

    $ mkvmerge -o goodsync.mkv -A source.avi -y 12345:200 outofsync.ogg

Dit zou toevoegen 200ms aan stilte aan het begin van het spoor met het ID 12345 genomen van 'outofsync.ogg'.

Sommige films starten correct gesynchroniseerd maar langzaam aan verloopt dat. Voor dit soort films kan je een vertraag factor opgeven die worden toegevoegd aan alle tijd codes -- Er wordt géén data toegvoegd of verwijderd. Dus, als je die factor te klein of te groot maakt dan krijg je een slecht resultaat. Een voorbeeld is, dat een episode die ik heb getranscodeerd met 0.2 seconden uit sync aan het eind van de film, welke 77340 beelden lang was. Bij 29.97fps seconden ongeveer corresponderen met 0.2 seconden. 6 beelden. Dus ik deed

    $ mkvmerge -o goodsync.mkv -y 23456:0,77346/77340 outofsync.mkv

Het resultaat was goed.

De sync opties kunnen ook op de zelfde manier gebruikt worden voor ondertitels.

Voor tekst ondertitels kan je één van beide Windows programma's gebruiken (zoals SubRipper(TM)) of het subrip(TM) pakket te vinden in transcode(1)'s bronnen in de 'contrib/subrip' map. Het algemene proces is:

    1. pak een raw ondertiteling uit van de bron:

        $ tccat -i /path/to/copied/dvd/ -T 1 -L | tcextract -x ps1 -t vob -a 0x20 | subtitle2pgm -o mymovie

    2. converteer het resultaat PGM beeld/plaatje naar tekst met het 'GOCR' programma:

        $ pgm2txt mymovie

    3. spellingscontrole voor de resulterende tekst bestanden:

        $ ispell -d american *txt

    4. converteer de tekst bestanden naar een SRT bestand:

        $ srttool -s -w -i mymovie.srtx -o mymovie.srt

Het resultaat bestand kan gebruikt worden als een ander invoerbestand voor mkvmerge(1):

    $ mkvmerge -o mymovie.mkv mymovie.avi mymovie.srt

Als je een taal wilt opgeven voor een gegeven spoor kan dit héél makkelijk gedaan worden. Zoek eerst de ISO639-2 code voor jouw taal. mkvmerge(1) kan alle code's uitlijsten voor je:

    $ mkvmerge --list-languages

Zoek in de lijst naar de taal die je nodig hebt. Laten we aannemen dat je twee audio sporen aan het Matroska(TM) bestand wilt invoegen en je hun taalcodes wilt instellen terwijl hun spoor ID's zijn 2 en 3. Dit kan gedaan worden met

    $ mkvmerge -o with-lang-codes.mkv --language 2:ger --language 3:dut without-lang-codes.mkv

Zoals je kunt zien, kan je de --language schakelaar meerdere keren gebruiken.

Misschien zou je het ook fijn vinden dat de afpeler standaard de Nederlandse taal gebruikt. Als je ook nog extra ondertitelingen hebt zoals b.v. Engels, Frans, en je wilt dat de afpeler de Franse als standaard gebruikt. Kan je dit doen met

    $ mkvmerge -o with-lang-codes.mkv --language 2:ger --language 3:dut --default-track 3 without-lang-codes.mkv --language 0:eng english.srt --default-track 0 --language 0:fre french.srt

Als je de taal of de standaard spoor markering niet ziet, welke je had opgegeven in mkvinfo(1)'s uitvoer lees dan a.u.b. de sectie over standaard waarden.

Zet de compressie uit voor een invoer bestand

    $ mkvmerge -o no-compression.mkv --compression -1:none MyMovie.avi --compression -1:none mymovie.srt

SPOOR ID'S

Sommige opties voor mkvmerge(1) hebben een spoor ID nodig om te specificeren op welk spoor zij zouden moeten worden toegepast. Die spoor ID's worden getoond door de lezers bij het samenvoegen van het huidige invoer bestand, of als mkvmerge(1) is opgeroepen met de --identify optie. Een voorbeeld van een dergelijke uitvoer:

    $ mkvmerge -i v.mkv
    File 'v.mkv': container: Matroska(TM)
    Track ID 1: video (V_MS/VFW/FOURCC, DIV3)
    Track ID 2: audio (A_MPEG/L3)

Verwar de spoor ID's niet met welke zijn toegewezen aan spo(o)r(en) in het uitvoer MKV bestand met het spoor ID van het invoerbestand. Alleen het invoerbestand spoor ID's worden gebruikt voor optie's die deze waarde nodig hebben.

Opmerking: Dat elk invoerbestand zijn eigen spoor ID's heeft. Daarom het spoor ID voor bestand 'file1.ext gerapporteerd wordt door 'mkvmerge --identify' verander niets, ongeacht hoeveel invoerbestanden in welke positie dan ook 'file1.ext' wordt gebruikt.

Spoor ID's worden toegewezen zoals dit:

    • AVI bestanden: Het video spoor heeft het ID 0. De audio sporen krijgen de ID's in oplopende volgorde beginnend bij 1.

    • MP4 bestanden: Als uitvoer van x264, het video spoor het ID 1 heeft.

    • AAC, AC3, MP3, SRT en WAV bestanden: Het 'spoor' in dat bestand krijgt het ID 0.

    • Ogg/OGM bestanden: De spoor ID's worden toegekend volgens de volgorde zoals het gevonden is in het bestand startend bij 0.

    • Matroska(TM) bestanden: Het spoor ID is het spoornummer zoals gerapporteerd door mkvinfo(1). Het is niet het spoor UID.

Het speciale spoor ID '-1' is de 'joker' en past de bepaalde schakelaar toe op alle sporen die van een invoerbestand worden gelezen.

De opties die de spoor ID's gebruiken zijn degenen die de beschrijvingen bevatten 'TID'. De volgende optie gebruikt het spoor ID ook: --audio-tracks, --video-tracks, --subtitle-tracks, --button-tracks en --track-tags.

TEKST BESTANDEN EN KARAKTER SET CONVERSIES

    Opmerking

    Deze sectie is van toepassing op alle programma's in MKVToolNix zelfs wanneer alléén mkvmerge(1) genoemd wordt.

Alle teksten in Matroska(TM) bestanden zijn gecodeerd in UTF-8. Dit betekend, dat mkvmerge(1) alle de te lezen tekst bestanden moet converteren en evenals elke ingegeven tekst op de commandoregel om elke karakter te zetten naar UTF-8. Teruggekoppeld betekend dit ook, dat mkvmerge(1)'s uitvoer terug geconverterd moet worden naar die karakter set van UTF-8, b.v. als een niet Engelse vertaling is gebruikt met --ui-languages of voor de orginele tekst uit een Matroska(TM) bestand.

mkvmerge(1) doet deze conversie automatisch gebasseerd op de aanwezigheid van een Byte Order Marker (byte volgorde markering) (kort: BOM) of op basis van het huidige besturingssysteem lokatie. Hoe de karakter van de lokatie wordt 'achterhaald' hangt af van het besturingssysteem waarop mkvmerge(1) is opgestart.

Tekst bestanden die starten met BOM (byte volgorde markering) zijn al gecodeerd in de vertegenwoordiging van UTF. mkvmerge(1) ondersteunt één van de volgende vijf modes: UTF-8, UTF-16 Little en Big Endian, UTF-32 Little en Big Endian. Tekst bestanden met een BOM (byte volgorde markering) worden automatisch geconverteerd naar UTF-8. Elke van de parameters die gezet zouden zijn voor een dergelijk bestand (b.v. --sub-charset) worden stilletjes genegeerd.

Op Unix-achtige systemen gebruikt mkvmerge(1) de setlocale(3) besturingssysteem oproep, welke beurtelings de omgevingsvariabelen gebruikt LANG, LC_ALL en LC_CYPE. Het resulterende karakter set is vaak één van de UTF-8 of de ISO-8859-* familie en wordt gebruikt voor alle tekst bestand operaties en voor het coderen van reeksen op de commandoregel voor een uitvoer naar het apparaat/houder.

Met Windows zijn er eigenlijk twee karakter sets welke mkvmerge(1) gebruikt, door de manier waarop het Windows commandoregel programma cmd.exe is geïmplementeerd. De eerste karakter set wordt bepaald door een vraag met de GetCP() besturingssysteem oproep. Deze karakter set wordt standaard gebruikt voor tekst bestand conversie en voor alle elementen getoond met het GUI programma in het MKVToolNix pakket. cmd.exe gebruikt een andere karakter set welke kan worden bepaald door een vraag met de GetACP() besturingssysteem oproep. Dit is de standaard karakter set voor alle reeksen die gelezen worden vanaf de commandoregel en voor alle reeksen die naar het apparaat/houder worden uitgevoerd.

Als de volgende optie aanwezig is dan is het toegestaan de karakter set te specificeren:

    • --sub-charset voor tekst ondertitels en tekst ondertitel sporen opgeslagen in de houder formaat waarvan de karakter set niet onomtstotelijk kan worden vastgesteld (b.v. Ogg bestanden),

    • --chapter-charset voor tekst hoofdstuk bestanden en voor hoofdstukken en bestand titels opgeslagen in de houder formaat waarvan de karakter set niet onomtstotelijk kan worden vastgesteld (b.v. Ogg bestanden voor hoofdstuk informatie, spoor en bestand titels etc.; MP4 bestanden voor hoofdstuk informatie),

    • --command-line-charset voor alle ingave's op de commandoregel,

    • --output-charset voor alle reeksen geschreven naar het apparaat/houder of naar een bestand wanneer de uitvoer is omgeleid met de --redirect-output optie.

OVERSLAAN VAN SPECIALE KARAKTER(S) IN TEKST

Er zijn een paar plaatsen waar speciale karakters zouden of moeten worden overgeslagen. De regels voor het overslaan zijn simpel: elk karakter dat overgeslagen dient te worden wordt vervangen door een backslash "\" gevolgd door een ander karakter.

De regels zijn: ' ' wordt '\s', '"' wordt '\2', ':' wordt '\c', '#' wordt '\h' en '\' zelf wordt '\\'.

ONDERTITELINGEN

Er zijn verschillende tekst ondertitel formaten welke kunnen worden 'ingebakken' in Matroska(TM). Op het moment ondersteunt mkvmerge(1) alléén tekst, VobSub en Kate ondertitel formaten. Tekst ondertitels moet worden hergecodeerd naar UTF-8 zodat deze juist kunnen worden getoond door een afspeler (zie de sectie over tekst bestanden en karakter sets voor een uitleg hoe mkvmerge(1) converteert tussen de verschillende karakter sets). Kate ondertitels zijn reeds gecodeerd met UTF-8 en hoeven niet ge-hercodeerd te worden.

De volgende ondertitel formaten worden momenteel ondersteund:

    • Ondertitel stripper (SRT) bestand(en)

    • Substation Alpha (SSA) / Advanced Substation Alpha scripts (ASS)

    • OggKate stromen

    • VobSub bitmap ondertitel bestanden

BESTAND LINKEN

Matroska(TM) ondersteunt bestand linken welke eenvoudig zegt, dat een specifiek bestand de voorganger of de opvolger van het huidige bestand is. Om precies te zijn, het zijn niet echt de bestanden die gelinkt zijn maar de Matroska(TM) segmenten. En de meeste bestanden bevatten alleen één Matroska(TM) segment de volgende uitleg gebruikt de term 'bestand linken' hoewel 'segment linken' meer op zijn plaats zou zijn.

Elk segment word geïndentificeerd door een uniek 128 bit lang segment UID. Dit UID wordt automatisch gegenereerd door mkvmerge(1). Het linken wordt primair gedaan via het zetten van het segment UID's (kort: SID) van het volgende/vorige bestand naar het segment kop informatie. mkvinfo(1) print deze SID's als het hen vindt.

Als een bestand wordt gesplitst in meerdere kleinere bestanden en linken wordt gebruikt, dan zullen de tijd codes niet opnieuw starten op 0 maar doorgaan op daar waar het vorige bestand eindigde. Op deze manier zal absolute de tijd code behouden blijven, zelfs wanneer het vorige bestand niet aanwezig/beschikbaar is (b.v. bij 'streaming''). Als er géén linken is gebruikt, dan zouden de tijd codes moeten starten op 0 voor elk bestand. Standaard gebruikt mkvmerge(1) bestand linken niet. Als je wilt kan je dit aanzetten met de --link optie. Deze optie is alléén nuttig wanneer ook het splitsen actief is.

Ongeacht of het splitsen actief is of niet, de gebruiker kan mkvmerge(1) vertellen het geproduceerde bestand te linken naar een specifieke SID's. Dit wordt bereikt met de opties --link-to-previous en --link-to-next. Deze opties accepteren een segment SID in het formaat dat mkvinfo(1) uitvoert: 16 hexadecimale nummers tussen 0x00 en 0xff voorgevoegd met '0x' elk, b.v. '0x41 0xda 0x73 0x66 0xd9 0xcf 0xb2 0x1e 0xae 0x78 0xeb 0xb4 0x5e 0xca 0xb3 0x93'. Als alternatief kan een kortere vorm worden gebruikt: 16 hexadecimale nummers tussen 0x00 en 0xff zonder het '0x' voorvoegsel en zonder spaties, b.v. '41da7366d9cfb21eae78ebb45ecab393'.

Als splitsen wordt gebruikt, dan is het eerste bestand gelinkt naar het SID gegeven met --link-to-previous en het laatste bestand is gelinkt naar SID gegeven met --link-to-next. Als splitsen niet is gebruikt, dan zal één uitvoer bestand worden gelinkt met twee van de beide SIDs.

STANDAARD WAARDEN

De Matroska(TM) de specificatie verklaart dat sommige elementen een standaard waarde hebben. Gewoonlijk wordt een element niet naar het bestand geschreven als het niet gelijk is aan de standaard waarde, dit om ruimte te besparen. De elementen die gebruiker zou kunnen missen in mkvinfo(1)'s uitvoer, zijn de lanuage (taal) en de defautt track flag (standaard spoor markering) elementen. De standaard waarde voor de language (taal) is English (is Engels) ('eng'), en de standaard waarde voor de standard track flag (standaard spoor markering) is true (waar). Als je daarom gebruikt de --language 0:eng voor een spoor, dan zal deze niet verschijnen in de mkvinfo(1)'s uitvoer.

BIJLAGEN

Misschien wilt u ook sommige foto's samen met uw Matroska(TM) bestand houden of je gebruikt SSA ondertitels en je wilt een speciaal TrueType(TM) lettertype(n) gebruiken welke zeldzaam zijn. In deze gevallen kan je deze bestanden vastmaken aan het Matroska(TM) bestand. Zij zullen niet enkel bijgevoegd worden aan het bestand maar er ingevoegd worden. Een afspeler kan deze bestanden tonen (de 'foto' gevallen) of hen gebruiken om de ondertitels te genereren (de 'TrueType(TM) lettertype' gevallen).

Hier is een voorbeeld hoe een foto en een TrueType(TM) lettertype aan het uitvoerbestand kan vast te maken:

    $ mkvmerge -o output.mkv -A video.avi sound.ogg --attachment-description "Me and the band behind the stage in a small get-together" --attachment-mime-type image/jpeg --attach-file me_and_the_band.jpg --attachment-description "The real rare and unbelievably good looking font" --attachment-type application/octet-stream --attach-file really_cool_font.ttf

Als een Matroska(TM) bestandsbijlage bevat en is gebruikt als een invoer bestand dan zal mkvmerge(1) de bijlage kopieeren naar een nieuw bestand. De selectie, welke bijlage wordt gekopieerd en welke niet kan veranderd worden met de opties --attachments en --no-attachments.

HOOFDSTUKKEN

Het Matroska(TM) hoofdstuk systeem is krachtiger dan het oude bekende systeem vanOGM bestanden. De volledige specificatie kan gevonden worden op de Matroska(TM)[1] website.

mkvmerge(1) ondersteunt twee soorten van hoofdstuk bestanden als invoer. Het eerste formaat, genoemd 'simpel hoofdstuk format', is hetzelfde format dat het OGM hulpmiddel verwacht. Het tweede format is een XML gebasseerd hoofdstuk format welke alle Matroska(TM)'s hoofdstuk functionaliteiten ondersteunt.

  Een eenvoudig hoofdstuk formaat

Dit formaat bestaat uit twee paren van regels die respectievelijk starten met 'CHAPTERxx=' en 'CHAPTERxxNAME='. De eerste bevat de start tijdcode en de tweede bevat de titel. Hier is een voorbeeld:

    CHAPTER01=00:00:00.000
    CHAPTER01NAME=Intro
    CHAPTER02=00:02:30.000
    CHAPTER02NAME=Baby prepares to rock
    CHAPTER03=00:02:42.300
    CHAPTER03NAME=Baby rocks the house

mkvmerge(1) zal elk paar of regels transformeren naar één Matroska(TM) ChapterAtom. Het plaatst geen ChapterTrackNumber Wat inhoudt, dat de hoofdstukken van toepassing zijn aan alle sporen in het bestand.

Aangezien dit een tekst bestand is kan karakter set conversie nog nodig zijn. Zie de sectie over tekst bestanden en karakter sets voor een uitleg hoe mkvmerge(1) converteert tussen karakter sets.

  Het XML gebaseerde hoofdstuk formaat

Het XML gebaseerde hoofdstuk formaat lijkt op dit voorbeeld:

    <?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>

Met dit format zijn drie dingen mogelijk die niet mogelijk zijn met het simpele hoofdstuk format:

    1. De tijdmarkering voor het hoofdstuk eind kan ingegeven worden,

    2. Hoofdstukken mogen ingekapseld zijn

    3. De taal en het land mag ingesteld worden

De mkvtoolnix distributie bevat meerdere voorbeeld bestanden in de doc sub map welke als basis gebruikt kan worden.

  Algemene opmerkingen

Bij het splitsen van bestanden dan zal mkvmerge(1) tevens de hoofdstukken juist bijstellen. Dit betekendt, dat elk bestand slechts de hoofdstukingangen omvat waarop het van toepassing is, en dat de tijd codes worden gecompenseerd om te voldoen aan de nieuwe tijd codes van elk uitvoer bestand.

mkvmerge(1) is in staat hoofdstukken te kopieeren van Matroska(TM) bronbestanden tenzij dit expliciet is uitgezet met de --no-chapters optie. De hoofdstukken van alle bronen (Matroska(TM) bestanden, Ogg bestanden, MP4 bestanden, hoofdstuk tekst bestanden) worden gewoonlijk niet samengevoegd maar eindigen als een separate ChapterEditions. Alleen wanneer de hoofdstukken worden gelezen van verschillende Matroska(TM) of XML bestanden die dezelfde editie UID's delen, zullen hoofdstukken samengevoegd worden tot één ChapterEdition. Als een dergelijke samenvoeging ook in andere situaties gewenst is, dan dient de gebruiker de hoofdstukken eerst te extraheren uit alle bronnen met mkvextract(1), handmatig de XML bestanden aaneenkoppelen en nadien samenvoegen.

MARKERINGEN

  Introductie

Matroska(TM) ondersteunt een uitgebreide set markeringen welke zijn verouderd, een nieuw simpeler systeem welke worden gebruikt in de meeste overige inhoudsformaten: KEY=VALUE. Hoewel, in Matroska(TM) deze markeeringen ook kunnen worden ingekapseld, en beide de KEY en de VALUE zijn elementen van zichzelf. Het voorbeeld bestand example-tags-2.xml toont hoe dit nieuwe systeem te gebruiken.

  Gebied van de markeringen

Matroska(TM) markeringen worden niet automatisch toegekend aan het hele bestand. Dat kunnen zij, maar zij kunnen ook op verschillende delen van het bestand van toepassing zijn: aan één of meerdere sporen, aan één of meerdere hoofdstukken, of zelfs een combinatie van beide. De Matroska(TM) specificaties[3] geeft meer informatie over dit feit.

Eén belangrijk feit is, dat markeringen gelinkt zijn naar sporen of hoofdstukken met de Targets Matroska(TM) markeer element, en dat de gebruikte UID's voor dit linken niet zijn, de spoor ID's die overal door mkvmerge(1) gebruikt worden. In plaats daarvan, zijn de gebruikte UID's nummers welke mkvmerge(1) automatisch uitrekent (als het spoor genomen is anders dan van een Matroska(TM) bestandsformat) of welke zijn gekopieerd van een bronbestand, als de sporen bronbestand een Matroska(TM) bestand is. Daarom is het moeilijk te bepalen, welke UID's te gebruiken in het markeer bestand voordat het bestand wordt overgedragen naar mkvmerge(1).

mkvmerge(1) kent twee opties waarmee je markeringen kunt toevoegen aan Matroska(TM) bestanden: De --global-tags en de --tags opties. Het verschil is dat de vroegere optie, --global-tags, de markeringen zal maken die op het volledige bestand van toepassing zijn, door te verwijderen (welke dan ook) Targets elementen hierboven genoemd. De laatstgenoemde optie, --tags, voegt automatisch het UID die mkvmerge(1) genereert voor de markering gespecificeerd met het TID deel van de--tags opties.

  Voorbeeld

Laten we aannemen, dat je een markering wiilt toevoegen aan een video spoor gelezen van een AVI. mkvmerge --identify file.avi vertelt je, dat het video spoor ID (verwar dit ID niet met het UID!) 0 is. Zodat het jouw markeer bestand kan creëren, laat weg alle Targets elementen en start mkvmerge(1) op:

    $ mkvmerge -o file.mkv --tags 0:tags.xml file.avi

  Markeer bestandsformaat

mkvmerge(1) ondersteunt een XML gebasseerde markeer bestand format. Het format is rijkelijk gedocumenteerd op de Matroska(TM)[3] specificaties. Beide, zowel het binaire alsmede de bron distributies van MKVToolNix komen met een voorbeeld bestand genaamd example-tags-2.xml welke simpelweg alle bekende markeringen opsomt en welke kunnen worden gebrukt als basis voor 'echte leven' markeer bestanden.

De basis is:

    • Het buitenste element moet zijn <Tags>.

    • Eén logische markering welke binnenin één paar bevindt van <Tag> XML markeringen.

    • Spaties direct voor en na een markering worden genegeerd.

  Data typen

Het nieuwe Matroska(TM) markeer systeem kent alléén twee data typen, een UTF-8 reeks en een binair type. De eerste wordt gebruikt voor markeer namen en het <String> element terwijl het binaire type gebruikt word voor het <Binary> element.

Aangezien binaire gegevens zelf niet zouden passen in een XML bestand, ondersteunt mkvmerge(1) twee andere methoden om binaire data op te slaan. Als de inhoud van een XML markering start met '@' dan wordt de volgende tekst behandeld als een bestandsnaam. De corresponderende bestandsinhoud wordt gekopieerd in een Matroska(TM) element.

Anders zou de gegeven data moeten zijn een gecodeerde Base64. Dit is een codering die binaire data codeert naar een gelimiteerde set van ASCII karakters en wordt gebruikt in b.v. email programma's. mkvextract(1) zal uitvoeren Base64 gecodeerde data voor binaire elementen.

Het verouderde markeer systeem kent een paar meer data typen welke gevonden kunnen worden in de officiële Matroska(TM) markeer specificaties. Aangezien in mkvmerge(1) dit systeem niet meer wordt ondersteund, worden deze typen hier niet beschreven.

MATROSKA(TM) BESTAND LAYOUT

Het Matroska(TM) layout bestand is redelijk flexibel. mkvmerge(1) zal een bestand genereren op een vooraf gedefinieerde manier. Het resultaat zal er zo uitzien:

[EBML head] [segment {meta seek #1} [segment information] [track information] {attachments} {chapters} [cluster 1] {cluster 2} ... {cluster n} {cues} {meta seek #2} {tags}]

De elementen in gekromde haakjes zijn optioneel en afhankelijk van de inhoud en de gebruikte opties. Een paar opmerkingen:

    • meta zoek #1 bevat slechts een klein aantal aan niveau 1 elementen, en alleen als deze ook werkelijk bestaan: bijlagen, hoofdstukken, volg document(en) (cue), markeringen, meta zoek #2. Oudere versies van mkvmerge(1) zijn tevens gewend om clusters binnenin het meta zoek element te plaatsen. Daarom was het noodzakelijk ietwat onnauwkeurig te gokken om genoeg ruimte te reserveren. Het faalde vaak. Nu worden alleen clusters opgeslagen in het meta zoek #2, en meta zoek #1 verwijst naar het meta zoek element #2.

    • Bijlage, hoofdstuk en markeer elementen zijn alléén aanwezig indien zij waren toegevoegd.

Het kortst mogelijke Matroska bestand zou lijken op dit:

[EBML head] [segment [segment information] [track information] [cluster 1]]

Dit kan het geval zijn voor alléén-audio bestanden.

EXTERNE TIJDCODE BESTANDEN

mkvmerge(1) staat de gebruiker toe, de tijd codes voor een specifiek spoor zelf te kiezen. Dit kan worden gebruikt, om bestanden met de variabele video beeld verhouding te creëren of 'gaten' in audio te laten bevatten. Een beeld in dit geval, is de unit welke mkvmerge(1) separaat creëert per Matroska(TM) blok. Voor video is dit exact één beeld, voor audio is dit één pakket van het specifieke audio type b.v. voor AC3 zou dit een pakket moeten zijn inhoudende 1536 voorbeelden.

Tijdcode bestanden die worden gebruikt wanneer de sporen aan elkaar worden toegevoegd, moeten alleen voor het eerste deel in een reeks van sporen worden gespecificeerd. Bijvoorbeeld, als je twee bestanden toevoegt, v1.avi en v2.avi, en je wilt tijd codes gebruiken dan moet je commandoregel lijken op dit:

    mkvmerge ... --timecodes 0:my_timecodes.txt v1.avi +v2.avi

Er zijn vier formaten die worden herkend door mkvmerge(1). De eerste regel bevat altijd het versie nummer. Lege regels, regels alleen bevattende spaties en regels beginnend met '#' worden genegeerd.

  Tijdcode bestandsformaat v1

Dit format start met de versie regel. De tweede regel verklaart het aantal beelden per seconde. Alle volgende regels bevatten drie nummers gescheiden door een komma: het start beeld (0 is het eerste beeld), het eind beeld en het aantal beelden binnen dit bereik. Het FPS veranderbaar nummer met een punt '.' als het decimale punt. De bereiken kunnen 'gaten' bevatten waarvoor standaard FPS is gebruikt. een voorbeeld:

    # timecode format v1
    assume 27.930
    800,1000,25
    1500,1700,30

  Tijdcode formaat v2

In dit format, bevat elke regel een tijdcode voor het corresponderende beeld. Deze tijdcode moet opgeven worden in milli seconden. Het mag een veranderbaar nummer zijn, maar het hoeft niet. Jij moet minstens zo veel tijdcoderegels opgeven als er aan beelden in het spoor zijn. De tijd codes in dit bestand moeten gesorteerd zijn. Voorbeeld voor 25fps:

    # timecode format v2
    0
    40
    80

  Tijd code formaat v3

In dit format bevat elke regel een duur in seconden gevolgd door een optioneel aantal beelden per seconde. Beide kunnen een veranderbaar nummer zijn. Als het aantal beelden per seconde niet is opgegeven dan wordt het standaard aantal gebruikt. Voor audio, zou jij de codec zelf de tijd codes moeten laten berekenen. Daarvoor zou je moeten gebruiken 0.0 als het aantal beelden per seconde. Je kunt ook 'gaten' creëren in de stromen door te gebruiken de 'gap' sleutelwoord gevolgd door de duur van het 'gat'. Voorbeeld voor een audio bestand:

    # timecode format v3
    assume 0.0
    25.325
    7.530,38.236
    gap, 10.050
    2.000,38.236

  Tijdcode formaat v4

Dit format is identiek aan het v2 format. Het enige verschil is dat de tijd codes niet gesorteerd behoeven te zijn. Dit format zou bijna nooit gebruikt moeten worden.

VERLAAT CODES

mkvinfo(1) verlaat met één van de drie afsluit codes:

    • 0 -- Deze verlaat code betekend dat het samenvoegen succesvol voltooid is.

    • 1 -- In dit geval heeft mkvmerge(1) tenmiste één waarschuwing uitgevaardigd, maar het samenvoegen ging door. Een waarschuwing gaat vooraf met de tekst 'Warning:'. Afhankelijk van de 'tegengekomen' kwesties kan het resltaat goed of slecht zijn. De gebruiker wordt geadviseerd om zowel de waarschuwing als de resulterende bestanden te controleren.

    • 2 -- Deze afsluit code wordt gebruikt nadat er een fout ontstond. mkvmerge(1) breekt direct af na het geven van dit waarschuw bericht. Fout! bereik in berichten, van een verkeerd commandoregel argument over lees/schrijf fouten naar een 'gebroken' bestanden.

ZIE OOK

mkvinfo(1), mkvextract(1), mkvpropedit(1), mmg(1)

WWW

De laatste versie kan altijd gevonden worden op de MKVToolNix[4] thuis basis.

AUTEUR

Moritz Bunkus <moritz@bunkus.org>
    Ontwikkelaar

NOTEN

1.  Matroska(TM)
    http://www.matroska.org/

2.  IANA
    http://www.iana.org/assignments/media-types/

3.  De Matroska(TM) specificaties
    http://matroska.org/technical/specs/index.html

4.  MKVToolNix
    http://www.bunkus.org/videotools/mkvtoolnix/