MKVPROPEDIT(1) Felhasználói parancsok MKVPROPEDIT(1)

mkvpropedit - Meglévő Matroska(TM) fájlok tulajdonságainak módosítása teljes remux nélkül

mkvpropedit [options] {source-filame} {actions}

Ez a program elemez egy meglévő Matroska(TM) fájlt, és módosítja annak néhány tulajdonságát. Ezután ezeket a módosításokat a meglévő fájlba írja. A módosítható tulajdonságok közé tartoznak a szegmensinformációs elemek (pl. a cím) és a sávcímek (pl. a nyelvi kód, az 'alapértelmezett sáv' jelző vagy a név).

Lehetőségek:

-l, --list-property-names

Felsorolja az összes ismert és szerkeszthető tulajdonság nevét, típusát (string, integer, boolean stb.) és rövid leírását. A program ezt követően kilép. Ezért a forrás-fájlnév paramétert nem kell megadni.

-p, --parse-mode mode

Beállítja az elemzési módot. A 'mode' paraméter lehet 'fast' (ami az alapértelmezett is) vagy 'full'. A 'fast' mód nem elemzi a teljes fájlt, hanem a meta seek elemeket használja a forrásfájl szükséges elemeinek megtalálására. Az esetek 99%-ában ez elegendő. De olyan fájlok esetében, amelyek nem tartalmaznak meta seek elemeket, vagy amelyek sérültek, a felhasználónak esetleg a 'full' elemzési módot kell beállítania. Egy fájl teljes átvizsgálása néhány percig is eltarthat, míg a gyors átvizsgálás csak másodperceket vesz igénybe.

A pálya- és szegmensinformációs tulajdonságokkal foglalkozó műveletek:

-e, --szerkesztés választó

Beállítja azt a Matroska(TM) fájlszakaszt (szegmensinformáció vagy egy adott sáv fejléc), amelyre a következő add, set és delete műveletek hatnak. Ez az opció többször is használható, hogy egynél több elemet módosítson.

Alapértelmezés szerint az mkvpropedit(1) szerkeszti a szegmensinformációs részt.

A szintaxis teljes leírását lásd a választók szerkesztése című részben.

-a, --add name=value

Hozzáad egy név tulajdonságot a érték értékkel. A tulajdonság akkor is hozzáadásra kerül, ha már létezik ilyen tulajdonság. Vegye figyelembe, hogy a legtöbb tulajdonság egyedi, és nem fordulhat elő többször.

-s, --set name=value

A név tulajdonság minden előfordulását a érték értékre állítja. Ha ilyen tulajdonság nem létezik, akkor hozzáadódik.

-d, --delete name

Törli a név tulajdonság összes előfordulását. Vegye figyelembe, hogy egyes tulajdonságok kötelezőek, és nem törölhetők.

Címkékkel és fejezetekkel foglalkozó műveletek:

-t, --tags selector:filename

A fájlban lévő címkéket a filename címkékkel egészíti ki vagy helyettesíti, vagy eltávolítja őket, ha a filename üres. mkvpropedit(1) ugyanazt az XML címkeformátumot olvassa, mint amit az mkvmerge(1) is.

A választó a all, global vagy track szavak egyikének kell lennie. A all esetén az mkvpropedit(1) az összes taget kicseréli vagy eltávolítja a fájlban. A global esetén csak a globális címkék lesznek kicserélve vagy eltávolítva.

A track mkvpropedit(1) egy adott trackhez tartozó címkéket cserél ki. Emellett a filename-ből beolvasott címkék ugyanahhoz a sávhoz lesznek rendelve. A sávot ugyanúgy kell megadni, ahogyan a szerkesztési szelektorok is megadhatók (lásd alább), pl. --tags track:a1:new-audio-tags.xml.

--add-track-statistics-tags

Kiszámítja a statisztikákat a fájlban lévő összes zeneszámra, és új statisztikai címkéket ad hozzá. Ha a fájl már tartalmaz ilyen címkéket, akkor azokat frissíti.

--delete-track-statistics-tags

Törli az összes meglévő pályastatisztikai címkét egy fájlból. Ha a fájl nem tartalmaz pályastatisztikai címkéket, akkor nem módosítja.

