mkvpropedit -- Endre egenskapene til eksisterende Matroska(tm) filer uten en fullstendig demultipleksing

# 1. Sammendrag

mkvpropedit alternativer {kildefilnavn} {handlinger}

# 2. Beskrivelse

Dette programmet analyserer en eksisterende Matroska(tm) fil og endrer noen av dens egenskaper. Deretter skriver den disse endringene til den eksisterende filen. Blant egenskapene som kan endres, er segmentinformasjonselementene (f.eks. tittelen) og spordatahodene (f.eks. språkkoden, 'standardspor'-flagget eller navnet).

Alternativer:

Option | Description
--- | ---
-l, --list-property-names | Viser alle kjente og redigerbare egenskapsnavn, deres type (streng, heltall, boolsk osv.) og en kort beskrivelse. Programmet avsluttes etterpå. Parameteren kilde-filnavn trenger derfor ikke å angis.
-p, --parse-mode modus | Angir analysemodusen. Parameteren 'modus' kan enten være 'fast' (som også er standard) eller 'full'. 'Rask'-modus analyserer ikke hele filen, men bruker metasøkelementene for å finne de nødvendige elementene i en kildefil. I 99% av alle tilfeller er dette nok. Men for filer som ikke inneholder metasøkingselementer eller som er skadet, må brukeren kanskje sette "full"-analysemodus. En full skanning av en fil kan ta et par minutter, mens en rask skanning bare tar sekunder.

Handlinger som omhandler egenskaper for spor- og segmentinformasjon:

Option | Description
--- | ---
-e, --edit selektor | Angir Matroska(tm) fildelen (segmentinformasjon eller datahodene til et bestemt spor) som alle etterfølgende legg til, angi og slett-handlinger fungerer på. Dette alternativet kan brukes flere ganger for å gjøre endringer i mer enn ett element. Som standard vil mkvpropedit(1) redigere segmentinformasjonsdelen.

Se avsnittet om rediger-selektorer for en fullstendig beskrivelse av syntaksen.

-a, --add navn=verdi | Legger til en egenskap navn med verdien verdi. Egenskapen vil bli lagt til selv om en slik egenskap allerede eksisterer. Vær oppmerksom på at de fleste egenskaper er unike og ikke kan forekomme mer enn én gang.
-s, --set navn=verdi | Setter alle forekomster av egenskapen navn til verdien verdi. Hvis ingen slik egenskap eksisterer, vil den bli lagt til.
-d, --delete navn | Sletter alle forekomster av egenskapen navn. Vær oppmerksom på at enkelte egenskaper er obligatoriske og ikke kan slettes.

Handlinger som omhandler tagger og kapitler:

Option | Description
--- | ---
-t, --tags selektor:filnavn | Legg til eller erstatt tagger i filen med de fra filnavnet, eller fjern dem hvis filnavnet er tomt. mkvpropedit(1) leser det samme XML-taggformatet som mkvmerge(1) leser også. Selektoren må være et av ordene all, global eller track. For all vil mkvpropedit(1) erstatte eller fjerne alle tagger i en fil. Med global vil bare globale tagger bli erstattet eller fjernet.

Med track vil mkvpropedit(1) erstatte tagger for et bestemt spor. I tillegg vil taggene som leses fra filnavn bli tilordnet samme spor. Sporet spesifiseres på samme måte som rediger-selektorer spesifiseres (se nedenfor), f.eks. --tags track:a1:nye-lyd-tagger.xml.

--add-track-statistics-tags | Beregner statistikk for alle spor i en fil og legger til nye statistikktagger for dem. Hvis filen allerede inneholder slike tagger, blir de oppdatert.
--delete-track-statistics-tags | Sletter alle eksisterende sporstatistikktagger fra en fil. Hvis filen ikke inneholder sporstatistikktagger, blir den ikke endret.
-c, --chapters filnavn | Legg til eller erstatt kapitler i filen med de fra filnavnet, eller fjern dem hvis filnavnet er tomt. mkvpropedit(1) leser samme XML og enkle kapittelformater som mkvmerge(1) også leser.

Handlinger for håndtering av vedlegg:

Option | Description
--- | ---
--add-attachment filnavn | Legg til et nytt vedlegg fra filnavn. Hvis alternativet --attachment-name har blitt brukt før dette alternativet, brukes verdien som navnet på det nye vedlegget. Ellers er det avledet fra filnavn. Hvis alternativet --attachment-mime-type er brukt før dette alternativet, brukes verdien som MIME-typen for det nye vedlegget. Ellers oppdages det automatisk fra innholdet i filnavnet.

