จะเพิ่มและลบคำบรรยายในไฟล์ MKV ได้อย่างไร?


28

ฉันมีไฟล์ MKV คุณภาพดีที่มีตัวเลือกคำบรรยายหลายตัว ฉันต้องการเพิ่มไฟล์คำบรรยายเพิ่มเติมลงในรายการ ฉันใช้ OSX

การค้นหาออนไลน์ทำให้ฉันใช้ตัวแปลงวิดีโอและเข้ารหัสภาพยนตร์เป็นไฟล์ใหม่อีกครั้ง ดูเหมือนจะเกินความจริงสำหรับฉัน บวกฉันอาจหลวมคำบรรยายก่อนหน้าและคุณภาพของภาพไปพร้อมกัน

คำตอบ:


41

การลบคำบรรยาย:

mkvmerge -o output.mkv input.mkv -S # remove all subtitle tracks
mkvmerge -o output.mkv input.mkv -s 3,4 # remove tracks 3 and 4
mkvmerge -o output.mkv input.mkv -s '!3' # remove all subtitle tracks except 3
mkvmerge -i input.mkv # show track numbers

การเพิ่มคำบรรยาย:

mkvmerge -o output.mkv input.mkv subs.srt
mkvmerge -o output.mkv input.mkv --language 0:ger --track-name 0:German subs.srt

แยกคำบรรยาย:

mkvextract tracks input.mkv 3:subs.srt
for f in *.mkv; do
  sub=$(mkvmerge -i "$f" | awk '$4=="subtitles"{print;exit}')
  [[ $sub ]] || continue
  [[ $sub =~ S_TEXT/ASS ]] && ext=ass || ext=srt
  track=$(awk -F '[ :]' '{print $3}' <<< "$sub")
  mkvextract tracks "$f" "$track:${f%mkv}$ext"
done

mkvmerge และ mkvextract สามารถติดตั้งbrew install mkvtoolnixได้


2
MKVMerge GUI มีอยู่แล้วใน Mac OS X แต่ก็เป็นวิธีที่ดีสำหรับแฟน ๆ คอนโซล
Bora

โปรดทราบว่าคำสั่งข้างต้นสำหรับการเพิ่มคำบรรยายยังตั้งค่าคำบรรยายเป็น "เปิดใช้งานโดยค่าเริ่มต้น" เมื่อเล่นไฟล์ (ธงนี้ได้รับการยืนยันโดยใช้ mkvmerge GUI.) --default-track '0:0'เพื่อหลีกเลี่ยงนี้ใช้
งัด Bynens

4

มีวิธีพื้นฐานสองวิธีในการแสดงคำบรรยาย คุณสามารถเข้ารหัสพิกเซลลงในวิดีโอได้ สิ่งนี้เรียกว่า "hardsubbing" ข้อได้เปรียบที่นี่คือความเรียบง่ายสำหรับเครื่องเล่นวิดีโอมันเป็นเพียงสตรีมวิดีโอ ข้อเสียคือคุณต้องเข้ารหัสวิดีโออีกครั้งซึ่งต้องใช้เวลาและมีการสูญเสียความจงรักภักดี หากคุณได้รับการแปลที่ดีขึ้นก็คือพิกเซลในวิดีโอ และคุณสามารถมีเพียงภาษาเดียวเท่านั้น

สิ่งที่ดีกว่าคือ "softsubbing" ซึ่งจะต้องมีไฟล์ข้อความแยกจากสตรีมวิดีโอ มีไฟล์คำบรรยายในรูปแบบที่แตกต่างกันมากมาย แต่ที่ฐานพวกเขาทั้งหมดมี "ข้อความเริ่มต้นเวลาลบเวลาใด" ที่แกนของพวกเขา บางรุ่นมีคุณสมบัติเพิ่มเติมเช่นสีและการวางแนวบนหน้าจอ ข้อดีของการทำเช่นนี้คือคุณสามารถมีหลายภาษา (คิดว่าเป็นดีวีดีคุณมีหลายภาษา) และคุณสามารถแก้ไขข้อผิดพลาดและสิ่งที่อยู่ในไฟล์ได้ และถ้าคุณไม่ต้องการคำบรรยายคุณก็แค่ปิดมัน

