มีวิธีใดในการแก้ไขข้อมูลเมตาของไฟล์ MKV (โดยไม่ต้องเข้ารหัสซ้ำ)


14

เมื่อดูไฟล์ MKV จากเว็บใน VLC แถบชื่อเรื่อง (ดู "# 1" ในภาพด้านล่าง) ดูเหมือนว่าจะถูกดึงมาจากข้อมูลเมตาไม่ใช่ชื่อไฟล์

หากคุณเปิดแผง“ รับข้อมูล” ใน VLC คุณสามารถเปลี่ยนชื่อ (“ # 2”) จากนั้นคลิก“ บันทึกข้อมูลเมตา” (“ # 3”) แต่เมื่อเปิดไฟล์ใหม่ข้อมูลเก่าจะเป็น แสดงให้เห็นว่า

ฉันไม่พบแอป Mac อื่น ๆ ที่สามารถแก้ไขข้อมูลเมตา MKV ได้ มีหลายข้อเสนอให้แก้ไขข้อมูลเมตา mp4 แต่นั่นไม่ใช่สิ่งที่ฉันต้องการ

ภาพหน้าจอ VLC ที่มีคำอธิบายประกอบ

คำตอบ:


15

ฉันได้พบวิธีที่จะทำใช้นี้mkvpropeditซึ่งเป็นส่วนหนึ่งของmkvtoolnix

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

มีเสื้อคลุม GUI สำหรับ app นี้และคำแนะนำการติดตั้ง Mac อื่น ๆสามารถดูได้ที่เว็บไซต์อย่างเป็นทางการ


6

นอกจากนี้หนึ่งสามารถใช้mkvpropeditในสคริปต์ทุบตีเพื่อตั้งชื่อของไฟล์ 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 player, Ctrl + I, เลือก Metadata, ชื่ออื่น ๆ , เปลี่ยนจากนั้นที่ด้านล่าง, คลิก 'Save Data' นั่นคือทั้งหมดที่

ไม่จำเป็นต้องใช้โปรแกรมแก้ไขภายนอกอื่น


2
ที่อยู่ใน OP เขาบอกว่ามันไม่ทำงาน
Tetsujin

1
ฉันลองสิ่งนี้โดยใช้ VLC บน mac และใช้งานได้ คุณต้องคลิกปุ่ม "บันทึกข้อมูลเมตา" ในหน้าต่างข้อมูลสื่อ ไม่ใช่สิ่งที่ง่ายที่สุดในการค้นหา
Ascii Dude

1
ฉันคิดว่าสิ่งที่อาจเกิดขึ้นคือถ้าคุณเปลี่ยนมันจะบันทึก แต่ถ้าคุณเพิ่งลบมันไม่ได้
Tetsujin

@Tetsujin ถูกต้องหากคุณป้อนค่าว่างเปล่ามันจะไม่ยอมรับมันจะดูเหมือนว่ามันใช้งานได้ แต่เมื่อคุณตรวจสอบอีกครั้งค่าเก่ายังคงอยู่ที่นั่นดังนั้นมันง่ายที่จะสมมติว่า "ไม่ทำงาน" และใน วิธีที่ฉันคิดว่ามันไม่ ในระยะสั้นคุณไม่สามารถลบได้เพียงแค่เปลี่ยนเป็นอย่างอื่น
pzkpfw

2

MKVToolNixวิธี GUI:

  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

MetaX สำหรับ Windows จะติดแท็กไฟล์ MKV (รวมถึง MP4, M4V, WMV และ AVI) นอกจากนี้ยังค้นหาข้อมูลเพื่อใช้ในการติดแท็กอินเทอร์เน็ต (หน้าปก, นักแสดง, ... )

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.