Jakiś sposób na edycję metadanych plików MKV (bez ponownego kodowania)?
On 16 lutego, 2021 by adminPodczas oglądania pliku MKV z sieci w VLC, pasek tytułu (patrz „# 1” na poniższej ilustracji) wydaje się pochodzić z metadanych, a nie nazwę pliku.
Jeśli otworzysz panel „Pobierz informacje” w VLC, możesz zmienić tytuł („# 2”), a następnie kliknąć „Zapisz metadane” („# 3”), ale kiedy plik zostanie ponownie otwarty, wyświetlą się stare informacje.
Nie znalazłem żadnej innej aplikacji na Maca, która mogłaby edytować metadane MKV. Kilka propozycji edycji metadanych mp4, ale to nie jest to, czego potrzebuję.
Odpowiedź
Znalazłem sposób na zrobienie tego za pomocą mkvpropedit
, który jest częścią mkvtoolnix .
mkvpropedit "foo.mkv" -e info -s title="This Is The Title"
Jest do tego opakowanie GUI app i inne instrukcje instalacji na Maca dostępne na oficjalnej stronie internetowej .
Odpowiedź
Jako dodatek można użyć mkvpropedit
w skrypcie bash, aby ustawić tytuł wszystkich mkv pliki w katalogu. (Podając nazwę pliku to żądany tytuł.)
#!/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
Komentarze
Odpowiedź
MKVToolNix
Sposób GUI:
- Z menu wybierz edytor nagłówka.
-
Otwórz
mkv
plik. -
Pod
segment information
znajduje siętitle
element, zmień tytuł, jak chcesz.
- T tutaj nie ma przycisku zapisywania, użyj menu głównego, aby zapisać zmiany.
Obsługa wersji macOS
Aktualne wersje MKVToolNix wymagają macOS Mojave (10.14) lub nowsza, ale wcześniejsze wersje MKVToolNix mogą działać z poprzednimi wersjami macOS / OS X.
Od wersji 42 .0.0, MKVToolNix używa
std::optional
, a który wymaga systemu macOS 10.14. b
macOS High Sierra (10.13) i Sierra (10.12) powinien działać do v41.0.0 „Smarra” (2019-grudzień-06) .
Od wersji 30.0.0 MKVToolNix używa Qt 5.12 , c , który wymaga systemu macOS 10.12. d
OS X El Capitan (10.11) powinien działać do wer. 29.0.0 „Like It Or Not” (2018-Dec-01) .
Od wersji 26.0.0 plik „README.macOS.txt” zawiera informację, że
works only with macOS 10.11 "El Capitan" or newer
e (chociażMACOSX_DEPLOYMENT_TARGET
iLSMinimumSystemVersion
nadal znajdują się pod adresem10.9
, więc może działać w Yosemite 10.10 lub Mavericks 10.9).
OS X Yosemite (10.10) i Mavericks (10.9) powinien działać do v25.0.0 „Prog Noir” (2018-lipiec-12) .
Od wersji 9.7.1-build4 ,
MACOSX_DEPLOYMENT_TARGET
iLSMinimumSystemVersion
są ustawione na10.9
. f
OS X Mountain Lion (10.8) może działać do v9.7.1-build2 „Pandemonium” (27 grudnia 2016) .
Od wersji 8.2.0 plik„ README.Plik macOS.txt „stwierdza, że
works only with Mac OS X 10.9 and higher
, chociażLSMinimumSystemVersion
nadal znajduje się w10.8.0
, więc mógłby działać w Mountain Lion 10.8.Ponadto
MACOSX_DEPLOYMENT_TARGET
nie jest ustawiony, więc powinien być przeznaczony dla dowolnej wersji systemu operacyjnego. wbudowany. g Jako v9.7.0-build2 i v9.7.1-build2 zostały zbudowane w Sierra 10.12, nie będą działać w Yosemite 10.10 ani El Capitan 10.11 (chociaż będą działać w Mavericks 10.9 i Mountain Lion 10.8, które wydają się ignorować to ograniczenie). Zobacz odpowiednią dyskusję tutaj .
Komentarze
- To działa, ale ' działa pojedynczo – patrz apple.stackexchange.com/questions / 367737 / … dla metody zbiorczej.
- Można potwierdzić, że działa to dla jednego pliku na raz.
- tak nie nadaje się do pracy masowej. Inne odpowiedzi już o to zadbały. To jest dla małych prac, kiedy ' nie zawracasz sobie głowy sprawdzaniem parametrów cli (
mkvpropedit --help
).
Odpowiedź
Po prostu otwórz plik w odtwarzaczu VLC, Ctrl + I, wybierz żądane metadane, tytuł itp., zmień, a następnie na dole, kliknij „Zapisz dane”. To wszystko.
Żaden inny zewnętrzny edytor nie jest potrzebny.
Komentarze
- To jest w OP. Powiedział nie działało ' t.
- Próbowałem tego używając VLC na Macu i działa. Musisz tylko kliknąć ” Zapisz metadane ” w oknie Informacje o multimediach. Nie jest to łatwe do znalezienia '.
- Myślę, że jeśli to zmienisz, zapisze się, ale jeśli go po prostu usuniesz, nie ' t.
- @Tetsujin jest poprawne, jeśli wprowadzisz pustą wartość, nie zaakceptuje jej, będzie wyglądać tak, jakby ' działało, ale po ponownym sprawdzeniu stara wartość nadal tam jest, więc to ' łatwo założyć, że ” nie ' nie działa ” i wydaje mi się, że nie ' t. Krótko mówiąc, możesz t usuń, po prostu zmień na coś innego.
- To nie działa, nawet jeśli klikniesz ” zapisz metadane „. Na pierwszy rzut oka wydaje się, że działa, ale po ponownym otwarciu pliku w VLC widać, że stara wartość jest nadal obecna. Przetestowano z plikiem MKV.
Odpowiedź
Pobrano listę plików, z których wiele miało *** w tytule, jako rozszerzenie innej odpowiedzi , stworzyłem własny skrypt.
Zmienia tytuł dla wszystkich .mkv
pliki w katalogu (i jego podkatalogach), prosząc o odpowiednią akcję. Akcje to „Zachować nazwę? [1] / wpisać nową nazwę? [2] / użyć nazwy pliku jako nazwy filmu? [3]”.
Może zaktualizować ją później github , oto„ co jest na razie:
#!/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
Odpowiedź
MetaX dla Windows oznacza pliki MKV (a także MP4, M4V, WMV i AVI). Przeszukuje również internet w poszukiwaniu informacji do oznaczania (okładka, aktorzy, …)
line 8: -4: substring expression < 0
. Musiałem zmienić mkvpropedit ” $ mkvfile ” -e info -s title = ” $ {mkvfile :: – 4} ” do mkvpropedit ” $ mkvfile ” -e info -s title = ” $ {mkvfile :: $ {# mkvfile} -4} ” Może to pomoże innym, którzy mają ten sam problem .