Hvis alternativet --attachment-description har blitt brukt før dette alternativet, brukes verdien som beskrivelsen av det nye vedlegget. Ellers vil ingen beskrivelse bli satt.

Hvis alternativet --attachment-uid har blitt brukt før dette alternativet, brukes verdien som det nye vedleggets UID. Ellers genereres en tilfeldig UID automatisk.

--replace-attachment selektor:filnavn | Erstatter ett eller flere vedlegg som samsvarer selektor med filen filnavn. Hvis mer enn ett eksisterende vedlegg samsvarer med selektor, erstattes alt innholdet av innholdet i filnavnet. Selektoren kan ha en av fire former. De er forklart nedenfor i avsnittet vedlegg-selektorer.

Hvis alternativet --attachment-name har blitt brukt før dette alternativet, angis verdien som det nye navnet for hvert endret vedlegg. Ellers endres ikke navnene.

Hvis alternativet --attachment-mime-type har blitt brukt før dette alternativet, angis verdien som den nye MIME-typen for hvert endret vedlegg. Ellers endres ikke MIME-typene.

Hvis alternativet --attachment-description har blitt brukt før dette alternativet, angis verdien som den nye beskrivelsen for hvert modifisert vedlegg. Ellers endres ikke beskrivelsene.

Hvis alternativet --attachment-uid har blitt brukt før dette alternativet, angis verdien som den nye UID-en for hvert endrede vedlegg. Ellers endres ikke UID-ene.

--update-attachment selektor | Angir egenskapene for ett eller flere vedlegg som samsvarer med selektoren. Hvis mer enn ett eksisterende vedlegg samsvarer med selektoren, oppdateres alle egenskapene. Selektoren kan ha en av fire former. De er forklart nedenfor i avsnittet vedlegg-selektorer.

Hvis alternativet --attachment-name har blitt brukt før dette alternativet, angis verdien som det nye navnet for hvert endret vedlegg. Ellers endres ikke navnene.

Hvis alternativet --attachment-mime-type har blitt brukt før dette alternativet, angis verdien som den nye MIME-typen for hvert endret vedlegg. Ellers endres ikke MIME-typene.

Hvis alternativet --attachment-description har blitt brukt før dette alternativet, angis verdien som den nye beskrivelsen for hvert modifisert vedlegg. Ellers endres ikke beskrivelsene.

Hvis alternativet --attachment-uid har blitt brukt før dette alternativet, angis verdien som den nye UID-en for hvert endrede vedlegg. Ellers endres ikke UID-ene.

--delete-attachment selektor | Sletter ett eller flere vedlegg som samsvarer med selektoren. Selektoren kan ha en av fire former. De er forklart nedenfor i avsnittet vedlegg-selektorer.

Alternativer for vedleggshandlinger:

Option | Description
--- | ---
--attachment-name navn | Angir navnet som skal brukes for følgende --add-attachment- eller --replace-attachment-operasjon.
--attachment-mime-type mime-type | Angir MIME-typen som skal brukes for følgende --add-attachment- eller --replace-attachment-operasjon.
--attachment-description beskrivelse | Angir beskrivelsen som skal brukes for følgende --add-attachment- eller --replace-attachment-operasjon.
--enable-legacy-font-mime-types | Aktiverer bruk av eldre MIME-typer for visse typer skriftvedlegg. For eksempel vil 'application/x-truetype-font' bli brukt for TrueType-fonter i stedet for 'fonts/ttf'. Dette påvirker både å legge til nye vedlegg og erstatte eksisterende vedlegg, men bare hvis den nye MIME-typen ikke er angitt. Andre eksisterende vedlegg endres ikke.

De berørte MIME-typene er 'font/sfnt', 'font/ttf' og 'font/collection' som alle er tilordnet 'application/x-truetype-fonts' og 'font/otf' som er tilordnet 'application/vnd' .ms-opentype'.

Andre alternativer:

Option | Description
--- | ---
--disable-language-ietf | Vanligvis når brukeren ber om endringer i 'language'-spordatahodet-egenskapen, vil mkvpropedit(1) anvende den samme endringen på det nye LanguageIETF-spordatahodeelementet i tillegg til det eldre Language-elementet. Hvis dette alternativet brukes, blir endringen bare brukt på det eldre Language-elementet.

Dette alternativet påvirker ikke endringer forespurt via spordatahodeegenskapen 'language-ietf'.

