mkvpropedit -- Modificeren van eigenschappen van een bestaande Matroska(tm) bestanden zonder een volledige samenvoeging

# 1. Beknopte inhoudsbeschrijving

mkvpropedit options {source-filename} {actions}

# 2. Beschrijving

Dit programma analyseert een bestaand Matroska(tm) bestand en kan sommige eigenschappen veranderen. Dan schrijft het deze veranderingen naar het bestaande bestand. Onder de eigenschappen die kunnen worden veranderd, zijn de segment informatie elementen (b.v. de titel) en de spoor koppen (b.v.de taal code, 'standaard spoor' markering of de naam).

Opties:

Option | Description
--- | ---
-l, --list-property-names | Lijst alle bekende bewerkbare eigenschap namen, hun type (string, integer, boolean etc) en een korte beschrijving. Nadien stopt het programma. Daarom hoeft de parameter source-filename niet te worden ingegeven.
-p, --parse-mode mode | Stelt de ontleedt mode in. De parameter 'mode' kan zijn of 'fast' (wat ook standaard is) of 'full'. De 'fast' mode ontleedt niet het gehele bestand, maar gebruikt de meta zoek elementen voor lokaliseren van de benodigde elementen van een bron bestand. In 99% van alle gevallen is dat voldoende. Maar voor bestanden die geen meta zoek element bevatten of zij die beschadigd zijn, zou de gebruiker moeten opgeven de 'full' ontleedt mode. Een volledige scan kan enige minuten duren terwijl een snelle scan slechts enkele seconden duurt.

Acties die van doen zijn met sporen en segment informatie eigenschappen:

Option | Description
--- | ---
-e, --edit selector | Zet de Matroska(tm) bestand sectie (segment informatie of bepaalde sporen koppen) die alle volgen voeg toe, zet en verwijder acties die er op werken. Deze optie kan meerdere keren worden gebruikt om wijzigingen aan meer dan één element te maken. Standaard bewerkt mkvpropedit(1) de segment informatie sectie

Zie de sectie over: Bewerk selecteurs/kiezers voor een volledige beschrijving van de ingaven.

-a, --add name=value | Voegt eigenschap name toe met de waarde value. De eigenschap wordt toegevoegd zelfs wanneer deze reeds bestaat. Opmerking: dat de meeste eigenschappen uniek zijn en niet nog een keer mogen voorkomen.
-s, --set name=value | Zet alle voorgekomen van de eigenschap name naar de waarde value. Als een dergelijke eigenschap niet bestaat dan wordt deze toegevoegd.
-d, --delete name | Verwijdert alle voorgekomen eigenschappen name. Opmerking: sommige eigenschappen zijn vereist en kunnen niet worden verwijderd.

Acties die van doen zijn met markeringen en hoofdstukken:

Option | Description
--- | ---
-t, --tags selector:filename | Markeringen toevoegen of vervangen in het bestand met degene van filename of verwijder ze als filename leeg is. mkvpropedit(1) leest dezelfde XML markeer format die mkvmerge(1) ook inleest. De selector moet één van de woorden all, global of track zijn. Voor all zal mkvpropedit(1) alle markeringen vervangen of verwijderen in een bestand. Met global worden alléén globale markeringen vervangen of verwijderd.

Met track vervangt mkvpropedit(1) markeringen van een specifiek spoor. Als extra leest het de markeringen van filename en worden toegewezen aan hetzelfde spoor. Het spoor is gespecificeerd op dezelfde manier bewerk selecteurs zijn gespecificeerd (zie hieronder), b.v. --tags track:a1:new-audio-tags.xml.

--add-track-statistics-tags | Calculates statistics for all tracks in a file and adds new statistics tags for them. If the file already contains such tags then they'll be updated.
--delete-track-statistics-tags | Deletes all existing track statistics tags from a file. If the file doesn't contain track statistics tags then it won't be modified.
-c, --chapters filename | Toevoegen of vervangen van hoofdstukken in het bestand met degene van filename of verwijder ze als filename leeg is. mkvpropedit(1) leest dezelfde XML en simpele hoofdstukformaten die mkvmerge(1) ook inleest.

Acties voor afhandelen van bijlagen:

Option | Description
--- | ---
--add-attachment filename | Voegt een nieuwe bijlage van filename. Als de optie --attachment-name is gebruikt voorafgaand tot deze optie, wordt die waarde gebruikt als vervanging van de bijlage naam. Anders wordt het verkregen uit filename. Als de optie --attachment-dmime-type is gebruikt voorafgaand tot deze optie, wordt die waarde gebruikt als vervanging van het MIME type. Anders wordt het automatisch gedetecteerd van de inhoud van filename.