-c, --chapters filename

A fájlban lévő fejezetek hozzáadása vagy helyettesítése a filename fájlban lévő fejezetekkel, vagy eltávolítása, ha a filename üres. mkvpropedit(1) ugyanazokat az XML és egyszerű fejezetformátumokat olvassa, mint a mkvmerge(1) is.

A mellékletek kezelésére szolgáló műveletek:

--add-attachment filename

Új csatolmányt ad hozzá a fájlnév címről.

Ha a --csatolmány-név opciót ezt az opciót megelőzően használták, akkor annak értéke lesz az új csatolmány neve. Ellenkező esetben a filename értékéből származik.

Ha ezt az opciót megelőzően a --attachment-mime-type opciót használták, akkor annak értéke lesz az új csatolmány MIME-típusa. Ellenkező esetben a filename tartalmából automatikusan felismerésre kerül.

Ha a --csatolás-leírás opciót ezt az opciót megelőzően használták, akkor annak értéke lesz az új csatolmány leírása. Ellenkező esetben nem kerül beállításra leírás.

Ha ezt az opciót megelőzően a --attachment-uid opciót használták, akkor annak értéke lesz az új csatolmány UID-je. Ellenkező esetben a rendszer automatikusan egy véletlenszerű UID-t generál.

---helyettesítő csatolás kiválasztó:fájlnév

Egy vagy több, a kiválasztó-nek megfelelő csatolmányt kicserél a fájlnév fájlra. Ha egynél több meglévő csatolmány felel meg a kiválasztó-nek, akkor az összes csatolmány tartalmát a filenév tartalmával helyettesíti.

A választó négyféleképpen alakulhat. Ezeket az alábbiakban a attachment selectors szakaszban ismertetjük.

Ha ezt az opciót megelőzően a --csatolmány-név opciót használták, akkor annak értéke minden egyes módosított csatolmány új neveként kerül beállításra. Ellenkező esetben a nevek nem változnak.

Ha ezt az opciót megelőzően a --attachment-mime-type opciót használták, akkor annak értéke minden egyes módosított csatolmány új MIME-típusaként kerül beállításra. Ellenkező esetben a MIME típusok nem változnak.

Ha ezt az opciót megelőzően a --csatolás-leírás opciót használták, akkor annak értéke minden egyes módosított csatolmány új leírásaként kerül beállításra. Ellenkező esetben a leírások nem változnak.

Ha ezt az opciót megelőzően a --attachment-uid opciót használták, akkor annak értéke minden egyes módosított csatolmány új UID-jeként kerül beállításra. Ellenkező esetben az UID-k nem változnak.

--update-attachment selector

Egy vagy több olyan csatolmány tulajdonságainak beállítása, amelyek megfelelnek a kiválasztó értéknek. Ha egynél több meglévő csatolmány felel meg a választó értéknek, akkor az összes tulajdonságuk frissül.

A választó négyféleképpen alakulhat. Ezeket az alábbiakban a attachment selectors szakaszban ismertetjük.

Ha ezt az opciót megelőzően a --csatolmány-név opciót használták, akkor annak értéke minden egyes módosított csatolmány új neveként kerül beállításra. Ellenkező esetben a nevek nem változnak.

Ha ezt az opciót megelőzően a --attachment-mime-type opciót használták, akkor annak értéke minden egyes módosított csatolmány új MIME-típusaként kerül beállításra. Ellenkező esetben a MIME típusok nem változnak.

Ha ezt az opciót megelőzően a --csatolás-leírás opciót használták, akkor annak értéke minden egyes módosított csatolmány új leírásaként kerül beállításra. Ellenkező esetben a leírások nem változnak.

Ha ezt az opciót megelőzően a --attachment-uid opciót használták, akkor annak értéke minden egyes módosított csatolmány új UID-jeként kerül beállításra. Ellenkező esetben az UID-k nem változnak.

--delete-attachment selector

Töröl egy vagy több olyan csatolmányt, amelyek megfelelnek a választó.

A választó négyféleképpen alakulhat. Ezeket az alábbiakban a attachment selectors szakaszban ismertetjük.

