Er der nogen måde at redigere metadata på MKV-filer (uden genkodning)?
On februar 16, 2021 by adminNår du ser en MKV-fil fra internettet i VLC, ser titellinjen (se “# 1” i billedet nedenfor) ud til at være trukket fra metadata, ikke filnavnet.
Hvis du åbner “Get Info” -panelet i VLC, kan du ændre titlen (“# 2”) og derefter klikke på “Gem metadata” (“# 3”), men når filen genåbnes, de gamle oplysninger vises.
Jeg har ikke fundet andre Mac-apps, der kan redigere MKV-metadata. Flere tilbyder at redigere mp4-metadata, men det er ikke det, jeg har brug for.
Svar
Jeg har fundet en måde at gøre dette på ved hjælp af mkvpropedit
som er en del af mkvtoolnix .
mkvpropedit "foo.mkv" -e info -s title="This Is The Title"
Der er en GUI-indpakning til dette app og andre Mac-installationsinstruktioner tilgængelig på det officielle websted .
Svar
Som en tilføjelse kunne man bruge mkvpropedit
i et bash-script til at indstille titlen på al mkv filer i et bibliotek. (Givet at filnavnet er den ønskede titel.)
#!/bin/bash # This script takes all mkv files in the current directory and sets the filename # (without .mkv) as its title in metadata for mkvfile in *.mkv; do mkvpropedit "$mkvfile" -e info -s title="${mkvfile::-4}" done
Kommentarer
Svar
MKVToolNix
GUI-måde:
- Vælg headereditor i menuen.
-
Åbn
mkv
-fil. -
Under
segment information
er der entitle
element, skift titel, som du ønsker.
- T her er ikke en gem-knap, brug hovedmenuen til at gemme ændringer.
Support til macOS-version
Nuværende versioner af MKVToolNix kræver macOS Mojave (10.14) eller nyere, men tidligere versioner af MKVToolNix fungerer muligvis i tidligere versioner af macOS / OS X.
Fra og med v42 .0.0, MKVToolNix bruger
std::optional
, a som kræver macOS 10.14. b
macOS High Sierra (10.13) og Sierra (10.12) skal løbe op til v41.0.0 “Smarra” (2019-Dec-06) .
Fra og med v30.0.0 bruger MKVToolNix Qt 5.12 , c som kræver macOS 10.12. d
OS X El Capitan (10.11) skal løbe op til v29.0.0 “Like It or Not” (2018-Dec-01) .
Fra v26.0.0 angiver filen “README.macOS.txt”, at den
works only with macOS 10.11 "El Capitan" or newer
e (skøntMACOSX_DEPLOYMENT_TARGET
ogLSMinimumSystemVersion
er stadig på10.9
, så det kan køre i Yosemite 10.10 eller Mavericks 10.9).
OS X Yosemite (10.10) og Mavericks (10.9) skal løbe op til v25.0.0 “Prog Noir” (2018-juli-12) .
Fra v9.7.1-build4 ,
MACOSX_DEPLOYMENT_TARGET
ogLSMinimumSystemVersion
er indstillet til10.9
. f
OS X Mountain Lion (10.8) kan løbe op til v9.7.1-build2 “Pandemonium” (2016-december-27) .
Fra v8.2.0 er” README.macOS.txt “-fil angiver, at den
works only with Mac OS X 10.9 and higher
, selvomLSMinimumSystemVersion
stadig er på10.8.0
, så det måske kører i Mountain Lion 10.8.Desuden er
MACOSX_DEPLOYMENT_TARGET
ikke indstillet, så det skal målrette mod hvilken OS-version det var indbygget. g Som v9.7.0-build2 og v9.7.1-build2 blev bygget i Sierra 10.12, de vandt ikke løbet i Yosemite 10.10 eller El Capitan 10.11 (selvom de løber i Mavericks 10.9 og Mountain Lion 10.8, som tilsyneladende ignorerer denne begrænsning). Se den relevante diskussion her .
Kommentarer
- Dette fungerer, men det ‘ er en ad gangen – se apple.stackexchange.com/questions / 367737 / … for en bulkmetode.
- Kan bekræfte, at dette fungerer for en fil ad gangen.
- ja det er ikke egnet til massedrift. Andre svar sørgede allerede for det. Dette er til mindre værker, når du ikke ‘ ikke gider at kontrollere cli-parameterne (
mkvpropedit --help
).
Svar
Åbn bare filen i VLC-afspiller, Ctrl + I, vælg den ønskede metadata, titel osv., skift og derefter i bunden, klik på “Gem data”. Det er alt sammen.
Der kræves ingen anden ekstern editor.
Kommentarer
- Det er i OP. Han sagde det fungerede ‘ t.
- Jeg prøvede dette ved hjælp af VLC på en mac, og det virker. Du skal bare være sikker på at klikke på ” Gem metadata ” i vinduet Medieoplysninger. Det ‘ er ikke den nemmeste ting at finde.
- Jeg tror, hvad der kan ske, hvis du ændrer det, det gemmer, men hvis du bare sletter det, ‘ t.
- @Tetsujin er korrekt. Hvis du indtaster en tom værdi, accepterer den ikke den, den ser ud til at den ‘ fungerer, men når du tjekker igen, er den gamle værdi stadig der, så det ‘ er let at antage det ” fungerer ikke ‘ t fungerer “, og på en måde antager jeg, at det ikke ‘ t. Kort sagt kan du t slet, skift bare til noget andet.
- Det virker ikke, selvom du klikker på ” gem metadata “. Ved første øjekast ser det ud til at fungere, men når du genåbner filen igen i VLC, ser du, at den gamle værdi stadig er til stede. Testet med MKV-fil.
Svar
Downloadede en masse filer, hvoraf mange havde nogle *** i dens titel, som en udvidelse af et andet svar lavede mit eget script.
Det ændrer titel for alle .mkv
filer i biblioteket (og det er underkataloger), mens du beder om en passende handling. Handlinger er “Behold navnet? [1] / Indtast et nyt navn? [2] / Brug filnavnet som filmnavn? [3]”.
Måske opdaterer det senere på github , her er hvad der er for nu:
#!/bin/sh # This script takes all mkv files in the (sub)directory and sets it"s Movie name/Title # Requires mkvtools (mkvpropedit) and mediainfo installed # # param1 Starting directory (defaults to current) # param2 Default action to do with files # (Keep the name?[1] / Type a new name?[2] / Use the filename as a movie name?[3]) # Be carefaul with param2 since this script doesn"t (atm) back up the existing movie names. IFS=$"\n"; set -f updateTitle() { mkvpropedit "${1}" -e info -s title="${2}" echo "✅ Updated to \"${2}\""; } getMovieTitle() { echo "$(mediainfo ${1} | grep "Movie name" | sed "s/^.*: //")"; } parseFilename() { filename=${1##*/} filename=${filename%.*} echo ${filename} } chooseAction() { f="${1}" curFilename="${2}" defaultAction="${3}" if [[ -n "${defaultAction}" ]]; then ans="${defaultAction}" else read -p "Keep the name?[1] / Type a new name?[2] / Use the filename as a movie name?[3] : " -n 1 ans echo fi case "${ans}" in 1) echo "Keeping the old name" ;; 2) read -p "New movie name: " newName updateTitle ${f} ${newName} ;; 3) updateTitle ${f} ${curFilename} ;; *) echo "Invalid char \"${ans}\"" chooseAction $@ ;; esac echo } renameMovies() { for f in $(find ${1} -name "*.mkv"); do curTitle="$(getMovieTitle ${f})" curFilename="$(parseFilename ${f})" echo "File location - ${f}" echo "File name - ${curFilename}" echo "Movie name - ${curTitle}" chooseAction ${f} ${curFilename} ${2} done echo "Done" } renameMovies ${1:-$(pwd)} ${2} unset IFS; set +f
Svar
MetaX til Windows mærker MKV-filer (såvel som MP4, M4V, WMV og AVI “s). Det søger også på internettet efter de oplysninger, der skal bruges til tagging (omslagskunst, skuespillere, …)
line 8: -4: substring expression < 0
. Jeg var nødt til at ændre mkvpropedit ” $ mkvfile ” -e info -s title = ” $ {mkvfile :: – 4} ” til mkvpropedit ” $ mkvfile ” -e info -s title = ” $ {mkvfile :: $ {# mkvfile} -4} ” Måske hjælper dette andre med det samme problem .