Softsubs สามารถแยกไฟล์ได้ - ผู้เล่นส่วนใหญ่จะค้นหาคำบรรยายอัตโนมัติที่มีชื่อเดียวกัน (นามสกุลต่างกัน) เป็นวิดีโอหลัก หรือบางรูปแบบไฟล์คอนเทนเนอร์ (เช่น MKV) สามารถฝังไว้ใน ลองดูMKVtoolnix (มีพอร์ต mac) สำหรับเครื่องมือไฟล์ MKV วิธีนี้จะช่วยให้คุณสามารถฝัง softsub ได้โดยไม่ต้องเข้ารหัส

โปรดทราบว่าผู้เล่นบางคนไม่สามารถรองรับทุกรูปแบบ ประสบการณ์ของฉันคือ XBMC มีปัญหากับไฟล์ SSA แต่ไฟล์ SRT ที่ง่ายกว่านั้นใช้ได้ VLC จะเล่นทุกอย่างถ้ามันรองรับแพลตฟอร์มของคุณ


1
คำตอบที่ดีแม้ว่ามันควรจะสังเกตได้ว่าบางคำบรรยายอ่อน - โดยเฉพาะอย่างยิ่งคำบรรยายดีวีดี - เป็นบิตแมปตามแทนที่จะเป็นข้อความ ผลกระทบหลักที่ทำให้พวกเขาแทบจะเป็นไปไม่ได้ที่จะแก้ไข -_-
evilsoup

@evilsoup ขอบคุณไม่รู้ว่า
Rich Homolka

1
ใช่ IDX + SUB VOBsubโดยที่ IDX เป็นไฟล์ข้อความ แต่ SUB มีบิตแมป
Karan

ลิงค์เปลี่ยนไปยังหน้าดาวน์โหลดโดยตรง
Bora

0

ฉันรู้ว่านี่เป็นคำถามเก่าและuser495470คำตอบของคำตอบนั้นได้รับการยอมรับในปี 2013 แต่เนื่องจากส่วนหนึ่งของคำถามเกี่ยวกับการเพิ่มคำบรรยายลงในไฟล์ฉันจึงต้องการเพิ่มส่วนเสริมใหม่นี้

โดยพื้นฐานแล้วฉันจำเป็นต้องรวม.assคำบรรยายหลายสิบคำลงในไฟล์ MKV ที่มีชื่อคล้ายกันดังนั้นการทำคำสั่งนี้ทีละคำสั่งไม่ได้เป็นการตัดทิ้ง ดังนั้นฉันจึงสร้างสคริปต์ Bash ง่าย ๆ นี้ขึ้นมาซึ่งจะค้นหาไดเรกทอรีปัจจุบันที่เรียกใช้จาก.assไฟล์จากนั้นจึงรวมมันตามที่คาดไว้

find -E . -maxdepth 1 -type f -iregex '.*\.(ASS|SRT)$' |\
  while read FILEPATH
  do
    DIRNAME=$(dirname "${FILEPATH}");
    BASENAME=$(basename "${FILEPATH}");
    FILENAME="${BASENAME%.*}";
    EXTENSION="${BASENAME##*.}"
    mkvmerge -o "/Users/jake/${FILENAME}"-NEW.mkv "${FILENAME}".mp4 --language 0:eng --track-name 0:English "${FILENAME}"."${EXTENSION}"
  done

แน่นอนว่าสคริปต์ง่าย ๆ นี้สมมติว่าคำบรรยายเป็นภาษาอังกฤษและรวมเข้าด้วยกัน แต่สามารถปรับเปลี่ยนได้ตามความต้องการ ปัญหาใหญ่ของการรวมคำบรรยายโดยอัตโนมัติเข้ากับ MKV ได้รับการแก้ไขโดยสคริปต์ง่าย ๆ เช่นนี้

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