MKVMERGE(1)

NAME
mkvmerge - Voegt multimedia stromen in een Matroska bestand in.

BEKNOPTE INHOUDSBESCHRIJVING

mkvmerge [global options] {-o out} [options1] {file1} [[options2] {file2}] [@options-file.json]

BESCHRIJVING

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

    Belangrijk

    De volgorde van het commando regel opties zijn belangrijk. Lees a.u.b. de sectie over: "Optie volgorde" als je nog onbekend bent met het programma.

  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
    Create a WebM compliant file. This is also turned on if the output file name's extension is "webm". This mode enforces several restrictions. The only allowed codecs are VP8, VP9 video and Opus, Vorbis audio tracks. The DocType header item is changed to "webm".

    For chapters and tags only a subset of elements are allowed. mkvmerge(1) will automatically remove all elements not allowed by the specification.

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

--default-language language-code
    Sets the default language code that will be used for tracks for which no language is set with the --language option and for which the source container doesn't provide a language.

    The default language code is 'und' for 'undetermined'.

  Hanteren van segment informatie (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.

    Zie de sectie over: Het segment informatie XML bestanden zie hieronder voor details.

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

    If SID starts with = then its rest is interpreted as the name of a Matroska file whose segment UID is read and used.

    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 hoofdstuk en markeringen (globale opties)

--chapter-language language-code
    Stelt de ISO 639-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 en OGM bestanden.

    The language set with this option is also used when chapters are generated with the --generate-chapters option.

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

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

--chapter-sync d[,o[/p]]
    Adjust the timestamps of the chapters in the following source file by d ms. Alternatively you can use the --sync option with the special track ID -2 (see section special track IDs).

    o/p: Stel de tijd codes 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.

--generate-chapters mode
    mkvmerge(1) can create chapters automatically. The following two modes are currently supported:

        • 'when-appending' – This mode creates one chapter at the start and one chapter whenever a file is appended.

        This mode also works with split modes 'parts:' and 'parts-frames:'. For these modes one chapter will be generated for each appended timestamp range (those whose start timestamps are prefixed with '+').

            Opmerking
            mkvmerge(1) requires a video or an audio track to be present in order to be able to determine when a new file is appended. If one or more video tracks are muxed the first one is used. Otherwise the first audio track is used.

        • 'interval:time-spec' – This mode creates one chapter at fixed intervals given by time-spec. The format is either the form HH:MM:SS.nnnnnnnnn or a number followed by one of the units 's', 'ms' or 'us'.

        Example: --generate-chapters interval:45s

    The names for the new chapters are controlled by the option --generate-chapters-name-template. The language is set with --chapter-language which must occur before --generate-chapters.

--generate-chapters-name-template template
    This sets the name template for chapter names generated by the option --generate-chapters. If the option is not used then default 'Chapter <NUM:2>' will be used.

    There are several variables that can be used in the template that are replaced by their actual values when a chapter is generated. The string '<NUM>' will be replaced by the chapter number. The string '<START>' will be replaced by the chapter's start timestamp.

    The strings '<FILE_NAME>' and '<FILE_NAME_WITH_EXT>' are only filled when generating chapters for appended files. They will be replaced by the appended file's name without respectively with its extension. Note that only the file's base name and extension are inserted, not its directory or drive components.

    You can specify a minimum number of places for the chapter number with '<NUM:places>', e.g. '<NUM:3>'. The resulting number will be padded with leading zeroes if the number of places is less than specified.

    You can control the format used by the start timestamp with <START:format>. The format defaults to '%H:%M:%S' if none is given. Valid format codes are:

        • %h – hours

        • %H – hours zero-padded to two places

        • %m – minutes

        • %M – minutes zero-padded to two places

        • %s – seconds

        • %S – seconds zero-padded to two places

        • %n – nanoseconds with nine places

        • %<1-9>n – nanoseconds with up to nine places (e.g. three places with %3n)

--cue-chapter-name-format format
    mkvmerge(1) ondersteund 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 het 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 de 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 gecreë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' (milliseconden).

    Als er geen eenheid is gebruikt dan zal mkvmerge(1) hoogstens 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) hoogstens 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.

--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: Matroska bestand layout.

--timestamp-scale factor
    Forceert de tijd code 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.

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

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

--no-date
    By default mkvmerge(1) sets the "date" segment information field to the time & date when multiplexing started. With this option that field is not written at all.

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

--disable-track-statistics-tags
    Normally mkvmerge(1) will write certain tags with statistics for each track. If such tags are already present then they will be overwritten. The tags are BPS, DURATION, NUMBER_OF_BYTES and NUMBER_OF_FRAMES.

    Enabling this option prevents mkvmerge(1) from writing those tags and from touching any existing tags with same names.

--disable-language-ietf
    Normally mkvmerge(1) will write the new IETF BCP 47 language elements in addition to the legacy language elements in track headers, chapters and tags. If this option is used, only the legacy elements are written.

--normalize-language-ietf mode
    Enables normalizing all IETF BCP 47 language tags to either their canonical form with mode 'canonical', to their extended language subtags form with mode 'extlang' or turns it off with mode 'off'. By default normalization to the canonical form is applied.

    In the canonical form all subtags for which preferred values exist are replaced by those preferred values. This converts e.g. 'zh-yue-jyutping' to 'yue-jyutping' or 'fr-FX' to 'fr-FR'.

    For the extended language subtags form the canonical form is built first. Afterwards all primary languages for which an extended language subtag exists are replaced by that extended language subtag and its prefix. This converts e.g. 'yue-jyutping' back to 'zh-yue-jyutping' but has no effect on 'fr-FR' as 'fr' is not an extended language subtag.

  Bestand splitsen, linken en toevoegen (meer globale opties)