--normalize-language-ietf modus | Gjør det mulig å normalisere alle IETF BCP 47-språktagger til enten deres kanoniske form med modus 'kanonisk', til deres utvidede språkundertagger dannes med modus 'extlang' eller slår den av med modus 'av'. Som standard brukes normalisering til den kanoniske formen.

I kanonisk form erstattes alle undertagger som det finnes foretrukne verdier for, med de foretrukne verdiene. Dette konverterer for eksempel 'zh-yue-jyutping' til 'yue-jyutping' eller 'fr-FX' til 'fr-FR'.

For undertaggene for utvidet språk bygges den kanoniske formen først. Deretter erstattes alle primærspråk som det finnes en utvidet språkundertagg for, med den utvidede språkundertaggen og prefikset. Dette konverterer for eksempel 'yue-jyutping' tilbake til 'zh-yue-jyutping', men har ingen effekt på 'fr-FR' da 'fr' ikke er en undertagg for utvidet språk.

Denne normaliseringen anvendes bare på elementer som faktisk endres:

- Når du redigerer spordatahoder, påvirkes bare sporspråkelementene som angis via redigeringsspesifikasjoner. Språk for spor som ikke redigeres, endres ikke. Hvis du redigerer et spor, men bare angir andre egenskaper enn språket, påvirkes heller ikke språket.

- Når du redigerer kapitler, påvirkes alle språkelementer i alle kapittelelementene, da eksisterende kapitler alltid erstattes fullstendig.

- Når du redigerer tagger, påvirkes bare språkelementene i taggene som faktisk erstattes. Når du for eksempel erstatter globale tagger, påvirkes ikke eksisterende sportagger.

Den beste måten å normalisere alle eksisterende språktagger i en fil er å multiplekse den med mkvmerge(1) og sette alternativet '--normalize-language-ietf' til ønsket modus.

--command-line-charset character-set | Angir tegnsettet for å konvertere strenger fra gitt på kommandolinjen. Den er standard til tegnsettet gitt av systemets gjeldende lokalitet.
--output-charset character-set | Angir tegnsettet som strenger konverteres til som skal sendes ut. Den er standard til tegnsettet gitt av systemets gjeldende lokalitet.
-r, --redirect-output filnavn | Skriver alle meldinger til filen filnavn i stedet for til konsollen. Selv om dette kan gjøres enkelt med omdirigering av utdata, er det tilfeller der dette alternativet er nødvendig: når terminalen tolker utdataene på nytt før du skriver den til en fil. Tegnsettet angitt med --output-charset er hedret.
--no-bom | Vanligvis vil tekstfiler som opprettes og kodes i en av UTF-variantene starte med en byterekkefølgemarkør (BOM). Bruk av dette alternativet deaktiverer skriving av denne byterekkefølgemarkøren.
--ui-language kode | Tvinger oversettelsene for språk- koden som skal brukes (eks. 'de_DE' for tyske oversettelser). Ved å skrive inn 'list' som koden vil føre til at programmet sender ut en liste over tilgjengelige oversettelser.
--abort-on-warnings | Ber programmet om å avbryte etter at den første advarselen er sendt ut. Programmets avslutningskode vil være 1.
--debug emne | Slå på feilsøking for en bestemt funksjon. Dette alternativet er bare nyttig for utviklere.
--engage funksjon | Slå på eksperimentelle funksjoner. En liste over tilgjengelige funksjoner kan bes med mkvpropedit --engage-list. Disse funksjonene er ikke ment å brukes i normale situasjoner.
--gui-mode | Slår på det grafiske grensesnittet. I denne modusen kan spesialformaterte linjer være utdata som kan fortelle et kontrollerende grafisk grensesnitt hva som skjer. Disse meldingene følger formatet '#GUI#melding'. Meldingen kan etterfølges av nøkkel/verdipar som i '#GUI#melding#nøkkel1=verdi1#nøkkel2=verdi2…'. Verken meldingene eller nøklene blir noen gang oversatt og sendes alltid ut på engelsk.
-v, --verbose | Vær detaljert og vis alle de viktige Matroska(tm) elementene mens de leses.
-h, --help | Vis bruksinformasjon og avslutt.
-V, --version | Vis versjonsinformasjon og avslutt.
@alternativer-fil.json | Leser flere kommandolinjeargumenter fra filen alternativer-fil. Hvis du vil ha en fullstendig forklaring på hvilke formater som støttes for slike filer, kan du se avsnittet "Alternativfiler" i mkvmerge(1) manualside.

# 3. Rediger-selektorer

