Något sätt att redigera metadata för MKV-filer (utan omkodning)?
On februari 16, 2021 by adminNär du tittar på en MKV-fil från webben i VLC verkar titelraden (se ”# 1” i bilden nedan) dras från metadata, inte filnamnet.
Om du öppnar ”Get Info” -panelen i VLC kan du ändra titeln (”# 2”) och klicka sedan på ”Spara metadata” (”# 3”), men när filen öppnas igen, den gamla informationen visas.
Jag har inte hittat några andra Mac-appar som kan redigera MKV-metadata. Flera erbjuder att redigera mp4-metadata, men det är inte vad jag behöver.
Svar
Jag har hittat ett sätt att göra detta med mkvpropedit
som är en del av mkvtoolnix .
mkvpropedit "foo.mkv" -e info -s title="This Is The Title"
Det finns ett GUI-omslag för detta app och andra installationsinstruktioner för Mac finns på den officiella webbplatsen .
Svar
Som ett tillägg kan man använda mkvpropedit
i ett bash-skript för att ställa in titeln på alla mkv filer i en katalog. (Med tanke på att filnamnet är den önskade titeln.)
#!/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-sätt:
- Välj huvudredigerare i menyn.
-
Öppna
mkv
-fil. -
Under
segment information
finns entitle
objekt, ändra titel som du vill.
- T här finns inte en spara-knapp, använd huvudmenyn för att spara ändringar.
Support för macOS-version
Nuvarande versioner av MKVToolNix kräver macOS Mojave (10.14) eller nyare, men tidigare versioner av MKVToolNix kan fungera för tidigare versioner av macOS / OS X.
Från och med v42 .0.0, MKVToolNix använder
std::optional
, a som kräver macOS 10.14. b
macOS High Sierra (10.13) och Sierra (10.12) bör gå upp till v41.0.0 ”Smarra” (2019-dec-06) .
Från och med v30.0.0 använder MKVToolNix Qt 5.12 , c vilket kräver macOS 10.12. d
OS X El Capitan (10.11) ska springa upp till v29.0.0 ”Gilla det eller inte” (2018-dec-01) .
Från och med v26.0.0 anger filen ”README.macOS.txt” att den
works only with macOS 10.11 "El Capitan" or newer
e (även omMACOSX_DEPLOYMENT_TARGET
ochLSMinimumSystemVersion
är fortfarande på10.9
, så det kanske körs i Yosemite 10.10 eller Mavericks 10.9).
OS X Yosemite (10.10) och Mavericks (10.9) bör springa upp till v25.0.0 ”Prog Noir” (2018-juli-12) .
Från och med v9.7.1-build4 ,
MACOSX_DEPLOYMENT_TARGET
ochLSMinimumSystemVersion
är inställda på10.9
. f
OS X Mountain Lion (10.8) kan springa upp till v9.7.1-build2 ”Pandemonium” (2016-dec-27) .
Från och med v8.2.0,” README.macOS.txt ”-filen anger att den
works only with Mac OS X 10.9 and higher
, även omLSMinimumSystemVersion
fortfarande är på10.8.0
, så det kanske körs i Mountain Lion 10.8.Dessutom är
MACOSX_DEPLOYMENT_TARGET
inte inställt, så det bör rikta in sig på vilken OS-version det än var inbyggd. g Som v9.7.0-build2 och v9.7.1-build2 byggdes i Sierra 10.12, de körde inte i Yosemite 10.10 eller El Capitan 10.11 (även om de kommer att springa i Mavericks 10.9 och Mountain Lion 10.8, som tycks ignorera den begränsningen). Se relevant diskussion här .
Kommentarer
- Detta fungerar, men det ’ är en i taget – se apple.stackexchange.com/questions / 367737 / … för en bulkmetod.
- Kan bekräfta att detta fungerar för en fil i taget.
- ja det är inte lämpligt för bulkdrift. Andra svar tog redan hand om det. Det här är för små verk när du inte ’ inte bryr sig om att kontrollera cli params (
mkvpropedit --help
).
Svar
Öppna bara filen i VLC-spelare, Ctrl + I, välj önskad metadata, titel etc, ändra och sedan längst ner, klicka på ”Spara data”. Det är allt.
Ingen annan extern redigerare behövs.
Kommentarer
- Det finns i OP. Han sa det fungerade inte ’.
- Jag försökte detta med VLC på en mac och det fungerar. Du måste bara vara säker på att klicka på ” Spara metadata ” i Media Information-fönstret. Det ’ är inte det enklaste att hitta.
- Jag tror att vad som kan hända är om du ändrar det, det kommer att spara, men om du bara tar bort det gör det inte ’ t.
- @Tetsujin är korrekt, om du anger ett tomt värde kommer det inte att acceptera det, det ser ut som om det ’ fungerar men när du kontrollerar igen finns det gamla värdet kvar, så det ’ är lätt att anta att det ” fungerar inte ’ t fungerar ”, och på ett sätt antar jag att det inte ’ t. Kort sagt, du kan För att inte radera, byt bara till något annat.
- Det fungerar inte, även om du klickar på ” spara metadata ”. Vid första anblicken verkar det fungera, men när du öppnar filen igen i VLC ser du att det gamla värdet fortfarande finns. Testat med MKV-fil.
Svar
Nedladdade en massa filer, varav många hade en del *** i dess titel, som en förlängning av ett annat svar skapades mitt eget skript.
Det ändrar titel för alla .mkv
filer i katalogen (och dess underkataloger) medan du ber om en lämplig åtgärd. Åtgärder är ”Behåll namnet? [1] / Skriv ett nytt namn? [2] / Använd filnamnet som filmnamn? [3]”.
Kan uppdatera det senare på github , här är vad det finns för tillfället:
#!/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 för Windows kommer att märka MKV-filer (liksom MP4, M4V, WMV och AVI). Den söker också på internet efter den information som ska användas för taggning (omslag, skådespelare, …)
line 8: -4: substring expression < 0
. Jag var tvungen att ändra mkvpropedit ” $ mkvfile ” -e info -s title = ” $ {mkvfile :: – 4} ” till mkvpropedit ” $ mkvfile ” -e info -s title = ” $ {mkvfile :: $ {# mkvfile} -4} ” Kanske hjälper det andra att ha samma problem .