--split specification
    Splits the output file after a given size or a given time. Please note that tracks can only be split right before a key frame. Therefore the split point may be a bit off from what the user has specified.

    At the moment mkvmerge(1) supports the following modes:

        1. Splitsen op grootte.

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

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

        De parameter d mag 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.

        Ingaven: --split [duur:]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 evenals de nanoseconden mogen weggelaten worden. Er mogen tot aan negen nummers opgegeven worden na de decimale punt. Nadat de duur 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 tijd code.

        Ingaven: --split timestamps:A[,B[,C...]]

        Voorbeeld: --split timestamps: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 gescheiden. Nadat de uitvoer stroom zijn huidige splits tijd code limiet heeft bereikt wordt er een nieuw bestand gecreëerd. Daarna wordt het volgende splits punt gebruikt van de gebruikte lijst.

        Het 'timestamps:' voorvoegsel mag niet wegelaten worden.

        4. Houden van specifieke delen door het specificeren van tijd code bereiken, terwijl het van anderen ontdaan wordt.

        Ingaven: --split parts:start1-end1[,[+]start2-end2[,[+]start3-end3...]]

        Voorbeeld:

            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-

        De parts mode vertelt mkvmerge(1) bepaalde tijd code bereiken te behouden en anderen over te slaan. De te behouden bereiken worden uit gelijst na de parts: sleutelwoord en gescheiden door een komma. Het bereik zelf bestaat uit een start en een eindtijd code in hetzelfde format als de overige variaties van --split accept (b.v. beide 00:01:20 en 80s verwijzen naar dezelfde tijd code).

        Als een start tijd code is weggelaten wordt het standaard gezet naar het vorige bereik eindtijd code. Als er geen vorig bereik, dan is standaard het begin van het bestand (zie voorbeeld 3).

        Als een eind tijd code is weggelaten, dan is standaard het einde van de bronbestanden die in feite mkvmerge(1) vertelt om de rest te houden (zie voorbeeld 3)

        Normaal gesproken wordt elk bereik weggeschreven naar een nieuw bestand. Dit kan worden veranderd, zodat opeenvolgende reeksen worden geschreven in hetzelfde bestand. Daarvoor moet de gebruiker de start tijd code voorzetten met een +. Dit vertelt mkvmerge(1) om niet een nieuw bestand aan te maken en in plaats daarvan het bereik toe te voegen aan hetzelfde bestand die in de vorige reeks is geschreven. Tijdcodes zullen worden aangepast, zodat er géén gat ontstaat in het uitvoerbestand, zelfs als er een gat in de twee bereiken in het invoerbestand waren.

        In voorbeeld 1 zal mkvmerge(1) twee bestanden aanmaken. De eerste bevat de inhoud startend vanaf 00:01:20 tot 00:02:45. De tweede zal de inhoud bevatten vanaf 00:05:50 tot 00:10:30.

        In voorbeeld 2 zal mkvmerge(1) slechts één bestand aanmaken. Dit bestand zal beide inhoud bevatten startend van 00:01:20 tot 00:02:45 en de inhoud startend van 00:05:50 tot 00:10:30.

        In voorbeeld 3 zal mkvmerge(1) twee bestanden aanmaken. De eerste bevat de inhoud vanaf het beging van het bron bestanden tot 00:02:45. Het tweede bevat de inhoud startend vanaf 00:05:50 tot het eind van het bron bestanden.

            Opmerking
            Opmerking, dat mkvmerge(1) alleen beslissingen neemt over het splitsen op sleutel beeld posities. Dit geldt voor zowel voor het begin en het einde van elk bereik. Dus zelfs als een eind tijdcode tussen twee sleutel beelden ligt, blijft mkvmerge(1) beelden uitvoeren tot aan, maar exclusief de volgende sleutel beeld.

        5. Houden van specifieke delen door het specificeren van beeld/veld nummer bereiken, terwijl het van anderen ontdaan wordt.

        Ingaven: --split parts-frames:start1-end1[,[+]start2-end2[,[+]start3-end3...]]

        Voorbeeld:

            1. --split parts-frames:137-258,548-1211

            2. --split parts-frames:733-912,+1592-2730

            3. --split parts-frames:-430,2512-

        De parts-frames mode vertelt mkvmerge(1) bepaalde bereiken van beeld/veld nummers te behouden en anderen over te slaan. De te behouden bereiken moeten uit gelijst worden na de parts-frames: sleutelwoord en gescheiden door een komma. Het bereik zelf bestaat uit een start en een eind beeld/veld nummer. Nummering start op 1.

        Als een start nummer is weggelaten wordt het standaard gezet naar het vorige bereik eind nummer. Als er geen vorig bereik is, dan is standaard het begin van het bestand (zie voorbeeld 3).

        Als een eind nummer is weggelaten, dan is standaard het einde van de bronbestanden die in feite mkvmerge(1) vertelt om de rest te behouden (zie voorbeeld 3)

        Normaal gesproken, wordt elk bereik weggeschreven naar een nieuw bestand. Dit kan worden veranderd, zodat opeenvolgende reeksen worden geschreven in hetzelfde bestand. Daarvoor, moet de gebruiker het start nummer voorzetten met een +. Dit vertelt mkvmerge(1) om niet een nieuw bestand aan te maken en in plaats daarvan, het bereik toe te voegen aan hetzelfde bestand die in de vorige reeks werd geschreven. Tijdcodes zullen worden aangepast, zodat er géén gat ontstaat in het uitvoerbestand, zelfs als er een gat in de twee bereiken in het invoerbestand waren.

            Opmerking
            Opmerking, dat mkvmerge(1) alleen beslissingen neemt over het splitsen op sleutel beeld posities. Dit geldt voor zowel voor het begin en het einde van elk bereik. Dus zelfs als een eind beeld/veld nummer tussen twee sleutel beelden ligt, blijft mkvmerge(1) beelden uitvoeren tot aan, maar exclusief de volgende sleutel beeld.

        In voorbeeld 1 zal mkvmerge(1) twee bestanden aanmaken. De eerste bevat de inhoud startend op of na het eerste sleutel beeld 137 maar exclusief het eerste sleutel beeld op of na 258. Het tweede bestand, zal de inhoud bevatten startend vanaf 548 tot 1211.

        In voorbeeld 2 zal mkvmerge(1) slechts één bestand aanmaken. Dit bestand zal beide inhoud bevatten startend van 733 tot 912 en de inhoud startend vanaf 1592 tot 2730.

        In voorbeeld 3 zal mkvmerge(1) twee bestanden aanmaken. De eerste bevat de inhoud vanaf het begin van het bron bestanden tot 430. Het tweede bevat de inhoud startend vanaf 2512 tot het eind van het bron bestanden.

        Deze modus houdt alleen rekening met de eerste video spoor dat wordt uitgevoerd. Als er geen video spoor is uitgevoerd dan zal splitsen niet plaatsvinden.

            Opmerking
            De getallen met dit argument worden geïnterpreteerd op basis van het aantal Matroska blokken die worden uitgevoerd. Een enkele Matroska blok bevat ofwel een volledig beeld (voor progressieve inhoud) of een enkel veld (voor interlaced inhoud). mkvmerge maakt geen onderscheid tussen die twee en telt eenvoudig telt aantal blokken. Als voorbeeld: Als men wilt verdelen na het 25ste volledige beeld met interlaced inhoud zou men 50 moeten gebruiken (twee velden per volledig beeld) als splits moment.

        6. Splitsen na specifieke beelden/velden codes.

        Ingaven: --split frames:A[,B[,C...]]

        Voorbeeld: --split frames:120,237,891

        De parameters A, B, C etc. moeten allen positieve cijfers bevatten. Nummering start vanaf 1. De lijst van beeld/veld codes is komma gescheiden. Nadat de uitvoer stroom zijn huidige splits tijd code limiet heeft bereikt wordt er een nieuw bestand gecreëerd. Daarna wordt het volgende splits punt gebruikt van de gebruikte lijst.

        Het 'frames:' voorvoegsel mag niet wegelaten worden.

        Deze modus houdt alleen rekening met de eerste video spoor dat wordt uitgevoerd. Als er geen video spoor is uitgevoerd dan zal splitsen niet plaatsvinden.

            Opmerking
            De getallen met dit argument worden geïnterpreteerd op basis van het aantal Matroska blokken die worden uitgevoerd. Een enkele Matroska blok bevat ofwel een volledig beeld (voor progressieve inhoud) of een enkel veld (voor interlaced inhoud). mkvmerge maakt geen onderscheid tussen die twee en telt eenvoudig telt aantal blokken. Als voorbeeld: Als men wilt verdelen na het 25ste volledige beeld met interlaced inhoud zou men 50 moeten gebruiken (twee velden per volledig beeld) als splits moment.

        7. Splitsen na een specifieke hoofstukken.

        Syntax: --split chapters:all or --split chapters:A[,B[,C...]]

        Voorbeeld: --split chapters:5,8

        De parameters A, B, C etc. moeten allen positief zijn. Nummering start vanaf 1. De lijst van hoofstukken is komma gescheiden. Splitsing zal plaatsvinden vlak voor het eerste toets sleutelbeeld waarvan de tijd code gelijk is aan of groter is dan de start tijd code voor de hoofdstukken waarvan de nummers zijn opgenomen. Een hoofdstuk vanaf 0s wordt nooit beschouwd voor het splitsen en wordt geruisloos weggegooid.

        Het sleutelwoord all kan worden gebruikt i.p.v. alle hoofdstuknummers handmatig uit te lijsten.

        Het chapters:' voorvoegsel mag niet wegelaten worden.

            Opmerking
            Het Matroska bestandsformaat ondersteunt willekeurige diep geneste hoofdstuk structuren, genoemd 'editie ingaven' en 'hoofdstuk delen'. Echter, deze modus beperkt zich alleen tot het hoogste niveau van de hoofdstukken door alle editie ingaven.

    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 de 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.

    Another possible pattern is '%c' which will be replaced by the name of the first chapter in the file. Note that when '%c' is present, the pattern '-%03d' will not be added automatically.

