Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> ซอฟต์แวร์

แก้ปัญหา Subtitle ไม่ตรงเวลา: คู่มือขั้นตอนละเอียด

Subtitle ไม่ซิงกับการเล่น? มาแก้กัน

อัปเดต: 29 พฤศจิกายน 2567

ปัญหาที่เผชิญคือ อยากดูหนังภาษาต่างด้าว ต้องมีซับทายทูล ปัจจุบันหาไฟล์ซับทายทูล (.srt) ได้ง่ายมาก หลายภาษา แค่ดาวน์โหลด มาตั้งชื่อเดียวกับไฟล์หนัง บ็อบบี้ลุงของคุณ (Bob's your uncle) โปรแกรมเล่นสื่อที่น่าเคารพ - หรือ VLC ที่ดีที่สุด - จะโหลดและแสดงซับทายทูลอัตโนมัติ แต่ถ้า out of sync ล่ะ?

ผมพูดถึง Linux และซับทายทูลนานมาก สิ่งที่เขียนส่วนใหญ่ยังใช้ได้ แต่ไม่ได้ครอบคลุมการเปลี่ยนเวลาในไฟล์ซับทายทูล อาจมีคำถูกต้องแต่โชว์ช้าหรือเร็วเกินไป แค่ 300ms ต่างก็ทำให้ชिघร้าย มากกว่านั้นเล่นไม่ได้ มาแสดงวิธีแก้ซับทายทูลให้รวดเร็วง่ายๆ

แก้ปัญหา Subtitle ไม่ตรงเวลา: คู่มือขั้นตอนละเอียด

เครื่องมือหลัก: ffmpeg

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

ผมจะสาธิตใช้งานใน Linux คำสั่งเหมือนกันทุก OS ที่รัน ffmpeg ได้ ต่างกันแค่การติดตั้ง ใน Linux คือ:

(sudo) [package manager] install ffmpeg

เช่น Debian/Ubuntu family:

sudo apt install ffmpeg

ตอนนี้แก้ offset ซับทายทูล ผมเขียนคู่มือ ffmpeg ไปแล้ว ค่อนข้างครบ และมีบทความ memes HD ด้วย แต่เหมือนกันไม่ครอบคลุมการเปลี่ยน time offset ฟังก์ชันอยู่ แค่ต้องใช้ flag ใหม่:

ffmpeg -itsoffset [เวลา] -i [ไฟล์ซับทายทูล] -c copy [ไฟล์ซับทายทูลที่แก้ไข]

ตัวอย่างปฏิบัติ:

ffmpeg -itsoffset -13.6 -i sub1.srt -c copy subs2.srt

อธิบายคำสั่ง

  • -itsoffset ใช้เลื่อน input streams ใช้กับ single-stream อย่าง .srt (ข้อความ) หรือวิดีโอ/ออดิโอหลายสตรีม เช่นหนังทั่วไปที่มีวิดีโอทรัคและออดิโอทรัค ทั่วไปทีละอัน ดูบทความตัดต่อสื่ออื่นๆ ที่ผมใช้ KDEnlive
  • -13.6 คือ offset จริง รูปแบบ ss.mmm สามารถระบุลงถึง 1 ms ได้ ในกรณีผม เล่นไฟล์ดู เอง เช็คเวลาที่ซับทายทูลโชว์/ควรโชว์ ในฉากง่าย ปรับให้เหมาะสม ลองสองสามครั้งเพื่อหาค่าที่ถูกต้อง ไม่ใช่วิทยาศาสตร์ที่แม่นยำ -13.7 หรือ -13.55 ก็ใช้ได้ ในกรณีผม offset เป็นลบ
  • ระบุ input stream ไฟล์ซับทายทูลต้นฉบับ ใช้ no codec (copy) เพราะตัวเลือกนี้ไม่มีความหมายมากกับ SRT และสุดท้ายคือไฟล์เอาต์พุต ที่จะกลายเป็นซับทายทูลที่ตรงเวลา สำหรับหนังเรื่องเดิม

แค่นี้แหละ บ็อบบี้ลุงของคุณจริงๆ!

สรุป

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

ถ้าคุณดูสื่อทั่วโลก ไม่ได้แค่ภาษาอังกฤษ บางครั้งเจอหนังที่ไม่เข้าใจภาษาต้นฉบับ ต้องมีซับทายทูล อยากให้ซับทายทูลตรงกับเนื้อเรื่อง หากไม่ตรง ffmpeg แก้ได้ง่าย ฟังก์ชัน offset เรียบง่าย เร็ว ขลัง หนึ่งสองวินาทีเสร็จ สวัสดีครับ

Cheers.