Als de optie --attachment-description is gebruikt voorafgaand tot deze optie, wordt die waarde gebruikt als vervanging van de bijlage beschrijving. Anders wordt er géén beschrijving gezet.

If the option --attachment-uid has been used prior to this option then its value is used as the new attachment's UID. Otherwise a random UID will be generated automatically.

--replace-attachment selector:filename | Vervangt één of meer bijlage(n) die overeenkomen met selector met het bestand filename. Indien meer dan één bestand overeenkomt met selector dan wordt al hun inhoud vervangen met de inhoud van filename. De keuze kan vier vormen hebben. Ze worden in de sectie hieronder uitgelegd bijlage keuze.

If the option --attachment-name has been used prior to this option then its value is set as the new name for each modified attachment. Otherwise the names aren't changed.

If the option --attachment-mime-type has been used prior to this option then its value is set as the new MIME type for each modified attachment. Otherwise the MIME types aren't changed.

If the option --attachment-description has been used prior to this option then its value is set as the new description for each modified attachment. Otherwise the descriptions aren't changed.

If the option --attachment-uid has been used prior to this option then its value is set as the new UID for each modified attachment. Otherwise the UIDs aren't changed.

--update-attachment selector | Sets the properties of one or more attachments that match selector. If more than one existing attachment matches selector then all of their properties will be updated. De keuze kan vier vormen hebben. Ze worden in de sectie hieronder uitgelegd bijlage keuze.

If the option --attachment-name has been used prior to this option then its value is set as the new name for each modified attachment. Otherwise the names aren't changed.

If the option --attachment-mime-type has been used prior to this option then its value is set as the new MIME type for each modified attachment. Otherwise the MIME types aren't changed.

If the option --attachment-description has been used prior to this option then its value is set as the new description for each modified attachment. Otherwise the descriptions aren't changed.

If the option --attachment-uid has been used prior to this option then its value is set as the new UID for each modified attachment. Otherwise the UIDs aren't changed.

--delete-attachment selector | Verwijdert één of meer bijlagen die overeenkomen met selector. De keuze kan vier vormen hebben. Ze worden in de sectie hieronder uitgelegd bijlage keuze.

Opties voor bijlage acties:

Option | Description
--- | ---
--attachment-name name | Stelt de te gebruiken naam in voor het volgende --add-attachment of --replace-attachment uitvoering.
--attachment-mime-type mime-type | Zet de te gebruiken MIME type voor het volgende --add-attachment of --replace-attachment uitvoering.
--attachment-description description | Zet de te gebruiken beschrijving voor het volgende --add-attachment of --replace-attachment uitvoering.
--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 adding new attachments and replacing existing attachments, but only if the new MIME type isn't specified. Other existing attachments aren't changed.

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

Andere opties:

Option | Description
--- | ---
--disable-language-ietf | Normally when the user requests changes to the 'language' track header property, mkvpropedit(1) will apply the same change to the new LanguageIETF track header element in addition to the legacy Language element. If this option is used, the change is only applied to the legacy Language element.

This option does not affect changes requested via the 'language-ietf' track header property.

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

This normalization is only applied to elements that are actually changed:

- When editing track headers only those track language elements that are set via edit specifications are affected. Languages of tracks that aren't edited aren't changed. Editing a track but setting only properties other than the language won't affect the language either.

- When editing chapters all language elements of all chapter elements are affected as existing chapters are always fully replaced.

- When editing tags only the language elements of the tags that are actually replaced are affected. For example, when you replace global tags then existing track tags aren't affected.

The best way to normalize all existing language tags in a file is to remux it with mkvmerge(1) and set its '--normalize-language-ietf' option to the desired mode.

--command-line-charset (karakterset) | Plaatst het karakter set om de reeksen om te zetten die vanaf de commandoregel worden opgegeven. Standaard wordt gebruikt het karakter set die afhankelijk is van wat er in uw besturingssysteem staat aangegeven (locatie).
--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.
--no-bom | Normally text files that are created & encoded in one of the UTF variants will start with a byte order marker (BOM). Using this option disables writing that byte order marker.
--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.
--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 mkvpropedit --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.
-v, --verbose | Wees uitgebreid en toon alle belangrijke Matroska(tm) elementen zoals ze zijn gelezen.
-h, --help | Toon gebruik informatie en sluit af.
-V, --version | Toon versie informatie en sluit af.
@options-file.json | Reads additional command line arguments from the file options-file. For a full explanation on the supported formats for such files see the section called "Option files" in the mkvmerge(1) man page.