--link
    Bestanden linken aan een ander tijdens het splitsen van het uitvoer bestand. Zie de sectie over: Bestand linken onderstaand voor details.

--link-to-previous segment-UID
    Verbindt het laatste uitvoerbestand met het segment UID ingegeven door segment-UID parameter. Zie de sectie over: Bestand linken onderstaand voor details.

    If SID starts with = then its rest is interpreted as the name of a Matroska file whose segment UID is read and used.

--link-to-next segment-UID
    Verbindt het laatste uitvoerbestand met het segment UID ingegeven door segment-UID parameter. Zie de sectie over: Bestand linken onderstaand voor details.

    If SID starts with = then its rest is interpreted as the name of a Matroska file whose segment UID is read and used.

--append-mode mode
    Calculeert hoe tijd codes worden berekend wanneer die worden toegevoegd 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

[ file1 file2 ]
    If multiple file names are contained in a pair of square brackets then the second and all following files will be appended to the first file named within the brackets.

    This is an alternative syntax to using '+' between the file names. Therefore the following two commands are equivalent:

        $ mkvmerge -o full.mkv file1.mkv + file2.mkv
        $ mkvmerge -o full.mkv '[' file1.mkv file2.mkv ']'

=
    For certain file types (MPEG program streams = VOBs) mkvmerge(1) normally looks for files in the same directory as an input file that have the same base name and only differ in their running number (e.g. 'VTS_01_1.VOB', 'VTS_01_2.VOB', 'VTS_01_3.VOB' etc) and treats all of those files as if they were concatenated into a single big file. This option, a single '=', causes mkvmerge not to look for those additional files.

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

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