--edit-alternativet angir Matroska(tm) fildelen (segmentinformasjon eller datahodene til et bestemt spor) som alle følgende add, set og delete handlinger opererer på. Dette forblir gyldig til neste --edit-alternativet er funnet. Argumentet til dette alternativet kalles redigeringsselektoren.

Som standard vil mkvpropedit(1) redigere segmentinformasjonsdelen.

## 3.1. Segmentinformasjon

Segmentinformasjonen kan velges med ett av disse tre ordene: 'info', 'segment_info' eller 'segmentinfo'. Den inneholder egenskaper som segmenttittelen eller segment-UID-en.

## 3.2. Spordatahoder

Spordatahoder kan velges med en litt mer kompleks selektor. Alle varianter starter med 'track:'. Egenskapene for sporhodet inkluderer elementer som språkkoden, 'standardspor'-flagget eller sporets navn.

Option | Description
--- | ---
track:n | Hvis parameteren n er et tall, velges det n-te sporet. Sporrekkefølgen er den samme som mkvmerge(1)s --identify-alternativutdata. Nummereringen starter på 1.
track:t n | Hvis parameteren starter med ett enkelt tegn t etterfulgt av en nvil n-te spor av en bestemt sportype vil bli valgt. Parameteren for sportype t må være en av disse fire tegnene: 'a' for et lydspor, 'b' for et knappsor, 's'for et undertekstspor og 'v' for et videospor. Sporrekkefølgen er den samme som mkvmerge(1)'s --identify-alternativet sender ut.

Nummereringen starter på 1.

track:=uid | Hvis parameteren starter med en '=' etterfulgt av en tall-uid, vil sporet hvis spor-UID-element tilsvarer den gitte uid-en, velges. Spor-UID-er kan fås med mkvinfo(1).
track:@tall | Hvis parameteren starter med et '@' etterfulgt av et tallnummer, vil sporet hvis spornummerelement tilsvarer dette nummeret bli valgt. Spornumre kan fås med mkvinfo(1).

## 3.3. Merknader

På grunn av sporredigeringsvelgernes natur er det mulig at flere selektorer faktisk samsvarer med de samme spordatahodene. I slike tilfeller vil alle handlinger for disse redigeringsvelgerne bli kombinert og utført i den rekkefølgen de er gitt på kommandolinjen.

# 4. Vedleggsvelgere

En vedleggsvelger brukes med de to handlingene --replace-attachment og --delete-attachment. Den kan ha en av følgende fire former:

1. Valg etter vedleggs-ID. I denne formen er velgeren ganske enkelt et tall, vedleggets ID som sendt ut av mkvmerge(1)s identifikasjonskommando.

2. Valg etter vedlegg-UID (unik ID). I denne formen er velgeren likhetstegnet = etterfulgt av et tall, vedleggets unike ID som utdata av mkvmerge(1)s ordrike identifikasjonskommando.

3. Valg etter vedleggsnavn. I denne formen er velgeren det bokstavelige navnet: etterfulgt av det eksisterende vedleggets navn. Hvis denne velgeren brukes med --replace-attachment, må kolon i navnet som skal samsvare, unnslippes som \c.

4. Valg etter MIME-type. I denne formen er velgeren det bokstavelige ordet mime-type: etterfulgt av det eksisterende vedleggets MIME-type. Hvis denne velgeren brukes med --replace-attachment, må koloner innenfor MIME-typen for å matche unnslippes som \c.

# 5. Språkhåndtering

mkvpropedit(1) prøver for det meste å gjøre det rette som standard. Derfor vil endringer i language-egenskapen føre til at mkvpropedit(1) anvender den samme endringen på både det nye "LanguageIETF"-elementet og det gamle "Language"-elementet på samme måte som mkvmerge(1) bruker språket på begge elementene. For eksempel, når du bruker mkvpropedit film.mkv --edit track: 2 --set language = zh-TW, vil "LanguageIETF" -elementet bli satt til zh-TW og det gamle "Language" -elementet til chi.

I tillegg er det en ny spordatahodeegenskap kalt language-ietf som kan settes eller fjernes. Endringer i denne egenskapen gjelder kun for det nye "LanguageIETF"-sporhodeelementet. En advarsel er at det gamle "Language" spordatahodeelementet er et obligatorisk element i Matroska - noe som betyr at selv om det ikke er til stede i filen, har det fortsatt en underforstått verdi. Når brukeren bare setter language-ietf-egenskapen, men ikke språkegenskapen, vil mkvpropedit(1) vil derfor legge til det gamle "language"-elementet i visse tilfeller & sette den til und (som betyr "ubestemt") siden brukeren ikke spesifiserte en verdi for den.