A csatolási műveletek lehetőségei:

--csatlakozás-név név

Beállítja a következő --add-attachment vagy --replace-attachment művelethez használandó nevet.

--attchment-mime-type mime-type

Beállítja a következő --add-attachment vagy --replace-attachment művelethez használandó MIME-típust.

--attchment-description leírás

Beállítja a következő --add-attachment vagy --replace-attachment művelethez használandó leírást.

--enable-legacy-font-mime-types

Lehetővé teszi a régi MIME típusok használatát bizonyos típusú betűmellékletekhez. Például a 'application/x-truetype-font' a TrueType betűtípusok esetében a 'fonts/ttf' helyett használatos.

Ez mind az új mellékletek hozzáadását, mind a meglévő mellékletek cseréjét érinti, de csak akkor, ha az új MIME típus nincs megadva. A többi meglévő csatolmány nem változik.

Az érintett MIME típusok a következők: 'font/sfnt', 'font/ttf' és 'font/collection', amelyek mind a 'application/x-truetype-fonts'-ra vannak leképezve, valamint a 'font/otf', amely a 'application/vnd.ms-opentype'.

Egyéb lehetőségek:

--disable-language-ietf

Normális esetben, amikor a felhasználó a 'language' pálya fejléc tulajdonságának módosítását kéri, az mkvpropedit(1) ugyanezt a módosítást az új LanguageIETF pálya fejléc elemre is alkalmazza a régi Language elem mellett. Ha ezt az opciót használja, a módosítás csak a régi Language elemre kerül alkalmazásra.

Ez az opció nem érinti a 'language-ietf' sávfejléc tulajdonságon keresztül kért változásokat.

--normalize-language-ietf mode

Engedélyezi az összes IETF BCP 47 nyelvi tag normalizálását vagy a kanonikus formájukra a 'canonical' móddal, vagy a kiterjesztett nyelvi altagok formájára a 'extlang' móddal, vagy kikapcsolja a 'off' móddal. Alapértelmezés szerint a kanonikus formára való normalizálás kerül alkalmazásra.

A kanonikus formában minden olyan alcímke, amelyhez létezik preferált érték, az adott preferált értékekkel van helyettesítve. Így pl. a 'zh-yue-jyutping'-t 'yue-jyutping'-ra vagy a 'fr-FX'-t 'fr-FR'-ra alakítja át.

A kiterjesztett nyelvi alcímkeforma esetében először a kanonikus forma épül fel. Ezután minden olyan elsődleges nyelv, amelyhez létezik kiterjesztett nyelvi alcímke, helyébe az adott kiterjesztett nyelvi alcímke és annak előtagja lép. Ez például a 'yue-jyutping'-t visszaváltja 'zh-yue-jyutping'-ra, de nincs hatással a 'fr-FR'-ra, mivel a 'fr' nem egy kiterjesztett nyelvi altag.

Ez a normalizálás csak a ténylegesen megváltozott elemekre vonatkozik:

•A sávfejlécek szerkesztésekor csak a szerkesztési specifikációkon keresztül beállított sávnyelvi elemeket érinti. A nem szerkesztett sávok nyelvei nem változnak. A sáv szerkesztése, de a nyelven kívül csak más tulajdonságok beállítása sem befolyásolja a nyelvet.
•A fejezetek szerkesztésekor az összes fejezetelem összes nyelvi elemét érinti, mivel a meglévő fejezetek mindig teljes mértékben kicserélődnek.
•A címkék szerkesztésekor csak a ténylegesen kicserélt címkék nyelvi elemeit érinti. Például, ha globális címkéket cserél, akkor a meglévő sávcímkékre nincs hatással.

A legjobb módja a fájlban lévő összes nyelvi tag normalizálásának az, ha az mkvmerge(1) segítségével remuxolod a fájlt, és a '--normalize-language-ietf' opciót a kívánt módra állítod.

--command-line-charset karakterkészlet

Beállítja a karakterkészletet, amelyből a parancssorban megadott karakterláncokat konvertálni kell. Alapértelmezés szerint a rendszer aktuális területi beállítása által megadott karakterkészlet.

--output-charset karakterkészlet