( file1 file2 )
    Als er meerdere bestandsnamen zijn opgenomen tussen haakjes, dan zullen die bestanden worden behandeld alsof ze zijn samengevoegd tot één enkel groot bestand, dat bestaat uit de inhoud van elk van de bestanden achter elkaar.

    Dit kan gebruikt worden voor b.v. VOB bestanden vanaf een DVD of MPEG transport stromen. Het kan niet worden gebruikt als elk bestand zijn eigen set koppen bevat wat meestal het geval is bij stand-alone-bestanden, zoals AVI of MP4.

    Een bestandsnaam tussen haakjes te zetten voorkomt tevens dat mkvmerge(1) kijkt naar extra bestanden met dezelfde naam zoals beschreven in option =. Daarom zijn deze twee commando's gelijkwaardig:

        $ mkvmerge -o out.mkv = file.mkv
        $ mkvmerge -o out.mkv '(' file.mkv ')'

    Verschillende dingen dienen te worden opgemerkt:

        1. Er moet een spatie zijn zowel voor als na het open en sluit haken.

        2. Elke parameter tussen haakjes wordt geïnterpreteerd als een bestandsnaam. Daarom moeten alle opties die van toepassing zijn op dit logische bestand opgenomen moet worden voor de openende haakjes.

        3. Sommige insluitingen worden behandeld als speciale tekens. Vandaar dat je moet insluiten of citeren ze zoals in het voorbeeld hierboven.

  Bijlage ondersteuning (meer globale opties)

--attachment-description description
    Normale tekst beschrijving van de volgende bijlage. Is van toepassing op de 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.

    If no MIME type is given a for an attachment, its type will be detected automatically.

--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 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 bestand te halen.

