36 votes

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

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

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

Je n'ai pas trouvé d'autres applications Mac qui puissent éditer les métadonnées MKV. Plusieurs proposent d'éditer les métadonnées mp4, mais ce n'est pas ce dont j'ai besoin.

VLC annotated screenshot

35voto

moodforaday Points 2633

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

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

Il existe une interface graphique pour cette application et d'autres instructions d'installation sur Mac. disponible sur le site officiel .

16voto

Xaqron Points 191

El MKVToolNix par l'interface graphique :

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

enter image description here

  1. Ouvrez le mkv fichier.

  2. Sous segment information il existe un title modifiez le titre comme vous le souhaitez.

enter image description here

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

enter image description here

Prise en charge des versions de MacOS

Les versions actuelles de MKVToolNix requièrent MacOS Mojave (10.14) ou plus récent, mais des versions antérieures de MKVToolNix peuvent fonctionner pour des versions antérieures de MacOS/OS X.

A partir de la v42.0.0, MKVToolNix utilise std::optional , a qui nécessite MacOS 10.14. b

MacOS High Sierra (10.13) et Sierra (10.12) devrait aller jusqu'à v41.0.0 "Smarra" (2019-Déc-06) .

Depuis la version 30.0.0, MKVToolNix utilise la fonction Qt 5.12 , c qui nécessite MacOS 10.12. d

OS X El Capitan (10.11) devrait aller jusqu'à v29.0.0 "Like It Or Not" (2018-Dec-01) .

À partir de la v26.0.0, le fichier "README.MacOS.txt" indique qu'elle works only with macOS 10.11 "El Capitan" or newer e (bien que MACOSX_DEPLOYMENT_TARGET et LSMinimumSystemVersion sont toujours à 10.9 donc il pourrait fonctionner dans Yosemite 10.10 ou Mavericks 10.9).

OS X Yosemite (10.10) et Mavericks (10.9) devrait aller jusqu'à v25.0.0 "Prog Noir" (2018-July-12) .

Depuis la version 9.7.1-build4, MACOSX_DEPLOYMENT_TARGET et LSMinimumSystemVersion sont fixés à 10.9 . f

OS X Mountain Lion (10.8) pourrait jusqu'à v9.7.1-build2 "Pandemonium" (2016-Dec-27) .

À partir de la version 8.2.0, le fichier "README.MacOS.txt" indique qu'elle works only with Mac OS X 10.9 and higher bien que LSMinimumSystemVersion est toujours à 10.8.0 donc il pourrait fonctionnent dans Mountain Lion 10.8.

En outre, MACOSX_DEPLOYMENT_TARGET n'est pas défini, il doit donc cibler la version du système d'exploitation dans lequel il a été construit. g Comme v9.7.0-build2 et v9.7.1-build2 ont été créés dans Sierra 10.12, ils ne fonctionneront pas dans Yosemite 10.10 ni dans El Capitan 10.11 (mais ils fonctionneront dans Mavericks 10.9 et Mountain Lion 10.8, qui semblent ignorer cette restriction). Voir la discussion pertinente ici .

14voto

hedgehog Points 111

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

#!/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%.mkv}"
done

5voto

Bathinda Helper Points 69

Il suffit d'ouvrir le fichier dans le lecteur VLC, de faire Ctrl+I, de choisir les métadonnées souhaitées, le titre, etc., de les modifier, puis de cliquer sur "Enregistrer les données". C'est tout.

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

0voto

SLCH000 Points 101

J'ai téléchargé un grand nombre de fichiers, dont beaucoup avaient un *** dans leur titre, comme une extension d'un autre fichier. réponse j'ai créé mon propre script.

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

Je pourrais le mettre à jour plus tard github voici ce qu'il y a pour le moment :

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X