Un modo per modificare i metadati dei file MKV (senza ricodifica)?


14

Quando si guarda un file MKV dal Web in VLC, la barra del titolo (vedere "# 1" nell'immagine seguente) sembra essere estratta dai metadati, non dal nome file.

Se apri il pannello "Ottieni informazioni" in VLC, puoi cambiare il titolo ("# 2") e quindi fare clic su "Salva metadati" ("# 3"), ma quando il file viene riaperto, le informazioni precedenti sono mostrato.

Non ho trovato altre app Mac in grado di modificare i metadati MKV. Diversi offrono di modificare i metadati mp4, ma non è quello di cui ho bisogno.

Schermata annotata VLC

Risposte:



6

Come aggiunta si potrebbe usare mkvpropeditin uno script bash per impostare il titolo di tutti i file mkv in una directory. (Dato il nome file è il titolo desiderato.)

#!/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

3

Basta aprire il file nel lettore VLC, Ctrl + I, scegliere i metadati, il titolo ecc. Desiderati, cambiare e quindi in fondo, fare clic su "Salva dati". È tutto.

Non è necessario nessun altro editor esterno.


2
Questo è nel PO. Ha detto che non ha funzionato.
Tetsujin,

1
Ho provato questo usando VLC su un mac e funziona. Devi solo essere sicuro di fare clic sul pulsante "Salva metadati" nella finestra Informazioni multimediali. Non è la cosa più semplice da trovare.
Ascii Dude,

1
Penso che ciò che può accadere è se lo cambi, salverà, ma se lo elimini, non lo farà.
Tetsujin,

@Tetsujin è corretto, se si inserisce un valore vuoto non lo accetterà, sembrerà che funzioni ma quando si controlla di nuovo il vecchio valore è ancora lì, quindi è facile supporre che "non funziona", e in un modo immagino che non lo sia. In breve, non è possibile eliminare, basta passare a qualcos'altro.
pzkpfw,

1

Il MKVToolNixmodo in cui la GUI:

  1. Dal menu scegliere l'editor di intestazione.

inserisci qui la descrizione dell'immagine

  1. Apri il mkvfile

  2. Sotto segment informationc'è un titleoggetto, cambia titolo come desideri.

inserisci qui la descrizione dell'immagine

  1. Non è presente un pulsante di salvataggio, utilizzare il menu principale per salvare le modifiche.

inserisci qui la descrizione dell'immagine


Funziona, ma è uno alla volta - vedi apple.stackexchange.com/questions/367737/… per un metodo di massa.
Tetsujin,

0

Ho scaricato un mucchio di file, molti dei quali avevano alcuni *** nel titolo, poiché l'estensione di un'altra risposta ha reso il mio script.

Cambia il titolo per tutti i .mkvfile nella directory (ed è sottodirectory) mentre chiede un'azione appropriata. Le azioni sono "Mantieni il nome? [1] / Digita un nuovo nome? [2] / Usa il nome file come nome del film? [3]".

Potrebbe aggiornarlo più tardi su github , ecco cosa c'è per ora:

#!/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

-3

MetaX per Windows taggerà i file MKV (così come MP4, M4V, WMV e AVI). Cerca anche in Internet le informazioni da utilizzare per il tagging (copertina, attori, ...)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.