--enable-legacy-font-mime-types
    Enables the use of legacy MIME types for certain types of font attachments. For example, 'application/x-truetype-font' will be used for TrueType fonts instead of 'fonts/ttf'.

    This affects both new attachments if its MIME type is detected automatically and existing attachments whose stored MIME types will be remapped to the legacy ones.

    The affected MIME types are 'font/sfnt', 'font/ttf' and 'font/collection' which are all mapped to 'application/x-truetype-fonts' and 'font/otf' which is mapped to 'application/vnd.ms-opentype'.

  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.

    Instead of track IDs you can also provide ISO 639-2 language codes. This will only work for source files that provide language tags for their tracks.

    Default: copy all tracks of this kind.

    If the IDs are prefixed with ! then the meaning is reversed: copy all tracks of this kind but the ones 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 (zie sectie Spoor ID's). Standaard: Kopieer alle video sporen..

    Instead of track IDs you can also provide ISO 639-2 language codes. This will only work for source files that provide language tags for their tracks.

    If the IDs are prefixed with ! then the meaning is reversed: copy all tracks of this kind but the ones 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.

    Instead of track IDs you can also provide ISO 639-2 language codes. This will only work for source files that provide language tags for their tracks.

    If the IDs are prefixed with ! then the meaning is reversed: copy all tracks of this kind but the ones listed after the !.

-b, --button-tracks [!]n,m,...
    Kopieer de knop 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 knop sporen.

    Instead of track IDs you can also provide ISO 639-2 language codes. This will only work for source files that provide language tags for their tracks.

    If the IDs are prefixed with ! then the meaning is reversed: copy all tracks of this kind but the ones 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.

    Als de IDs zijn voorgezet met ! dan is de betekenis omgekeerd: kopieer alles maar de ID's lijsten na de !.

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

    Als de IDs zijn voorgezet met ! dan is de betekenis omgekeerd: kopieer alles maar de ID's lijsten na de !.

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

-y, --sync TID:d[,o[/p]]
    Stelt de tijd codes 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 codes 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 gecreë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.

    The default is 'iframes' for video and subtitle tracks and 'none' for audio tracks. See also option --no-cues which inhibits the creation of cue entries regardless of the --cues options used.

    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-flag TID[:bool]
    Sets the "default track" flag for the given track (see section track IDs) if the optional argument bool is set to 1 or if it isn't present. The flag will be set if the source container doesn't provide that information and the user doesn't specify it via this option.

    If the user does not explicitly select a track during playback, the player should select one of the tracks that has its "default track" flag set, taking user preferences such as their preferred language into account.

    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.

--track-enabled-flag TID[:bool]
    Sets the "track enabled" flag for the given track (see section track IDs) to the given value bool (0 or 1; defaults to 1 if not specified). Tracks are enabled by default if no option is specified for them and the source container doesn't provide this information either.

    Only tracks whose "track enabled" flag is set should be considered for playback.

    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-display-flag TID[:bool]
    Sets the "forced display" flag for the given track (see section track IDs) if the optional argument bool is set to 1 or if it isn't present. Use this for tracks containing onscreen text or foreign-language dialogue.

    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.

--hearing-impaired-flag TID[:bool]
    Sets the "hearing impaired" flag for the given track (see section track IDs) if the optional argument bool is set to 1 or if it isn't present. This flag can be set if the track is suitable for users with hearing impairments.

    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.

--visual-impaired-flag TID[:bool]
    Sets the "visual impaired" flag for the given track (see section track IDs) if the optional argument bool is set to 1 or if it isn't present. This flag can be set if the track is suitable for users with visual impairments.

    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.

--text-descriptions-flag TID[:bool]
    Sets the "text descriptions" flag for the given track (see section track IDs) if the optional argument bool is set to 1 or if it isn't present. This flag can be set if the track contains textual descriptions of video content suitable for playback via a text-to-speech system for a visually-impaired user.

    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.

--original-flag TID[:bool]
    Sets the "original language" flag for the given track (see section track IDs) if the optional argument bool is set to 1 or if it isn't present. This flag can be set if the track is in the content's original language (not a translation).

    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.

--commentary-flag TID[:bool]
    Sets the "commentary" flag for the given track (see section track IDs) if the optional argument bool is set to 1 or if it isn't present. This flag can be set if the track contains commentary.

    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 niveaus. 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 ISO 639-2 taal codes en ISO 639-1 land codes zijn toegestaan. Het land code wordt automatisch vertaald naar taal code. Alle talen inclusief hun ISO 639-2 codes kunnen uit gelijst 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 de 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 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 een AAC 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 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.

--audio-emphasis TID:n|symbolic-name
    Sets the emphasis for the audio track with the track ID TID. The mode can either be a number n (certain values between 0 and 16) or a symbolic name. All valid numbers & symbolic names can be listed with the --list-audio-emphasis option.

--reduce-to-core TID
    Some audio codecs have a lossy core and optional extensions that implement lossless decoding. This option tells mkvmerge(1) to only copy the core but not the extensions. By default mkvmerge(1) copies both the core and the extensions.

    Currently only DTS tracks are affected by this option. TrueHD tracks that contain an embedded AC-3 core are instead presented as two separate tracks for which the user can select which track to copy. For DTS such a scheme would not work as the HD extensions cannot be decoded by themselves – unlike the TrueHD data.

--remove-dialog-normalization-gain TID
    Some audio codecs contain header fields that tell the decoder or player to apply a (usually negative) gain for dialog normalization. This option tells mkvmerge(1) to remove or minimize that gain by modifying the corresponding header fields.

    Currently only AC-3, DTS and TrueHD tracks are affected by this option.

--timestamps TID:file-name
    Leest de te gebruiken tijd codes in voor een specifiek spoor ID van file-name. Deze krachtige tijd codes heffen de tijd codes 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 tijd code aanpast zodat die overeenkomt met de standaard duur. Het argument x moet zijn vastgezet met 's', 'ms', 'us', 'ns' of 'fps' 'p' of 'i 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 zijn of een fractie.

    Als de standaard duur niet is geforceerd dan zal mkvmerge proberen de spoor standaard duur proberen te verkrijgen uit de inhoud en/of de gecodeerde bit stroom voor bepaalde spoortypen, b.v. AVC/H.264 of MPEG-2.

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

--fix-bitstream-timing-information TID[:0|1]
    Normally mkvmerge(1) does not change the timing information (frame/field rate) stored in the video bitstream. With this option that information is adjusted to match the container timing information. The container timing information can come from various sources: from the command line (see option --default-duration), the source container or derived from the bitstream.

        Opmerking
        This has only been implemented for AVC/H.264 video tracks so far.

--compression TID:n
    Selects the compression method to be used for the track. Note that the player also has to support this method. Valid values are 'none', 'zlib' and 'mpeg4_p2'/'mpeg4p2'.

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

    The default for some subtitle types is 'zlib' compression. This compression method is also the one that most if not all playback applications support. Support for other compression methods other than 'none' is not assured.

  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 bestanden bevatten twee waarden die het scherm eigenschappen instelt waarnaar een af speler met afspelen naar toe zou moeten schalen: scherm breedte en scherm hoogte. Deze waarden 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 bestanden bevatten twee waarden die de scherm eigenschappen instellen waarnaar een speler met afspelen naar toe zou moeten schalen: scherm breedte en scherm hoogte. Met deze optie zal mkvmerge(1) automatisch de scherm breedte en hoogte berekenen, gebaseerd op de breedte en hoogte van de originele beelden/plaatjes en de opgegeven beeldverhouding 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 beeldverhouding te specificeren is een factor. De originele beeldverhouding factor wordt eerst vermenigvuldigd 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 parameters in naar een gegeven waarde.

--color-matrix-coefficients TID:n
    Sets the matrix coefficients of the video used to derive luma and chroma values from red, green and blue color primaries. The parameter n is an integer rangeing from 0 and 10.

    Valid values and their meaning are:

    0: GBR, 1: BT709, 2: unspecified, 3: reserved, 4: FCC, 5: BT470BG, 6: SMPTE 170M, 7: SMPTE 240M, 8: YCOCG, 9: BT2020 non-constant luminance, 10: BT2020 constant luminance

--color-bits-per-channel TID:n
    Sets the number of coded bits for a color channel. A value of 0 indicates that the number of bits is unspecified.

--chroma-subsample TID:hori,vert
    The amount of pixels to remove in the Cr and Cb channels for every pixel not removed horizontally/vertically.

    Example: For video with 4:2:0 chroma subsampling, the parameter should be set to TID:1,1.

--cb-subsample TID:hori,vert
    The amount of pixels to remove in the Cb channel for every pixel not removed horizontally/vertically. This is additive with --chroma-subsample.

    Example: For video with 4:2:1 chroma subsampling, the parameter --chroma-subsample should be set to TID:1,0 and Cb-subsample should be set to TID:1,0.

--chroma-siting TID:hori,vert
    Sets how chroma is sited horizontally/vertically (0: unspecified, 1: top collocated, 2: half).

--color-range TID:n
    Sets the clipping of the color ranges (0: unspecified, 1: broadcast range, 2: full range (no clipping), 3: defined by MatrixCoefficients/TransferCharacteristics).

--color-transfer-characteristics TID:n
    The transfer characteristics of the video.

    Valid values and their meaning are:

    0: reserved, 1: ITU-R BT.709, 2: unspecified, 3: reserved, 4: gamma 2.2 curve, 5: gamma 2.8 curve, 6: SMPTE 170M, 7: SMPTE 240M, 8: linear, 9: log, 10: log sqrt, 11: IEC 61966-2-4, 12: ITU-R BT.1361 extended color gamut, 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
    Sets the color primaries of the video.

    Valid values and their meaning are:

    0: reserved, 1: ITU-R BT.709, 2: unspecified, 3: reserved, 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 phosphors

--max-content-light TID:n
    Sets the maximum brightness of a single pixel (Maximum Content Light Level) in candelas per square meter (cd/m²). The value of n should be a non-negtive integer.

--max-frame-light TID:n
    Sets the maximum brightness of a single full frame (Maximum Frame-Average Light Level) in candelas per square meter (cd/m²). The value of n should be a non-negtive integer.

--chromaticity-coordinates TID:red-x,red-y,green-x,green-y,blue-x,blue-y
    Sets the red/green/blue chromaticity coordinates as defined by CIE 1931.

--white-color-coordinates TID:x,y
    Sets the white color chromaticity coordinates as defined by CIE 1931.

--max-luminance TID:float
    Sets the maximum luminance in candelas per square meter (cd/m²). The value should be less than 9999.99.

--min-luminance TID:float
    Sets the minimum luminance in candelas per square meter (cd/m²). The value should be less than 999.9999.

--projection-type TID:method
    Sets the video projection method used. Valid values are 0 (rectangular projection), 1 (equirectangular projection), 2 (cubemap projection) and 3 (mesh projection).

--projection-private TID:data
    Sets private data that only applies to a specific projection. Data must be given as hex numbers with or without the "0x" prefix, with or without spaces.

--projection-pose-yaw TID:float
    Specificeert een gierrotatie (yaw) naar de projectie.

--projection-pose-pitch TID:float
    Specificeert een pitchrotatie voor de projectie.

--projection-pose-roll TID:float
    Specificeert een rolrotatie naar de projectie.

--field-order TID:n
    Sets the field order for the video track with the track ID TID. The order must be one of the following numbers:

    0: progressive; 1: interlaced with top field displayed first and top field stored first; 2: undetermined field order; 6: interlaced with bottom field displayed first and bottom field stored first; 9: interlaced with bottom field displayed first and top field stored first; 14: interlaced with top field displayed first and bottom field stored first

--stereo-mode TID:n|symbolic-name
    Sets the stereo mode for the video track with the track ID TID. The mode can either be a number n between 0 and 14 or a symbolic name. All valid numbers & names can be listed with the --list-stereo-modes option.

  Opties alleen geldig voor tekst ondertitel sporen

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

    The output format used for the result can be changed with the option --identification-format.

-J file-name
    This is a convenient alias for "--identification-format json --identify file-name".

-F, --identification-format format
    Determines the output format used by the --identify option. The following formats are supported: text (the default if this option isn't used) and json.

        1. The text format is short and human-readable. It consists of one line per item found (container, tracks, attachments etc.).

        This format is not meant to be parsed. The output will be translated into the language mkvmerge(1) uses (see also --ui-language).

        2. The json format outputs a machine-readable JSON representation. This format follows the JSON schema described in the following file:

        mkvmerge-identification-output-schema-v17.json[3]

        All versions of the JSON schema are available both online and in the released source code archives.

--probe-range-percentage percentage
    File types such as MPEG program and transport streams (.vob, .m2ts) require parsing a certain amount of data in order to detect all tracks contained in the file. This amount is 0.3% of the source file's size or 10 MB, whichever is higher.

    If tracks are known to be present but not found then the percentage to probe can be changed with this option. The minimum of 10 MB is built-in and cannot be changed.

--list-audio-emphasis
    Lists all valid numbers & their corresponding symbolic names for the --audio-emphasis option.

--list-languages
    Somt alle talen en hun ISO 639-2 codes op welke gebruikt kunnen worden met de --language optie.

--list-stereo-modes
    Lists all valid numbers & their corresponding symbolic names for the --stereo-mode option.

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

--priority priority
    Stelt het 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.

    Selecting 'lowest' also causes mkvmerge(1) to select idle I/O priority in addition to the lowest possible process priority.

--command-line-charset (karakterset)
    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 het besturingssysteem locatie. Deze instellingen zijn van toepassing op argumenten van de volgende opties: --title, --track-name en --attachment-description.

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

-r, --redirect-output (bestandsnaam)
    Schrijft alle berichten naar een bestand file-name i.p.v. naar de '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. herinterpreteert voordat het geschreven wordt naar de uitvoer bestand. Het karakter set met --output-charset is toegewezen.

--flush-on-close
    Tells the program to flush all data cached in memory to storage when closing files opened for writing. This can be used to prevent data loss on power outages or to circumvent certain problems in the operating system or drivers. The downside is that multiplexing will take longer as mkvmerge will wait until all data has been written to the storage before exiting. See issues #2469 and #2480 on the MKVToolNix bug tracker for in-depth discussions on the pros and cons.

--ui-language code
    Forces the translations for the language code to be used (e.g. 'de_DE' for the German translations). Entering 'list' as the code will cause the program to output a list of available translations.

--abort-on-warnings
    Tells the program to abort after the first warning is emitted. The program's exit code will be 1.

--deterministic seed
    Enables the creation of byte-identical files if the same version of mkvmerge(1) is used with the same source files, the same set of options and the same seed. Note that the "date" segment information field is not written in this mode.

    The seed can be an arbitrary string and does not have to be a number.

    The result of byte-identical files is only guaranteed under the following conditions:

        1. The same version of mkvmerge(1) built with the same versions of libEBML and libMatroska is used.

        2. The source files used are byte-identical.

        3. The same command line options are used in the same order (with the notable exception of --output ...).

    Using other versions of mkvmerge(1) or other command-line options may result in the same byte-identical file but is not guaranteed to do so.

--title onderwerp
    Zet debuggen aan voor een specifieke mogelijkheid. Dit is alleen zinvol voor ontwikkelaars.

--tags feature
    Zet experimentele mogelijkheden aan. Een lijst van beschikbare mogelijkheden kan worden opgevraagd met mkvmerge --engage list. Deze mogelijkheden zijn niet bedoeld in normale situaties.

--gui-mode
    Turns on GUI mode. In this mode specially-formatted lines may be output that can tell a controlling GUI what's happening. These messages follow the format '#GUI#message'. The message may be followed by key/value pairs as in '#GUI#message#key1=value1#key2=value2...'. Neither the messages nor the keys are ever translated and always output in English.

@options-file.json
    Leest extra commandoregel informatie uit een bestand options-file. Zie de sectie over: Optie bestanden voor meer informatie.

--capabilities
    Somt informatie 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:

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

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

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

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

    De volgorde van het commando regel opties zijn belangrijk. Lees a.u.b. de sectie over: "Optie volgorde" als je nog onbekend bent met het programma.

OPTIE VOLGORDE

Voor sommige opties is de volgorde waarin zij zijn opgegeven belangrijk. Opties mislukken in twee categorieën:

    1. Opties die het programma beïnvloeden en niet verbonden zijn aan enig invoerbestand. Deze 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 invoerbestand beïnvloedden of spoor in een invoerbestand. Deze opties zijn allen van toepassing op het invoerbestand op de commandoregel. Alle opties 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 opties 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. Hoewel 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:

    $ oggenc -q4 -oMyMovie.ogg MyMovie.wav

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

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

Als jouw AVI al 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 regisseur 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 opstarten en geniet. Als je meerdere audio sporen hebt (of zelfs video sporen) dan kan je aangeven aan mplayer welk spoor af te spelen met het '-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 toegevoegd 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) of het subrip 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 ISO 639-2 code voor jouw taal. mkvmerge(1) kan alle codes 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 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 af speler standaard de Nederlandse taal gebruikt. Als je ook nog extra ondertitelingen hebt zoals b.v. Engels, Frans, en je wilt dat de af speler de Franse als standaard gebruikt. Kan je dit doen met

    $ mkvmerge -o with-lang-codes.mkv --language 2:ger --language 3:dut --default-track-flag 3 without-lang-codes.mkv --language 0:eng english.srt --default-track-flag 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 IDS

  Regular track IDs

Sommige opties voor mkvmerge(1) hebben een spoor ID nodig, om aan te geven 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
    Track ID 0: video (V_MS/VFW/FOURCC, DIV3)
    Track ID 1: 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 opties 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.

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

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

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.

  Special track IDs

There are several IDs that have special meaning and do not occur in the identification output.

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

The special track ID '-2' refers to the chapters in a source file. Currently only the --sync option uses this special ID. As an alternative to --sync -2:... the option --chapter-sync ... can be used.

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.

  Introductie

Alle teksten in Matroska 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 elk karakter te zetten naar UTF-8. Teruggekoppeld betekend dit ook, dat mkvmerge(1)'s uitvoer terug geconverteerd moet worden naar die karakter set van UTF-8, b.v. als een niet Engelse vertaling is gebruikt met --ui-languages of voor de originele tekst uit een Matroska bestand.

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

  Byte order markers (BOM)

Tekst bestanden die starten met BOM (byte volgorde markering) zijn al gecodeerd in de vertegenwoordiging van UTF. mkvmerge(1) ondersteund éé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.

  Linux and Unix-like systems including macOS

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 de apparaat/houder.

  Windows

On Windows the default character set used for converting text files is determined by a call to the GetACP() system call.

Reading the command line is done with the GetCommandLineW() function which already returns a Unicode string. Therefore the option --command-line-charset is ignored on Windows.

Output to the console consists of three scenarios:

    1. If the output is redirected with the option --redirect-output then the default charset is UTF-8. This can be changed with --output-charset.

    2. If the output is redirected with cmd.exe itself, e.g. with mkvinfo file.mkv > info.txt, then the charset is always UTF-8 and cannot be changed.

    3. Otherwise (when writing directly to the console) the Windows function WriteConsoleW() is used and the option --output-charset is ignored. The console should be able to output all Unicode characters for which the corresponding language support is installed (e.g. Chinese characters might not be displayed on English Windows versions).

  Command line options

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

    • --sub-charset voor tekst ondertitels en tekst ondertitel sporen opgeslagen in de houder formaat waarvan de karakter set niet onomstotelijk 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 onomstotelijk 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 ingaven op de commandoregel,

    • --output-charset for all strings written to the console or to a file if the output has been redirected with the --redirect-output option. On non-Windows systems the default for the output charset is the system's current charset. On Windows it defaults to UTF-8 both for redirecting with --redirect-output and with cmd.exe itself, e.g. mkvinfo file.mkv > info.txt.

OPTIE BESTANDEN

Een optiebestand is een mkvmerge(1) bestand; waaruit extra commandoregel argumenten gelezen kunnen worden Dit kan worden gebruikt om bepaalde beperkingen van het dos scherm of het besturingssysteem bij het uitvoeren van externe programma's zoals een beperkte opdrachtregel lengte te omzeilen.

An option file contains JSON-formatted data. Its content must be a valid JSON array consisting solely of JSON strings. The file's encoding must be UTF-8. The file should not start with a byte order marker (BOM), but if one exists, it will be skipped.

The rules for escaping special characters inside JSON are the ones in the official JSON specification, RFC 7159[4].

The option file's name itself must be specified as a command line argument prefixed with a '@' character.

The command line 'mkvmerge -o "my file.mkv" -A "a movie.avi" sound.ogg' could be converted into the following JSON option file called e.g. 'options.json':

    [
      "-o",
      "c:\\Matroska\\my file.mkv",
      "--title",
      "#65",
      "-A",
      "a movie.avi",
      "sound.ogg"
    ]

The corresponding command would then be 'mkvmerge @options.json'.

BESTAND LINKEN

Matroska 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 segmenten. En de meeste bestanden bevatten alleen één Matroska segment de volgende uitleg gebruikt de term 'bestand linken' hoewel 'segment linken' meer op zijn plaats zou zijn.

Elk segment wordt geïdentificeerd 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 de '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 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 language (taal) en de default 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 bestand houden of je gebruikt SSA ondertitels en je wilt een speciaal TrueType lettertype(n) gebruiken welke zeldzaam zijn. In deze gevallen kan je deze bestanden vastmaken aan het Matroska bestand. Zij zullen niet enkel bijgevoegd worden aan het bestand maar er ingevoegd worden. Een af speler kan deze bestanden tonen (de 'foto' gevallen) of hen gebruiken om de ondertitels te genereren (de 'TrueType lettertype' gevallen).

Hier is een voorbeeld hoe een foto en een TrueType 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-mime-type application/octet-stream \
      --attach-file really_cool_font.ttf

Als een Matroska bestandsbijlage bevat en is gebruikt als een invoer bestand dan zal mkvmerge(1) de bijlage kopiëren 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 hoofdstuk systeem is krachtiger dan het oude bekende systeem van OGM bestanden. De volledige specificatie kan gevonden worden op de Matroska[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 gebaseerd hoofdstuk format welke alle Matroska's hoofdstuk functionaliteiten ondersteunt.

Apart from dedicated chapter files mkvmerge(1) can also read chapters from other file formats (e.g. MP4, Ogg, Blu-rays or DVDs).

  Een eenvoudig hoofdstuk formaat

Dit formaat bestaat uit twee paren van regels die respectievelijk starten met 'CHAPTERxx=' en 'CHAPTERxxNAME='. De eerste bevat de start tijd code 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) will transform every pair or lines into one Matroska ChapterAtom. It does not set any ChapterTrackNumber which means that all chapters apply to all tracks in the file.

Omdat dit een tekst bestand is kan karakter set conversie nog nodig zijn. Zie de sectie over: Tekst bestanden en karakter set conversies 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 deze 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 mogen ingesteld worden

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

Hieronder vindt u de ondersteunde XML-markeringen, hun data types en, in voorkomend geval, het geldige bereik voor hun waarden:

    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)

  Reading chapters from Blu-rays

mkvmerge(1) can read chapters from unencrypted Blu-rays. For that you can use the path to one of the MPLS play lists with the --chapters parameter.

Example: --chapters /srv/blurays/BigBuckBunny/BDMV/PLAYLIST/00001.mpls

  Reading chapters from DVDs

When MKVToolNix is compiled with the libdvdread library, mkvmerge(1) can read chapters from DVDs. For that you can use the path to one of the folders or files on the DVD with the --chapters parameter. As DVDs can contain more than one title and each title has its own set of chapters, you can append a colon and the desired title number to the end of the file name argument. The title number defaults to 1.

Example: --chapters /srv/dvds/BigBuckBunny/VIDEO_TS:2

  Algemene opmerkingen

Bij het splitsen van bestanden dan zal mkvmerge(1) tevens de hoofdstukken juist bijstellen. Dit betekent, 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 kopiëren van Matroska bronbestanden tenzij dit expliciet is uitgezet met de --no-chapters optie. De hoofdstukken van alle bronnen (Matroska bestanden, Ogg bestanden, MP4 bestanden, hoofdstuk tekst bestanden) worden gewoonlijk niet samengevoegd maar eindigen als een gescheiden ChapterEditions. Alleen wanneer de hoofdstukken worden gelezen van verschillende Matroska 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's tag system is similar to that of other containers: a set of KEY=VALUE pairs. However, in Matroska these tags can also be nested, and both the KEY and the VALUE are elements of their own. The example file example-tags-2.xml shows how to use this system.

  Gebied van de markeringen

Matroska 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 specificaties[5] geeft meer informatie over dit feit.

Eén belangrijk feit is, dat markeringen gelinkt zijn naar sporen of hoofdstukken met de Targets Matroska 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 bestandsformat) of welke zijn gekopieerd van een bronbestand, als de sporen bronbestand een Matroska 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 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 wilt 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 gebaseerde markeer bestand format. Het format is rijkelijk gedocumenteerd op de Matroska[5] specificaties. Beide, zowel het binaire evenals de bron distributies van MKVToolNix komen met een voorbeeld bestand genaamd example-tags-2.xml welke simpelweg alle bekende markeringen opsomt, welke gebruikt kunnen worden als basis voor 'echte leven' markeringsbestanden.

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 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 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 markeer specificaties. Aangezien in mkvmerge(1) dit systeem niet meer wordt ondersteund, worden deze typen hier niet beschreven.

  Bekende markeringen voor het XML bestandsformaat