Beállítja azt a karakterkészletet, amelybe a kimeneti karakterláncokat konvertálja. Alapértelmezés szerint a rendszer aktuális területi beállítása által megadott karakterkészlet.

-r, --redirect-output file-name

Az összes üzenetet a konzol helyett a fájlnév fájlba írja. Bár ez könnyen elvégezhető a kimenet átirányításával, vannak olyan esetek, amikor szükség van erre az opcióra: amikor a terminál újraértelmezi a kimenetet, mielőtt kiírná azt egy fájlba. A --output-charset karakterkészletet tiszteletben tartja.

--ui-language code

Kényszeríti a nyelv kód fordításainak használatát (pl. 'de_DE' a német fordításokhoz). A 'list' mint kód megadásával a program kiadja a rendelkezésre álló fordítások listáját.

--abort-on-warnings

A program megszakítására utasítja a programot az első figyelmeztetés megjelenése után. A program kilépési kódja 1 lesz.

--debug topic

A hibakeresés bekapcsolása egy adott funkcióhoz. Ez az opció csak fejlesztők számára hasznos.

--engage feature

Kapcsolja be a kísérleti funkciókat. Az elérhető funkciók listája a mkvpropedit --engage list paranccsal kérhető le. Ezek a funkciók nem használhatók normál helyzetekben.

--gui-mode

Bekapcsolja a GUI módot. Ebben az üzemmódban speciálisan formázott sorokat adhat ki, amelyekkel a vezérlő GUI-nak elmondhatja, hogy mi történik. Ezek az üzenetek a '#GUI#message' formátumot követik. Az üzenetet kulcs/érték párok követhetik, mint a '#GUI#üzenet#key1=value1#key2=value2...'. Sem az üzenetek, sem a kulcsok nem kerülnek lefordításra, és mindig angol nyelven kerülnek kiadásra.

-v, --verbose

Legyen bőbeszédű, és mutassa meg az összes fontos Matroska(TM) elemet olvasás közben.

-h, --help

Használati információk megjelenítése és kilépés.

-V, --version

Verzióinformációk megjelenítése és kilépés.

@options-file.json

További parancssori argumentumokat olvas be a options-file fájlból. Az ilyen fájlok támogatott formátumainak teljes magyarázatát lásd az mkvmerge(1) man oldal "Opciós fájlok" című szakaszában.

A --szerkesztés opció beállítja azt a Matroska(TM) fájlrészletet (szegmensinformációk vagy egy adott sáv fejléceit), amelyet az összes következő add, set és delete műveleteket végzi. Ez addig marad érvényben, amíg a következő --edit opciót meg nem találjuk. Ennek az opciónak az argumentumát nevezzük szerkesztési szelektornak.

Alapértelmezés szerint az mkvpropedit(1) szerkeszti a szegmensinformációs részt.

A szegmensinformáció e három szó egyikével választható ki: 'info', 'segment_info' vagy 'segmentinfo'. Olyan tulajdonságokat tartalmaz, mint a szegmens címe vagy a szegmens UID.

Pálya fejlécek

A sávok fejléceit egy kissé összetettebb szelektorral lehet kiválasztani. Minden variáció a 'track:' kezdetűvel kezdődik. A sávfejléc tulajdonságai olyan elemeket tartalmaznak, mint a nyelvi kód, az 'alapértelmezett sáv' jelző vagy a sáv neve.

pálya:n

Ha a n paraméter egy szám, akkor a n-edik sáv lesz kiválasztva. A sorrend ugyanaz, mint amit az mkvmerge(1) --identify opció kiad.

A számozás 1-től kezdődik.

pálya:tn

Ha a paraméter egyetlen karakterrel kezdődik t, amelyet egy n követ, akkor egy adott sávtípus n-edik sávja lesz kiválasztva. A sávtípus paraméter t e négy karakter egyikének kell lennie: 'a' hangsáv esetén, 'b' gombsáv esetén, 's' felirat-sáv esetén és 'v' videó-sáv esetén. A sávok sorrendje megegyezik azzal, amit az mkvmerge(1) --identify opció kiad.

A számozás 1-től kezdődik.