Når du leser XML-kapittel eller taggfiler fungerer mkvpropedit(1) som mkvmerge(1) gjør.

Opprettelsen av de nye elementene kan deaktiveres helt med kommandolinjealternativet '--disable-language-ietf' som opererer på alle tre nye elementene.

Du kan velge normaliseringsmetoden som brukes på utvidede språkundertagger med parameteren --normalize-language-ietf.

# 6. Eksempler

Følgende eksempel redigerer en fil kalt 'film.mkv'. Den angir segmenttittelen og endrer språkkoden til en lyd og et undertekstspor. Merk at dette eksemplet kan forkortes ved å utelate det første --edit-alternativet fordi redigering av segmentinformasjonselementet er standard for alle alternativene som finnes før det første --edit-alternativet uansett.

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

Det andre eksemplet fjerner 'standard sporflagg' fra det første undertekstsporet og angir det for det andre. Merk at mkvpropedit(1), i motsetning til mkvmerge(1), ikke setter 'standard sporflagg' for andre spor til '0' hvis den er satt til '1' for et annet spor automatisk.

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

Bytting av taggene for det andre undertekstsporet i en fil ser slik ut:

    $ mkvpropedit film.mkv --tags track:s2:nye-undertekst-tagger.xml

Hvis du fjerner alle tagger, må du utelate filnavnet:

    $ mkvpropedit film.mkv --tags all:

Erstatte kapitlene i en fil ser slik ut:

    $ mkvpropedit film.mkv --chapters nye-kapitler.xml

Fjerning av alle kapitler krever at du utelater filnavnet:

    $ mkvpropedit film.mkv --chapters ''

Legge til en fontfil (Arial.ttf) som et vedlegg:

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

Legge til en fontfil (89719823.ttf) som et vedlegg og gi litt informasjon siden det egentlig bare er Arial:

    $ mkvpropedit film.mkv --attachment-name Arial.ttf --attachment-description 'Arial-skriften som en TrueType skrift' --attachment-mime-type application/x-truetype-font --add-attachment 89719823.ttf

Bytte ut en vedlagt font (Comic.ttf) fil med en annen (Arial.ttf):

    $ mkvpropedit film.mkv --attachment-name Arial.ttf --attachment-description 'Arial-skrift som en TrueType skrift' --replace-attachment name:Comic.ttf:Arial.ttf

Sletting av den andre vedlagte filen, uansett hva den måtte være:

    $ mkvpropedit film.mkv --delete-attachment 2

Sletter alle vedlagte skrifter etter MIME-type:

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

# 7. Avslutningskoder

mkvpropedit(1) avsluttes med en av tre avslutningskoder:

- 0 -- Denne avslutningskoden betyr at endringen er fullført.

- 1 -- I dette tilfellet har mkvpropedit(1) sendt ut minst en advarsel, men endringen fortsatte. En advarsel er prefikset med teksten 'Advarsel:'. Avhengig av problemene som er involvert, kan de resulterende filene være ok eller ikke. Brukeren oppfordres til å sjekke både advarselen og resultatfilene.

- 2 -- Denne avslutningskoden brukes etter at det oppstod en feil. mkvpropedit(1) avbryter rett etter at feilmeldingen er sendt ut. Feilmeldinger varierer fra feil kommandolinjeargumenter over lese-/skrivefeil til ødelagte filer.

# 8. Tekstfiler og tegnsettkonverteringer

For en grundig diskusjon om hvordan alle verktøyene i MKVToolNix-pakken håndterer tegnsettkonverteringer, inndata- / utdatakoding, kommandolinjekoding og konsollkoding, se delen med identisk navn i mkvmerge(1) manualsiden.

# 9. Miljøvariabler

mkvpropedit(1) bruker standardvariablene som bestemmer systemets lokalitet (for eksempel LANG og LC_*-familien). Ytterligere variabler:

Option | Description
--- | ---
MKVPROPEDIT_DEBUG, MKVTOOLNIX_DEBUG og dens korte form MTX_DEBUG | Innholdet behandles som om det hadde blitt sendt via --debug-alternativet.
MKVPROPEDIT_ENGAGE, MKVTOOLNIX_ENGAGE og dens korte form MTX_ENGAGE | Innholdet behandles som om det hadde blitt sendt via --engage-alternativet.

# 10. Se også

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

# 11. WWW

Den nyeste versjonen finner du alltid på MKVToolNixs hjemmeside.