Est-il possible d'éditer les métadonnées des fichiers MKV (sans ré-encodage)?

14

Lorsque vous regardez un fichier MKV sur le Web dans VLC, la barre de titre (voir "# 1" dans l'image ci-dessous) semble être tirée des métadonnées, pas du nom de fichier.

Si vous ouvrez le panneau "Get Info" dans VLC, vous pouvez changer le titre ("# 2") puis cliquer sur "Save Metadata" ("# 3"), mais lorsque le fichier est rouvert, les anciennes informations sont montré.

Je n'ai trouvé aucune autre application Mac capable de modifier les métadonnées MKV. Plusieurs proposent de modifier les métadonnées mp4, mais ce n'est pas ce dont j'ai besoin.

Capture d'écran annotée VLC

TJ Luoma
la source

Réponses:

15

J'ai trouvé un moyen de le faire en utilisant mkvpropeditqui fait partie de mkvtoolnix .

mkvpropedit "foo.mkv" -e info -s title="This Is The Title"

Il existe un wrapper GUI pour cette application et d'autres instructions d'installation Mac disponibles sur le site officiel .

TJ Luoma
la source
6

En complément, on pourrait utiliser mkvpropeditdans un script bash pour définir le titre de tous les fichiers mkv dans un répertoire. (Étant donné le nom de fichier est le titre souhaité.)

#!/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
hérisson
la source
3

Ouvrez simplement le fichier dans le lecteur VLC, Ctrl + I, choisissez les métadonnées souhaitées, le titre, etc., changez puis en bas, cliquez sur «Enregistrer les données». C'est tout.

Aucun autre éditeur externe n'est nécessaire.

Bathinda Helper
la source
2
C'est dans le PO. Il a dit que cela ne fonctionnait pas.
Tetsujin
1
J'ai essayé cela en utilisant VLC sur un mac et cela fonctionne. Vous devez juste être sûr de cliquer sur le bouton "Enregistrer les métadonnées" dans la fenêtre Informations sur le média. Ce n'est pas la chose la plus facile à trouver.
Ascii Dude
1
Je pense que ce qui peut arriver, c'est que si vous le changez, il sera sauvegardé, mais si vous le supprimez simplement, ce n'est pas le cas.
Tetsujin
@Tetsujin est correct, si vous entrez une valeur vide, il ne l'acceptera pas, il semblera que cela fonctionne mais lorsque vous vérifiez à nouveau l'ancienne valeur est toujours là, il est donc facile de supposer qu'elle "ne fonctionne pas", et dans je suppose que ce n'est pas le cas. En bref, vous ne pouvez pas supprimer, passez simplement à autre chose.
pzkpfw
1

La MKVToolNixmanière GUI:

  1. Dans le menu, choisissez l'éditeur d'en-tête.

entrez la description de l'image ici

  1. Ouvrez le mkvfichier.

  2. Sous segment informationil y a un titleélément, changez le titre comme vous le souhaitez.

entrez la description de l'image ici

  1. Il n'y a pas de bouton d'enregistrement, utilisez le menu principal pour enregistrer les modifications.

entrez la description de l'image ici

Xaqron
la source
Cela fonctionne, mais c'est un à la fois - voir apple.stackexchange.com/questions/367737/… pour une méthode en bloc.
Tetsujin
0

Téléchargé un tas de fichiers, dont beaucoup avaient *** dans son titre, car une extension d'une autre réponse a fait mon propre script.

Il change le titre de tous les .mkvfichiers du répertoire (et de ses sous-répertoires) tout en demandant une action appropriée. Les actions sont "Conserver le nom? [1] / Entrer un nouveau nom? [2] / Utiliser le nom de fichier comme nom de film? [3]".

Pourrait le mettre à jour plus tard sur github , voici ce qu'il y a pour l'instant:

#!/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
SLCH000
la source
-3

MetaX pour Windows marquera les fichiers MKV (ainsi que les fichiers MP4, M4V, WMV et AVI). Il recherche également sur Internet les informations à utiliser pour le marquage (pochette, acteurs, ...)

Dan
la source