Bất kỳ cách nào để chỉnh sửa siêu dữ liệu của các tệp MKV (không cần mã hóa lại)?


14

Khi xem tệp MKV từ web trong VLC, thanh tiêu đề (xem "# 1" trong hình ảnh bên dưới) dường như được lấy từ siêu dữ liệu, không phải tên tệp.

Nếu bạn mở bảng điều khiển Nhận thông tin trong VLC, bạn có thể thay đổi tiêu đề (Cúp # 2) và sau đó nhấp vào Lưu Lưu Siêu dữ liệu ((# # 3), nhưng khi tệp được mở lại, thông tin cũ là cho xem.

Tôi chưa tìm thấy bất kỳ ứng dụng Mac nào khác có thể chỉnh sửa siêu dữ liệu MKV. Một số đề nghị chỉnh sửa siêu dữ liệu mp4, nhưng đó không phải là thứ tôi cần.

Ảnh chụp màn hình chú thích VLC

Câu trả lời:


15

Tôi đã tìm thấy một cách để làm điều này bằng cách sử dụng mkvpropeditđó là một phần của mkvtoolnix .

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

Có một trình bao bọc GUI cho ứng dụng này và các hướng dẫn cài đặt Mac khác có sẵn tại trang web chính thức .


6

Ngoài ra, người ta có thể sử dụng mkvpropedittập lệnh bash để đặt tiêu đề của tất cả các tệp mkv trong một thư mục. (Cho tên tệp là tiêu đề mong muốn.)

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

Chỉ cần mở tệp trong trình phát VLC, Ctrl + I, chọn Siêu dữ liệu mong muốn, tiêu đề, v.v., thay đổi và ở dưới cùng, nhấp vào 'Lưu dữ liệu'. Đó là tất cả.

Không cần biên tập bên ngoài khác.


2
Đó là trong OP. Anh ấy nói nó không hoạt động.
Tetsujin

1
Tôi đã thử điều này bằng cách sử dụng VLC trên máy mac và nó hoạt động. Bạn chỉ cần chắc chắn nhấp vào nút "Lưu siêu dữ liệu" trong cửa sổ Thông tin phương tiện. Nó không phải là thứ dễ tìm thấy nhất.
Ascii Dude

1
Tôi nghĩ những gì có thể xảy ra là nếu bạn thay đổi nó, nó sẽ lưu lại, nhưng nếu bạn chỉ xóa nó, thì không.
Tetsujin

@Tetsujin là chính xác, nếu bạn nhập một giá trị trống thì nó sẽ không chấp nhận, nó sẽ trông như đang hoạt động nhưng khi bạn kiểm tra lại thì giá trị cũ vẫn còn đó, vì vậy thật dễ dàng để cho rằng nó "không hoạt động" và trong một cách tôi đoán nó không. Nói tóm lại, bạn không thể xóa, chỉ cần đổi sang thứ khác.
pzkpfw

1

Cách MKVToolNixGUI:

  1. Từ menu chọn trình soạn thảo tiêu đề.

nhập mô tả hình ảnh ở đây

  1. Mở mkvtệp.

  2. Dưới segment informationđó là một titlemục, thay đổi tiêu đề như bạn muốn.

nhập mô tả hình ảnh ở đây

  1. Không có nút lưu, hãy sử dụng menu chính để lưu các thay đổi.

nhập mô tả hình ảnh ở đây


Điều này hoạt động, nhưng nó hoạt động cùng một lúc - xem apple.stackexchange.com/questions/367737/iêu cho một phương pháp số lượng lớn.
Tetsujin

0

Đã tải xuống một loạt các tập tin, nhiều trong số đó có một số *** trong tiêu đề của nó, như một phần mở rộng của một câu trả lời khác tạo ra kịch bản của riêng tôi.

Nó thay đổi tiêu đề cho tất cả .mkvcác tệp trong thư mục (và đó là thư mục con) trong khi yêu cầu một hành động thích hợp. Các hành động là "Giữ tên? [1] / Nhập tên mới? [2] / Sử dụng tên tệp làm tên phim? [3]".

Có thể cập nhật nó sau trên github , đây là những gì hiện có:

#!/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 cho Windows sẽ gắn thẻ các tệp MKV (cũng như MP4, M4V, WMV và AVI). Nó cũng tìm kiếm trên internet các thông tin để sử dụng để gắn thẻ (ảnh bìa, diễn viên, ...)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.