Alguma maneira de editar metadados de arquivos MKV (sem recodificação)?


14

Ao assistir a um arquivo MKV da Web no VLC, a barra de título (consulte "# 1" na imagem abaixo) parece ser extraída dos metadados, não do nome do arquivo.

Se você abrir o painel "Obter informações" no VLC, poderá alterar o título ("# 2") e clicar em "Salvar metadados" ("# 3"), mas quando o arquivo for reaberto, as informações antigas serão exibidas. mostrando.

Não encontrei nenhum outro aplicativo para Mac que possa editar os metadados do MKV. Vários se oferecem para editar metadados mp4, mas não é isso que eu preciso.

Captura de tela anotada pelo VLC

Respostas:


15

Eu encontrei uma maneira de fazer isso usando o mkvpropeditque faz parte do mkvtoolnix .

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

Há um invólucro da GUI para este aplicativo e outras instruções de instalação do Mac disponíveis no site oficial .


6

Como adição, pode-se usar mkvpropeditem um script bash para definir o título de todos os arquivos mkv em um diretório. (Dado que o nome do arquivo é o título desejado.)

#!/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 abrir o arquivo no VLC player, Ctrl + I, escolher os metadados, título, etc desejados, alterar e, na parte inferior, clicar em 'Salvar dados'. Isso é tudo.

Nenhum outro editor externo é necessário.


2
Isso está no OP. Ele disse que não funcionou.
Tetsujin

1
Eu tentei isso usando o VLC em um mac e funciona. Você só precisa clicar no botão "Salvar metadados" na janela Informações da mídia. Não é a coisa mais fácil de encontrar.
Ascii Dude

1
Eu acho que o que pode acontecer é que, se você mudar, ele salvará, mas se você apenas excluí-lo, não.
Tetsujin

@Tetsujin está correto, se você digitar um valor vazio, ele não o aceitará, parecerá estar funcionando, mas quando você verificar novamente o valor antigo ainda está lá, é fácil supor que "não funcione" e em de uma maneira que acho que não. Em resumo, você não pode excluir, basta mudar para outra coisa.
pzkpfw 11/01

1

A MKVToolNixmaneira da GUI:

  1. No menu, escolha o editor de cabeçalho.

insira a descrição da imagem aqui

  1. Abra o mkvarquivo

  2. Abaixo de segment informationum titleitem, altere o título como desejar.

insira a descrição da imagem aqui

  1. Não há um botão Salvar, use o menu principal para salvar as alterações.

insira a descrição da imagem aqui


Isso funciona, mas é um de cada vez - consulte apple.stackexchange.com/questions/367737/… para obter um método em massa.
Tetsujin

0

Baixei um monte de arquivos, muitos dos quais tinham alguns trechos no título, pois uma extensão de outra resposta criou meu próprio script.

Ele altera o título de todos os .mkvarquivos no diretório (e seus subdiretórios) enquanto solicita uma ação apropriada. As ações são "Manter o nome? [1] / Digite um novo nome? [2] / Use o nome do arquivo como o nome do filme? [3]".

Pode atualizá-lo mais tarde no github , eis o que existe por enquanto:

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

O MetaX for Windows marcará arquivos MKV (além de MP4, M4V, WMV e AVI). Também pesquisa na Internet as informações a serem usadas para marcação (arte da capa, atores, ...)

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.