track:=uid

Ha a paraméter '='-val kezdődik, amelyet egy szám követ uid, akkor az a pálya lesz kiválasztva, amelynek UID eleme megegyezik az adott uid elemmel. A pálya UID elemeit az mkvinfo(1) segítségével kaphatjuk meg.

pálya:@szám

Ha a paraméter egy '@' karakterrel kezdődik, amelyet egy szám szám követ, akkor az a pálya lesz kiválasztva, amelynek pályaszám eleme megegyezik ezzel a szám elemmel. A sávszámokat a mkvinfo(1) segítségével kaphatjuk meg.

A sávszerkesztési szelektorok természetéből adódóan lehetséges, hogy több szelektor is megegyezik ugyanazzal a sávfejléccel. Ilyen esetekben az ilyen szerkesztési szelektorokhoz tartozó összes művelet kombinálva lesz, és a parancssorban megadott sorrendben fog végrehajtódni.

A csatolmányválasztót a két művelet --replace-attachment és --delete-attachment segítségével használjuk. A következő négy forma valamelyikével rendelkezhet:

1.Kiválasztás a melléklet azonosítója alapján. Ebben a formában a szelektor egyszerűen egy szám, a csatolmány azonosítója, ahogyan azt az mkvmerge(1) azonosító parancsa kiadja.
2.Kiválasztás a melléklet UID (egyedi azonosító) alapján. Ebben a formában a szelektor az = egyenlőségjel, amelyet egy szám követ, a csatolmány egyedi azonosítója, ahogyan azt az mkvmerge(1) szóbeli azonosító parancsa kiadja.
3.Kiválasztás a melléklet neve alapján. Ebben a formában a szelektor a név: szó, amelyet a meglévő csatolmány neve követ. Ha ezt a választót a --replace-attachment opcióval együtt használjuk, akkor a megfeleltetendő névben lévő kettőspontokat \c-ként kell szedni.
4.MIME-típus szerinti kiválasztás. Ebben a formában a szelektor a mime-type: szó, amelyet a meglévő melléklet MIME típusa követ. Ha ezt a kiválasztót a --replace-attachment kapcsolóval együtt használjuk, akkor a keresett MIME-típuson belüli kettőspontokat \c-ként kell kikerülni.

mkvpropedit(1) alapértelmezés szerint többnyire megpróbál helyesen cselekedni. Ezért a language tulajdonság megváltoztatásával az mkvpropedit(1) ugyanazt a változtatást fogja alkalmazni mind az új "LanguageIETF" elemre, mind a régi "Language" elemre, hasonlóan ahhoz, ahogyan az mkvmerge(1) alkalmazza a nyelvet mindkét elemre. Például a mkvpropedit movie.mkv --edit track:2 --set language=zh-TW használatával a "LanguageIETF" elemet zh-TW-ra, a régi "Language" elemet pedig chi-ra állítja.

Ezen kívül van egy új, language-ietf nevű sávfejléc tulajdonság, amely beállítható vagy eltávolítható. Ennek a tulajdonságnak a módosítása csak az új "LanguageIETF" sávfejléc elemre vonatkozik. A figyelmeztetés az, hogy a régi "Language" track header elem kötelező elem a Matroska-ban - ami azt jelenti, hogy még akkor is van implicit értéke, ha nincs jelen a fájlban. Ha a felhasználó csak a language-ietf tulajdonságot állítja be, de a language tulajdonságot nem, az mkvpropedit(1) ezért bizonyos esetekben hozzáadja a régi "Language" elemet & und-ra állítja (azaz "undetermined"), mivel a felhasználó nem adott meg értéket.

XML fejezet- vagy tagfájlok olvasásakor az mkvpropedit(1) úgy működik, mint az mkvmerge(1).

Az új elemek létrehozása teljesen letiltható a `--disable-language-ietf` parancssori opcióval, amely mindhárom új elemre hat.

A kiterjesztett nyelvi alcímkékre alkalmazott normalizálási módszert a --normalize-language-ietf paraméterrel választhatja ki.

