답변:
나는 mkvtoolnix의mkvpropedit
일부를 사용하여 이것을 수행하는 방법을 찾았습니다 .
mkvpropedit "foo.mkv" -e info -s title="This Is The Title"
이 응용 프로그램에 대한 GUI 래퍼와 공식 웹 사이트에서 사용할 수있는 다른 Mac 설치 지침이 있습니다 .
또한 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
VLC 플레이어에서 파일을 열고 Ctrl + I를 누르고 원하는 메타 데이터, 제목 등을 선택한 다음 아래에서 '데이터 저장'을 클릭하십시오. 그게 다야.
다른 외부 편집기는 필요하지 않습니다.
MKVToolNix
GUI 방법 :
열려있는 mkv
파일을.
아래 segment information
가 title
원하는대로 항목, 변경 제목입니다.
다른 답변 의 확장이 내 자신의 스크립트를 만들었 기 때문에 많은 파일이 제목에 *** 인 많은 전리품을 다운로드했습니다 .
.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