有什么方法可以编辑MKV文件的元数据(无需重新编码)?


14

在VLC中从网上观看MKV文件时,标题栏(请参见下图的“#1”)似乎是从元数据中提取的,而不是文件名中的。

如果您在VLC中打开“获取信息”面板,则可以更改标题(“#2”),然后单击“保存元数据”(“#3”),但是当重新打开文件时,旧信息是如图所示。

我还没有找到可以编辑MKV元数据的其他Mac应用程序。有几个提供编辑mp4元数据的功能,但这不是我所需要的。

VLC带注释的屏幕截图

Answers:


15

我已经找到了使用mkvtoolnixmkvpropedit一部分的方法。

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

官方网站上提供了此应用程序的GUI包装程序以及其他Mac安装说明。


6

另外,可以mkvpropedit在bash脚本中使用它来设置目录中所有mkv文件的标题。(鉴于文件名是所需的标题。)

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

只需在VLC播放器中打开文件,按Ctrl + I,选择所需的元数据,标题等,进行更改,然后在底部单击“保存数据”。就这样。

无需其他外部编辑器。


2
那是在OP中。他说这没用。
Tetsujin

1
我在Mac上使用VLC进行了尝试,并且可以正常工作。您只需要确保在“媒体信息”窗口中单击“保存元数据”按钮即可。这不是最容易找到的东西。
阿西·杜德

1
我认为可能发生的情况是,如果您对其进行更改,它将保存,但是如果您将其删除,则不会。
Tetsujin

@Tetsujin是正确的,如果您输入一个空值,它将不会接受它,它看起来像在工作,但是当您再次检查旧值仍然存在时,则很容易假定它“不工作”,并且在我猜不是这样。简而言之,您无法删除,只能更改为其他内容。
pzkpfw

1

MKVToolNixGUI方式:

  1. 从菜单中选择标题编辑器。

在此处输入图片说明

  1. 打开mkv文件。

  2. 在下面segment information有一个title项目,根据需要更改标题。

在此处输入图片说明

  1. 没有保存按钮,请使用主菜单保存更改。

在此处输入图片说明


可以,但是一次只用一次- 有关批量方法,请参阅apple.stackexchange.com/questions/367737/…
Tetsujin

0

下载了一大堆文件,其中许多文件的标题都带有***,作为对另一个答案的扩展,它使我自己编写了脚本。

它会更改.mkv目录(及其子目录)中所有文件的标题,同时要求采取适当的措施。动作为“保留名称?[1] /键入新名称?[2] /使用文件名作为电影名称?[3]”。

稍后可能会在github上对其进行更新,这是现在的内容:

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

Windows的MetaX将标记MKV文件(以及MP4,M4V,WMV和AVI)。它还会在互联网上搜索要用于标记的信息(封面艺术,演员等)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.