# 3. Bewerk selecteurs/kiezers

De optie --edit zet het Matroska(tm) bestand sectie (segment informatie of de bepaalde sporen knoppen) die alle volgen voeg toe, zet en verwijder acties die er op werken. Dit blijft geldig totdat de volgende optie --edit is gevonden. Het argument naar deze optie wordt genoemd de bewerk selecteur/kiezer.

Standaard bewerkt mkvpropedit(1) de segment informatie sectie

## 3.1. Segment informatie

Het segment informatie kan worden geselecteerd met één van deze drie woorden: 'info', 'segment_info' of 'segmentinfo'. het bevat eigenschappen zoals, segment titel of het segment UID.

## 3.2. Spoor koppen

Spoor koppen kunnen worden geselecteerd met een ietwat complexere selectie. Alle variaties starten met 'track:'. De spoor kop eigenschappen bevatten elementen zoals de taal code, 'default track' markering of het spoor naam.

Option | Description
--- | ---
track:n | Als de parameter n een nummer is dan zal het n'de spoor worden geselecteerd. De spoor volgorde is hetzelfde als mkvmerge(1)'s --identify optie uitvoert. Nummering start op 1.
track:t n | Als de parameter start met één karakter t gevolgd door een n dan zal het de n'de spoor van een specifiek spoor type geselecteerd worden. Het spoor type parameter t moet één van deze vier karakters zijn: 'a' voor een audio spoor, 'b' voor een knop spoor, 's' voor een ondertitel spoor en 'v' voor een video spoor. De spoor volgorde is hetzelfde wanneer mkvmerge(1)'s --identify de optie uitvoert.

Nummering start op 1.

track:=uid | If the parameter starts with a '=' followed by a number uid, the track whose track UID element equals the given uid will be selected. Track UIDs can be obtained with mkvinfo(1).
track:@number | If the parameter starts with a '@' followed by a number number, the track whose track number element equals this number will be selected. Track numbers can be obtained with mkvinfo(1).

## 3.3. Opmerkingen

Door de aard van de spoor bewerk selecteur/kiezer, is het mogelijk dat verschillende selecteurs/kiezers eigenlijk overeenkomen met dezelfde spoor koppen. In zulke gevallen, zullen alle acties voor die bewerk selecteurs/kiezers in die volgorde worden gecombineerd en uitgevoerd worden in de volgorde waarin ze zijn opgegeven op de commandoregel.

# 4. Bijlage(n) keuze

Een bijlage keuze word op twee verschillende manieren gebruikt --replace-attachment en --delete-attachment. het kan één van de volgende vier vormen hebben:

1. Selectie op bijlage-id. In deze vorm is de keuze een gewoon getal, de bijlage ID als uitgevoerd door mkvmerge(1) 's identificatie commando.

2. Keuze op bijlage UID (uniek ID). In deze vorm van keuze is het "is (=)" teken = gevolg door een nummer, de bijlage's unieke ID als uitvoer door mkvmerge(1)'s beknopte identificatie commando.

3. Keuze via bestandsnaam. In deze vorm is de keuze het letterlijke woord naam: gevolg door een bestaande bijlage naam. Als deze keuze is geselecteerd met --replace-attachment dan moeten dubbele punten binnen de naam overeen te laten komen worden ingesloten als \c.

4. Selecteren op MIME type. In deze vorm is de keuze het letterlijke woordmime-type: gevolg door een bestaande MIME type bijlage. Indien deze keuze is geselecteerd met --replace-attachment dan om dubbele punten overeen te laten komen binnenin het MIME-type moeten worden overgeslagen als \c.

# 5. Language handling

mkvpropedit(1) mostly tries to do the right thing by default. Therefore changes to the language property will cause mkvpropedit(1) to apply the same change to both the new "LanguageIETF" element as well as the old "Language" element similar to how mkvmerge(1) applies the language to both elements. For example, when using mkvpropedit movie.mkv --edit track:2 --set language=zh-TW the "LanguageIETF" element will be set to zh-TW and the old "Language" element to chi.

Additionally there's a new track header property named language-ietf that can be set or removed. Changes to this property only apply to the new "LanguageIETF" track header element. A caveat is that the old "Language" track header element is a mandatory element in Matroska — meaning even if it isn't present in the file it still has an implied value. When the user only sets the language-ietf property but not the language property, mkvpropedit(1) will therefore add the old "Language" element in certain cases & set it to und (meaning "undetermined") as the user didn't specify a value for it.