A következő példa a 'movie.mkv' nevű fájlt szerkeszti. Beállítja a szegmens címét, és módosítja egy hang- és egy felirat-sáv nyelvi kódját. Megjegyezzük, hogy ez a példa lerövidíthető az első --szerkesztés opció elhagyásával, mivel a szegmensinformációs elem szerkesztése az első --szerkesztés opció előtt található összes opció alapértelmezett beállítása.

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

A második példa eltávolítja az 'alapértelmezett sávjelzőt' az első felirat-sávról, és beállítja a másodikra. Vegyük észre, hogy az mkvpropedit(1) az mkvmerge(1) paranccsal ellentétben nem állítja a többi sáv 'alapértelmezett sávjelzőjét' '0'-ra, ha az egy másik sávnál automatikusan '1'-re van állítva.

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

A második feliratos sáv címkéinek cseréje a fájlban így néz ki:

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

Az összes címke eltávolításához a fájlnév elhagyása szükséges:

$ mkvpropedit movie.mkv --tags all:

A fejezetek cseréje egy fájlban így néz ki:

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

Az összes fejezet eltávolításához el kell hagyni a fájl nevét:

$ mkvpropedit movie.mkv --chapters ''

Betűtípusfájl (Arial.ttf) csatolmányként történő hozzáadása:

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

Egy betűtípus fájl (89719823.ttf) csatolása mellékletként, és némi információ megadása, mivel ez valóban csak Arial:

$ mkvpropedit movie.mkv --attachment-name Arial.ttf --attachment-description 'Az Arial betűtípus TrueType betűtípusként' --attachment-mime-type application/x-truetype-font --add-attachment 89719823.ttf

Egy csatolt betűtípus (Comic.ttf) fájl cseréje egy másikra (Arial.ttf):

$ mkvpropedit movie.mkv --attachment-name Arial.ttf --attachment-description 'Az Arial betűtípus TrueType betűtípusként' --replace-attachment name:Comic.ttf:Arial.ttf

A második csatolt fájl törlése, bármi is legyen az:

$ mkvpropedit movie.mkv --delete-attachment 2

Az összes csatolt betűtípus törlése MIME-típus szerint:

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

mkvpropedit(1) a három kilépési kód egyikével lép ki:

•<állandó>0</állandó> -- Ez a kilépési kód azt jelenti, hogy a módosítás sikeresen befejeződött.
1 -- Ebben az esetben az mkvpropedit(1) legalább egy figyelmeztetést adott ki, de a módosítás folytatódott. A figyelmeztetés előtt a 'Figyelmeztetés:' szöveg áll. Az érintett problémáktól függően az eredményül kapott fájlok lehetnek rendben, vagy nem. A felhasználót felszólítjuk, hogy ellenőrizze mind a figyelmeztetést, mind az eredményül kapott fájlokat.
•<állandó>2</állandó> -- Ezt a kilépési kódot hiba esetén használjuk. mkvpropedit(1) a hibaüzenet kiadása után azonnal megszakad. A hibaüzenetek a hibás parancssori argumentumoktól kezdve az olvasási/írási hibákon át a törött fájlokig terjednek.

Az MKVToolNix csomagban található összes eszköz karakterkészlet-konverziójának, a be- és kimeneti kódolásnak, a parancssori kódolásnak és a konzol kódolásnak a kezeléséről részletesebben az mkvmerge(1) man oldal azonos nevű szakaszában olvashat.

mkvpropedit(1) a rendszer nyelvjárását meghatározó alapértelmezett változókat használja (pl. LANG és a LC_* család). További változók:

MKVPROPEDIT_DEBUG, MKVTOOLNIX_DEBUG és annak rövidített formája MTX_DEBUG.

A tartalmat úgy kezeli, mintha a --debug opcióval adta volna át.

MKVPROPEDIT_ENGAGE, MKVTOOLNIX_ENGAGE és annak rövidített formája MTX_ENGAGE.

A tartalmat úgy kezeli, mintha a --engage opcióval adta volna át.

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

A legfrissebb verzió mindig megtalálható a az MKVToolNix honlapon[1].

Moritz Bunkus <moritz@bunkus.org>

Fejlesztő

1.
az MKVToolNix honlapon
2025-07-27 MKVToolNix 94.0