Hieronder vindt u de ondersteunde XML-markeringen, hun data types en, in voorkomend geval, het geldige bereik voor hun waarden:

    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)

SEGMENT INFORMATIE

Met een segment informatie XML bestand is het mogelijk om bepaalde waarden in te stellen in het "segment informatie" kop veld van een Matroska bestand. Al deze waarden kunnen niet worden ingesteld via andere commando regel opties.

Overige "segment informatie" kopvelden kunnen gezet worden via de commandoregel opties maar niet via een XML bestand. Inclusief b.v. de --title en de --timestamp-scale opties.

Er zijn nog andere elementen die kunnen worden ingesteld noch via commandoregel opties, noch via de XML-bestanden. Deze bevatten de volgende elementen: DateUTC (ook bekend als "muxing date"), MuxingApp, WritingApp en Duration. Ze worden altijd gezet door mkvmerge(1) zelf.

Hieronder vindt u de ondersteunde XML-markeringen, hun data types en, in voorkomend geval, het geldige bereik voor hun waarden:

    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 BESTAND LAYOUT

Het Matroska 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 TIJD CODE 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) afzonderlijk creëert per Matroska blok. Voor video is dit exact één beeld, voor audio is dit één pakket van het specifieke audio type b.v. voor AC-3 zou dit een pakket moeten zijn inhoudende 1536 voorbeelden.