When reading XML chapter or tag files mkvpropedit(1) works like mkvmerge(1) does.

The creation of the new elements can be disabled completely with the command-line option `--disable-language-ietf` which operates on all three new elements.

You can chose the normalization method applied to extended language sub-tags with the parameter --normalize-language-ietf.

# 6. Voorbeelden

Het volgende voorbeeld bewerkt een bestand genaamd 'film.mkv'. Het zet het segment titel en modificeert de taal code van een audio en ondertitel spoor. Opmerking: Dat dit voorbeeld kan worden verkort door het weglaten van de eerste --edit optie, omdat bewerken van het segment informatie element in elk geval standaard is voor alle opties welke worden gevonden voor de eerste --edit optie.

    $ mkvpropedit movie.mkv --edit info --set "title=The movie" --edit track:a1 --set language=fre --edit track:a2 --set language=ita

Het tweede voorbeeld, verwijdert de 'standaard spoor markering' van het eerste ondertitel spoor en plaatst het voor de tweede. Opmerking: Dat mkvpropedit(1), integenstelling tot mkvmerge(1), niet instelt de 'standaard spoor markering' van andere sporen naar '0' als het automatisch is ingesteld op '1' voor een verschillend spoor.

    $ mkvpropedit movie.mkv --edit track:s1 --set flag-default=0 --edit track:s2 --set flag-default=1

Vervangen van markeringen voor het tweede ondertitelspoor in een bestand zou lijken op dit:

    $ mkvpropedit movie.mkv --tags track:s2:new-subtitle-tags.xml

Verwijderen van alle markeringen vereist het weglaten van de bestandsnaam:

    $ mkvpropedit movie.mkv --tags all:

Hoofdstukken vervangen in een bestand zou lijken op dit:

    $ mkvpropedit movie.mkv --chapters new-chapters.xml

Verwijderen van alle hoofdstukken vereist het weglaten van de bestandsnaam:

    $ mkvpropedit movie.mkv --chapters ''

Toevoegen van een lettertype bestand (Arial.ttf) als een bijlage:

    $ mkvpropedit movie.mkv --add-attachment Arial.ttf

Toevoegen lettertype bestand (89719823.ttf) als een bijlage en geeft enige informatie of het werkelijk een Arial letterype is:

    $ mkvpropedit movie.mkv --attachment-name Arial.ttf --attachment-description 'Het Arial lettertype als een TrueType letter' --attachment-mime-type application/x-truetype-font --add-attachment 89719823.ttf

Vervangt een gekoppeld lettertype (Comic.ttf) bestand met een andere (Arial.ttf):

    $ mkvpropedit movie.mkv --attachment-name Arial.ttf --attachment-description 'Het Arial lettertyupe als een TrueType letter' --replace-attachment name:Comic.ttf:Arial.ttf

Verwijderen tweede bijlage bestand wat het ook mag zijn:

    $ mkvpropedit movie.mkv --delete-attachment 2

Verwijderen alle bijlage lettertypen op MIME type:

    $ mkvpropedit movie.mkv --delete-attachment mime-type:application/x-truetype-font

# 7. Verlaat codes

mkvpropedit(1) verlaat met één van drie verlaat codes:

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

- 1 -- In dit geval heeft mkvpropedit(1) minstends één waarschuwing uitgegeven, maar extractie is doorgegaan. Een waarschuwing wordt vooraf bepaald 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. mkvpropedit(1) breekt direct af na het geven van dit waarschuw bericht. Fout berichten, bereik van een verkeerd commandoregel argument over lees/schrijf fouten naar een 'gebroken' bestanden.

# 8. Tekst bestanden en karakter set conversies

For an in-depth discussion about how all tools in the MKVToolNix suite handle character set conversions, input/output encoding, command line encoding and console encoding please see the identically-named section in the mkvmerge(1) man page.

# 9. Omgevingsvariabelen

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

Option | Description
--- | ---
MKVPROPEDIT_DEBUG, MKVTOOLNIX_DEBUG and its short form MTX_DEBUG | De inhoud wordt behandeld alsof het via de --debug optie gepasseerd is.
MKVPROPEDIT_ENGAGE, MKVTOOLNIX_ENGAGE and its short form MTX_ENGAGE | De inhoud wordt behandeld alsof het via de --engage optie gepasseerd is.

# 10. Zie ook

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

# 11. WWW

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