Tijd code 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 ... --timestamps 0:my_timestamps.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.

  Tijd code 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:

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

  Tijd code bestandsformaat v2

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

    # timestamp format v2
    0
    40
    80

  Tijd code bestandsformaat 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:

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

  Tijd code bestandsformaat 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) ten miste één waarschuwing uitgevaardigd, maar het samenvoegen ging door. Een waarschuwing gaat vooraf met de tekst 'Waarschuwing:'. Afhankelijk van de 'tegengekomen' kwesties kan het resultaat 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.

OMGEVINGSVARIABELEN

mkvmerge(1) gebruikt de standaard variabelen vanuit het systeem locatie (b.v. LANG en de LC_* family). Extra variabelen:

MKVMERGE_DEBUG, MKVTOOLNIX_DEBUG and its short form MTX_DEBUG
    De inhoud wordt behandeld alsof het via de --debug optie gepasseerd is.

MKVMERGE_ENGAGE, MKVTOOLNIX_ENGAGE and its short form MTX_ENGAGE
    De inhoud wordt behandeld alsof het via de --engage optie gepasseerd is.

ZIE OOK

mkvinfo(1), mkvextract(1), mkvpropedit(1), mkvtoolnix-gui(1)

WWW

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

AUTEUR

Moritz Bunkus <moritz@bunkus.org>
    Ontwikkelaar

OPMERKINGEN

1.  Matroska
    https://www.matroska.org/

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

3.  mkvmerge-identification-output-schema-v17.json
    https://mkvtoolnix.download/doc/mkvmerge-identification-output-schema-v17.json

4.  RFC 7159
    https://tools.ietf.org/html/rfc7159

5.  De Matroska specificaties
    https://www.matroska.org/technical/specs/index.html

6.  MKVToolNix
    https://mkvtoolnix.download/