คู่มือผลิตภัณฑ์

วิธีเพิ่ม SRT ลงใน MP4: ฝังถาวรหรือเลือกเปิดปิดได้?

Jump to section

Jump to section

สรุปด้วย

สรุปด้วย

แชร์

แชร์

แชร์

เครื่องมือแปลวิดีโอ AI การทำให้เข้าท้องถิ่น และการพากย์เสียง

ลองใช้งานฟรี

เพิ่มคำบรรยาย SRT ลงใน MP4 เป็นแทร็กคำบรรยายที่เลือกเปิดปิดได้ หรือฝังข้อความลงในภาพวิดีโอเพื่อให้แสดงอยู่เสมอ

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

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

เลือกวิธีส่งมอบคำบรรยาย

วิธี

สิ่งที่ส่งมอบ

ผู้ชมปิดคำบรรยายได้หรือไม่?

ต้องเข้ารหัสภาพใหม่หรือไม่?

SRT แยกไฟล์

MP4 พร้อม SRT

ได้ หากแพลตฟอร์มหรือโปรแกรมเล่นรองรับคำบรรยาย

ไม่ต้อง สำหรับไฟล์ต้นฉบับ

แทร็กคำบรรยายภายในไฟล์

MP4 หนึ่งไฟล์ที่มีแทร็กข้อความ

ได้ ในโปรแกรมเล่นที่รองรับ

ไม่ต้อง เมื่อใช้วิธีคัดลอกสตรีมด้านล่าง

คำบรรยายฝังถาวรในภาพ

MP4 หนึ่งไฟล์ที่มีข้อความอยู่ในภาพ

ไม่ได้

ต้อง เมื่อใช้วิธีด้านล่าง

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

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

เตรียม MP4 และ SRT แบบ UTF-8

วาง original.mp4 และ captions.srt ในโฟลเดอร์ทำงานเดียวกัน ใช้สำเนาของไฟล์ต้นฉบับ คำสั่งด้านล่างจะสร้างไฟล์ผลลัพธ์ใหม่ จึงควรเลือกชื่อผลลัพธ์ที่ยังไม่ถูกใช้งาน

คำบรรยายแต่ละรายการใน SRT มีหมายเลข เวลาเริ่มและสิ้นสุด และข้อความคำบรรยาย คั่นแต่ละรายการด้วยบรรทัดว่าง:


บันทึกไฟล์เป็นข้อความ UTF-8 โดยใช้นามสกุล .srt ตรวจว่าคำบรรยายตรงกับวิดีโอฉบับตัดต่อเดียวกัน ไฟล์คำบรรยายจากฉบับตัดต่อก่อนหน้าอาจมีข้อความถูกต้องแต่เวลาไม่ตรง

วิธีต่อไปนี้ใช้ FFmpeg จาก แหล่งดาวน์โหลดอย่างเป็นทางการ การฝังคำบรรยายถาวรต้องใช้บิลด์ที่มีฟิลเตอร์ subtitles และรองรับ libass การติดตั้ง FFmpeg เพียงอย่างเดียวไม่ได้รับประกันว่าจะมีฟิลเตอร์เสริมนี้

เพิ่มแทร็กคำบรรยายที่เลือกได้โดยไม่เข้ารหัสวิดีโอใหม่

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

ffmpeg -i original.mp4 -i captions.srt \
  -map 0:v:0 -map '0:a?' -map 1:0 \
  -c:v copy -c:a copy -c:s mov_text \
  -metadata:s:s:0 language

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

ตัวอย่างนี้สมมติว่าสตรีมต้นฉบับเหมาะกับ MP4 หาก FFmpeg รายงานว่าโคเดกเสียงไม่รองรับ ให้เลือกวิธีแปลงเสียงที่เหมาะสม แทนการลบข้อความข้อผิดพลาดแล้วลองใหม่โดยไม่เปลี่ยนแปลงอะไร เก็บไฟล์ต้นฉบับไว้ระหว่างตัดสินใจ

เปิด selectable.mp4 ในโปรแกรมเล่นที่ต้องการใช้ แล้วหาเมนูคำบรรยายหรือภาษา เปิดแทร็กภาษาอังกฤษแล้วปิด หากไม่มีตัวเลือกคำบรรยาย ให้ทดสอบโปรแกรมเล่นที่รองรับรูปแบบแทร็กภายในไฟล์นี้ หรือใช้วิธีส่งมอบที่ปลายทางรองรับ

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

ฝัง SRT ลงในภาพ MP4 แบบถาวร

เรียกใช้คำสั่งนี้จากโฟลเดอร์ทำงานเดิม:

ffmpeg -i original.mp4 -vf "subtitles=captions.srt" \
  -map 0:v:0 -map '0:a?' \
  -c:v libx264 -crf 18 -pix_fmt yuv420p \
  -c

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

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

หากคำสั่งรายงาน No such filter: subtitles ให้ตรวจบิลด์ที่ติดตั้ง คุณต้องใช้เวอร์ชันที่คอมไพล์พร้อมส่วนประกอบที่จำเป็นสำหรับเรนเดอร์คำบรรยาย เอกสารฟิลเตอร์คำบรรยายของ FFmpeg อธิบายข้อกำหนดเหล่านี้ การเปลี่ยนชื่อไฟล์ SRT ไม่ได้เพิ่มฟิลเตอร์ที่ขาดไป

หากต้องการใช้ส่วนติดต่อแบบกราฟิก HandBrake มีเอกสารการนำเข้า SRT และการฝังคำบรรยาย ไฟล์ตัวอย่างในคู่มือนี้สร้างด้วย FFmpeg จึงไม่ใช่ขั้นตอนการใช้งาน UI ของ HandBrake

ผลจากการทดสอบที่ทำซ้ำได้ของเรา

เราสร้างวิดีโอทดสอบสังเคราะห์ความยาว 12 วินาที ขนาด 1280 × 720 โดยไม่มีเสียง พร้อม SRT ภาษาอังกฤษสี่รายการ จากนั้นใช้ FFmpeg 9.0.1 สร้าง MP4 ที่มีแทร็กคำบรรยายภายในไฟล์ และ MP4 ที่ฝังคำบรรยายถาวรในภาพ

ฉบับแทร็กภายในไฟล์มีวิดีโอ H.264 และสตรีมคำบรรยาย mov_text เมื่อแยกสตรีมนั้นกลับเป็น SRT ข้อความและเวลายังคงเดิม ต่างกันเพียงบรรทัดว่างท้ายไฟล์ ค่าแฮชของวิดีโอที่ถอดรหัสแล้วตรงกับต้นฉบับ ยืนยันว่าการทดสอบนี้เก็บรักษาภาพไว้

ผลลัพธ์แบบฝังถาวรมีสตรีมวิดีโอที่เห็นข้อความคำบรรยายในเฟรมที่ถอดรหัสแล้ว โดยไม่ต้องมีสตรีมคำบรรยายแยกเพื่อแสดงข้อความเหล่านั้น


คำบรรยายแรกที่เรนเดอร์ถาวรลงในวิดีโอทดสอบ

ตัวอย่างวิดีโอสังเคราะห์ที่วินาทีแรก ข้อความคำบรรยายเป็นส่วนหนึ่งของเฟรมวิดีโอที่ถอดรหัสแล้ว นี่คือตัวอย่าง FFmpeg ที่ทำในเครื่อง ไม่ใช่วิดีโอที่สร้างด้วย Perso

ลองใช้อินพุตเดียวกัน: MP4 ทดสอบต้นฉบับ และ SRT สี่รายการ เปรียบเทียบ ผลลัพธ์แบบแทร็กภายในไฟล์ กับ ผลลัพธ์แบบฝังถาวร

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

แก้คำบรรยายที่ขึ้นช้า หายไป หรือแสดงอักขระผิด

คำบรรยายปรากฏผิดเวลา

เทียบคำบรรยายรายการแรกกับเหตุการณ์ที่สังเกตได้ชัดในวิดีโอ ในตัวอย่างด้านเวลา การเปลี่ยนรายการแรกจาก 00:00:00,500 เป็น 00:00:02,500 ทำให้ขึ้นช้าไปสองวินาที การคืนค่าเวลาเดิมจะแก้การเลื่อนที่ตั้งใจใส่ไว้นี้

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

คำบรรยายหายไปหลังอัปโหลด

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

อย่าเพิ่มแทร็กคำบรรยายของแพลตฟอร์มอีกชั้นทับฉบับที่ฝังคำบรรยายแล้วโดยยังไม่ได้ตรวจผลการรับชม ข้อความสองชั้นอาจซ้อนทับกัน

อักขระแสดงไม่ถูกต้อง

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

ต้องสร้างคำบรรยายก่อนรวมไฟล์หรือไม่?

หากมี SRT ที่ถูกต้องแล้ว ให้ใช้ได้ทันที หากยังต้องสร้างหรือแปลคำบรรยาย เริ่มจาก ขั้นตอนคำบรรยายของ Perso หรือ คู่มือคำบรรยายหลายภาษา

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

คำถามที่พบบ่อย

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

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

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

เพิ่มคำบรรยาย SRT ลงใน MP4 เป็นแทร็กคำบรรยายที่เลือกเปิดปิดได้ หรือฝังข้อความลงในภาพวิดีโอเพื่อให้แสดงอยู่เสมอ

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

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

เลือกวิธีส่งมอบคำบรรยาย

วิธี

สิ่งที่ส่งมอบ

ผู้ชมปิดคำบรรยายได้หรือไม่?

ต้องเข้ารหัสภาพใหม่หรือไม่?

SRT แยกไฟล์

MP4 พร้อม SRT

ได้ หากแพลตฟอร์มหรือโปรแกรมเล่นรองรับคำบรรยาย

ไม่ต้อง สำหรับไฟล์ต้นฉบับ

แทร็กคำบรรยายภายในไฟล์

MP4 หนึ่งไฟล์ที่มีแทร็กข้อความ

ได้ ในโปรแกรมเล่นที่รองรับ

ไม่ต้อง เมื่อใช้วิธีคัดลอกสตรีมด้านล่าง

คำบรรยายฝังถาวรในภาพ

MP4 หนึ่งไฟล์ที่มีข้อความอยู่ในภาพ

ไม่ได้

ต้อง เมื่อใช้วิธีด้านล่าง

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

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

เตรียม MP4 และ SRT แบบ UTF-8

วาง original.mp4 และ captions.srt ในโฟลเดอร์ทำงานเดียวกัน ใช้สำเนาของไฟล์ต้นฉบับ คำสั่งด้านล่างจะสร้างไฟล์ผลลัพธ์ใหม่ จึงควรเลือกชื่อผลลัพธ์ที่ยังไม่ถูกใช้งาน

คำบรรยายแต่ละรายการใน SRT มีหมายเลข เวลาเริ่มและสิ้นสุด และข้อความคำบรรยาย คั่นแต่ละรายการด้วยบรรทัดว่าง:


บันทึกไฟล์เป็นข้อความ UTF-8 โดยใช้นามสกุล .srt ตรวจว่าคำบรรยายตรงกับวิดีโอฉบับตัดต่อเดียวกัน ไฟล์คำบรรยายจากฉบับตัดต่อก่อนหน้าอาจมีข้อความถูกต้องแต่เวลาไม่ตรง

วิธีต่อไปนี้ใช้ FFmpeg จาก แหล่งดาวน์โหลดอย่างเป็นทางการ การฝังคำบรรยายถาวรต้องใช้บิลด์ที่มีฟิลเตอร์ subtitles และรองรับ libass การติดตั้ง FFmpeg เพียงอย่างเดียวไม่ได้รับประกันว่าจะมีฟิลเตอร์เสริมนี้

เพิ่มแทร็กคำบรรยายที่เลือกได้โดยไม่เข้ารหัสวิดีโอใหม่

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

ffmpeg -i original.mp4 -i captions.srt \
  -map 0:v:0 -map '0:a?' -map 1:0 \
  -c:v copy -c:a copy -c:s mov_text \
  -metadata:s:s:0 language

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

ตัวอย่างนี้สมมติว่าสตรีมต้นฉบับเหมาะกับ MP4 หาก FFmpeg รายงานว่าโคเดกเสียงไม่รองรับ ให้เลือกวิธีแปลงเสียงที่เหมาะสม แทนการลบข้อความข้อผิดพลาดแล้วลองใหม่โดยไม่เปลี่ยนแปลงอะไร เก็บไฟล์ต้นฉบับไว้ระหว่างตัดสินใจ

เปิด selectable.mp4 ในโปรแกรมเล่นที่ต้องการใช้ แล้วหาเมนูคำบรรยายหรือภาษา เปิดแทร็กภาษาอังกฤษแล้วปิด หากไม่มีตัวเลือกคำบรรยาย ให้ทดสอบโปรแกรมเล่นที่รองรับรูปแบบแทร็กภายในไฟล์นี้ หรือใช้วิธีส่งมอบที่ปลายทางรองรับ

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

ฝัง SRT ลงในภาพ MP4 แบบถาวร

เรียกใช้คำสั่งนี้จากโฟลเดอร์ทำงานเดิม:

ffmpeg -i original.mp4 -vf "subtitles=captions.srt" \
  -map 0:v:0 -map '0:a?' \
  -c:v libx264 -crf 18 -pix_fmt yuv420p \
  -c

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

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

หากคำสั่งรายงาน No such filter: subtitles ให้ตรวจบิลด์ที่ติดตั้ง คุณต้องใช้เวอร์ชันที่คอมไพล์พร้อมส่วนประกอบที่จำเป็นสำหรับเรนเดอร์คำบรรยาย เอกสารฟิลเตอร์คำบรรยายของ FFmpeg อธิบายข้อกำหนดเหล่านี้ การเปลี่ยนชื่อไฟล์ SRT ไม่ได้เพิ่มฟิลเตอร์ที่ขาดไป

หากต้องการใช้ส่วนติดต่อแบบกราฟิก HandBrake มีเอกสารการนำเข้า SRT และการฝังคำบรรยาย ไฟล์ตัวอย่างในคู่มือนี้สร้างด้วย FFmpeg จึงไม่ใช่ขั้นตอนการใช้งาน UI ของ HandBrake

ผลจากการทดสอบที่ทำซ้ำได้ของเรา

เราสร้างวิดีโอทดสอบสังเคราะห์ความยาว 12 วินาที ขนาด 1280 × 720 โดยไม่มีเสียง พร้อม SRT ภาษาอังกฤษสี่รายการ จากนั้นใช้ FFmpeg 9.0.1 สร้าง MP4 ที่มีแทร็กคำบรรยายภายในไฟล์ และ MP4 ที่ฝังคำบรรยายถาวรในภาพ

ฉบับแทร็กภายในไฟล์มีวิดีโอ H.264 และสตรีมคำบรรยาย mov_text เมื่อแยกสตรีมนั้นกลับเป็น SRT ข้อความและเวลายังคงเดิม ต่างกันเพียงบรรทัดว่างท้ายไฟล์ ค่าแฮชของวิดีโอที่ถอดรหัสแล้วตรงกับต้นฉบับ ยืนยันว่าการทดสอบนี้เก็บรักษาภาพไว้

ผลลัพธ์แบบฝังถาวรมีสตรีมวิดีโอที่เห็นข้อความคำบรรยายในเฟรมที่ถอดรหัสแล้ว โดยไม่ต้องมีสตรีมคำบรรยายแยกเพื่อแสดงข้อความเหล่านั้น


คำบรรยายแรกที่เรนเดอร์ถาวรลงในวิดีโอทดสอบ

ตัวอย่างวิดีโอสังเคราะห์ที่วินาทีแรก ข้อความคำบรรยายเป็นส่วนหนึ่งของเฟรมวิดีโอที่ถอดรหัสแล้ว นี่คือตัวอย่าง FFmpeg ที่ทำในเครื่อง ไม่ใช่วิดีโอที่สร้างด้วย Perso

ลองใช้อินพุตเดียวกัน: MP4 ทดสอบต้นฉบับ และ SRT สี่รายการ เปรียบเทียบ ผลลัพธ์แบบแทร็กภายในไฟล์ กับ ผลลัพธ์แบบฝังถาวร

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

แก้คำบรรยายที่ขึ้นช้า หายไป หรือแสดงอักขระผิด

คำบรรยายปรากฏผิดเวลา

เทียบคำบรรยายรายการแรกกับเหตุการณ์ที่สังเกตได้ชัดในวิดีโอ ในตัวอย่างด้านเวลา การเปลี่ยนรายการแรกจาก 00:00:00,500 เป็น 00:00:02,500 ทำให้ขึ้นช้าไปสองวินาที การคืนค่าเวลาเดิมจะแก้การเลื่อนที่ตั้งใจใส่ไว้นี้

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

คำบรรยายหายไปหลังอัปโหลด

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

อย่าเพิ่มแทร็กคำบรรยายของแพลตฟอร์มอีกชั้นทับฉบับที่ฝังคำบรรยายแล้วโดยยังไม่ได้ตรวจผลการรับชม ข้อความสองชั้นอาจซ้อนทับกัน

อักขระแสดงไม่ถูกต้อง

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

ต้องสร้างคำบรรยายก่อนรวมไฟล์หรือไม่?

หากมี SRT ที่ถูกต้องแล้ว ให้ใช้ได้ทันที หากยังต้องสร้างหรือแปลคำบรรยาย เริ่มจาก ขั้นตอนคำบรรยายของ Perso หรือ คู่มือคำบรรยายหลายภาษา

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

คำถามที่พบบ่อย

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

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

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

เพิ่มคำบรรยาย SRT ลงใน MP4 เป็นแทร็กคำบรรยายที่เลือกเปิดปิดได้ หรือฝังข้อความลงในภาพวิดีโอเพื่อให้แสดงอยู่เสมอ

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

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

เลือกวิธีส่งมอบคำบรรยาย

วิธี

สิ่งที่ส่งมอบ

ผู้ชมปิดคำบรรยายได้หรือไม่?

ต้องเข้ารหัสภาพใหม่หรือไม่?

SRT แยกไฟล์

MP4 พร้อม SRT

ได้ หากแพลตฟอร์มหรือโปรแกรมเล่นรองรับคำบรรยาย

ไม่ต้อง สำหรับไฟล์ต้นฉบับ

แทร็กคำบรรยายภายในไฟล์

MP4 หนึ่งไฟล์ที่มีแทร็กข้อความ

ได้ ในโปรแกรมเล่นที่รองรับ

ไม่ต้อง เมื่อใช้วิธีคัดลอกสตรีมด้านล่าง

คำบรรยายฝังถาวรในภาพ

MP4 หนึ่งไฟล์ที่มีข้อความอยู่ในภาพ

ไม่ได้

ต้อง เมื่อใช้วิธีด้านล่าง

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

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

เตรียม MP4 และ SRT แบบ UTF-8

วาง original.mp4 และ captions.srt ในโฟลเดอร์ทำงานเดียวกัน ใช้สำเนาของไฟล์ต้นฉบับ คำสั่งด้านล่างจะสร้างไฟล์ผลลัพธ์ใหม่ จึงควรเลือกชื่อผลลัพธ์ที่ยังไม่ถูกใช้งาน

คำบรรยายแต่ละรายการใน SRT มีหมายเลข เวลาเริ่มและสิ้นสุด และข้อความคำบรรยาย คั่นแต่ละรายการด้วยบรรทัดว่าง:


บันทึกไฟล์เป็นข้อความ UTF-8 โดยใช้นามสกุล .srt ตรวจว่าคำบรรยายตรงกับวิดีโอฉบับตัดต่อเดียวกัน ไฟล์คำบรรยายจากฉบับตัดต่อก่อนหน้าอาจมีข้อความถูกต้องแต่เวลาไม่ตรง

วิธีต่อไปนี้ใช้ FFmpeg จาก แหล่งดาวน์โหลดอย่างเป็นทางการ การฝังคำบรรยายถาวรต้องใช้บิลด์ที่มีฟิลเตอร์ subtitles และรองรับ libass การติดตั้ง FFmpeg เพียงอย่างเดียวไม่ได้รับประกันว่าจะมีฟิลเตอร์เสริมนี้

เพิ่มแทร็กคำบรรยายที่เลือกได้โดยไม่เข้ารหัสวิดีโอใหม่

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

ffmpeg -i original.mp4 -i captions.srt \
  -map 0:v:0 -map '0:a?' -map 1:0 \
  -c:v copy -c:a copy -c:s mov_text \
  -metadata:s:s:0 language

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

ตัวอย่างนี้สมมติว่าสตรีมต้นฉบับเหมาะกับ MP4 หาก FFmpeg รายงานว่าโคเดกเสียงไม่รองรับ ให้เลือกวิธีแปลงเสียงที่เหมาะสม แทนการลบข้อความข้อผิดพลาดแล้วลองใหม่โดยไม่เปลี่ยนแปลงอะไร เก็บไฟล์ต้นฉบับไว้ระหว่างตัดสินใจ

เปิด selectable.mp4 ในโปรแกรมเล่นที่ต้องการใช้ แล้วหาเมนูคำบรรยายหรือภาษา เปิดแทร็กภาษาอังกฤษแล้วปิด หากไม่มีตัวเลือกคำบรรยาย ให้ทดสอบโปรแกรมเล่นที่รองรับรูปแบบแทร็กภายในไฟล์นี้ หรือใช้วิธีส่งมอบที่ปลายทางรองรับ

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

ฝัง SRT ลงในภาพ MP4 แบบถาวร

เรียกใช้คำสั่งนี้จากโฟลเดอร์ทำงานเดิม:

ffmpeg -i original.mp4 -vf "subtitles=captions.srt" \
  -map 0:v:0 -map '0:a?' \
  -c:v libx264 -crf 18 -pix_fmt yuv420p \
  -c

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

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

หากคำสั่งรายงาน No such filter: subtitles ให้ตรวจบิลด์ที่ติดตั้ง คุณต้องใช้เวอร์ชันที่คอมไพล์พร้อมส่วนประกอบที่จำเป็นสำหรับเรนเดอร์คำบรรยาย เอกสารฟิลเตอร์คำบรรยายของ FFmpeg อธิบายข้อกำหนดเหล่านี้ การเปลี่ยนชื่อไฟล์ SRT ไม่ได้เพิ่มฟิลเตอร์ที่ขาดไป

หากต้องการใช้ส่วนติดต่อแบบกราฟิก HandBrake มีเอกสารการนำเข้า SRT และการฝังคำบรรยาย ไฟล์ตัวอย่างในคู่มือนี้สร้างด้วย FFmpeg จึงไม่ใช่ขั้นตอนการใช้งาน UI ของ HandBrake

ผลจากการทดสอบที่ทำซ้ำได้ของเรา

เราสร้างวิดีโอทดสอบสังเคราะห์ความยาว 12 วินาที ขนาด 1280 × 720 โดยไม่มีเสียง พร้อม SRT ภาษาอังกฤษสี่รายการ จากนั้นใช้ FFmpeg 9.0.1 สร้าง MP4 ที่มีแทร็กคำบรรยายภายในไฟล์ และ MP4 ที่ฝังคำบรรยายถาวรในภาพ

ฉบับแทร็กภายในไฟล์มีวิดีโอ H.264 และสตรีมคำบรรยาย mov_text เมื่อแยกสตรีมนั้นกลับเป็น SRT ข้อความและเวลายังคงเดิม ต่างกันเพียงบรรทัดว่างท้ายไฟล์ ค่าแฮชของวิดีโอที่ถอดรหัสแล้วตรงกับต้นฉบับ ยืนยันว่าการทดสอบนี้เก็บรักษาภาพไว้

ผลลัพธ์แบบฝังถาวรมีสตรีมวิดีโอที่เห็นข้อความคำบรรยายในเฟรมที่ถอดรหัสแล้ว โดยไม่ต้องมีสตรีมคำบรรยายแยกเพื่อแสดงข้อความเหล่านั้น


คำบรรยายแรกที่เรนเดอร์ถาวรลงในวิดีโอทดสอบ

ตัวอย่างวิดีโอสังเคราะห์ที่วินาทีแรก ข้อความคำบรรยายเป็นส่วนหนึ่งของเฟรมวิดีโอที่ถอดรหัสแล้ว นี่คือตัวอย่าง FFmpeg ที่ทำในเครื่อง ไม่ใช่วิดีโอที่สร้างด้วย Perso

ลองใช้อินพุตเดียวกัน: MP4 ทดสอบต้นฉบับ และ SRT สี่รายการ เปรียบเทียบ ผลลัพธ์แบบแทร็กภายในไฟล์ กับ ผลลัพธ์แบบฝังถาวร

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

แก้คำบรรยายที่ขึ้นช้า หายไป หรือแสดงอักขระผิด

คำบรรยายปรากฏผิดเวลา

เทียบคำบรรยายรายการแรกกับเหตุการณ์ที่สังเกตได้ชัดในวิดีโอ ในตัวอย่างด้านเวลา การเปลี่ยนรายการแรกจาก 00:00:00,500 เป็น 00:00:02,500 ทำให้ขึ้นช้าไปสองวินาที การคืนค่าเวลาเดิมจะแก้การเลื่อนที่ตั้งใจใส่ไว้นี้

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

คำบรรยายหายไปหลังอัปโหลด

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

อย่าเพิ่มแทร็กคำบรรยายของแพลตฟอร์มอีกชั้นทับฉบับที่ฝังคำบรรยายแล้วโดยยังไม่ได้ตรวจผลการรับชม ข้อความสองชั้นอาจซ้อนทับกัน

อักขระแสดงไม่ถูกต้อง

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

ต้องสร้างคำบรรยายก่อนรวมไฟล์หรือไม่?

หากมี SRT ที่ถูกต้องแล้ว ให้ใช้ได้ทันที หากยังต้องสร้างหรือแปลคำบรรยาย เริ่มจาก ขั้นตอนคำบรรยายของ Perso หรือ คู่มือคำบรรยายหลายภาษา

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

คำถามที่พบบ่อย

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

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

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

เพิ่มคำบรรยาย SRT ลงใน MP4 เป็นแทร็กคำบรรยายที่เลือกเปิดปิดได้ หรือฝังข้อความลงในภาพวิดีโอเพื่อให้แสดงอยู่เสมอ

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

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

เลือกวิธีส่งมอบคำบรรยาย

วิธี

สิ่งที่ส่งมอบ

ผู้ชมปิดคำบรรยายได้หรือไม่?

ต้องเข้ารหัสภาพใหม่หรือไม่?

SRT แยกไฟล์

MP4 พร้อม SRT

ได้ หากแพลตฟอร์มหรือโปรแกรมเล่นรองรับคำบรรยาย

ไม่ต้อง สำหรับไฟล์ต้นฉบับ

แทร็กคำบรรยายภายในไฟล์

MP4 หนึ่งไฟล์ที่มีแทร็กข้อความ

ได้ ในโปรแกรมเล่นที่รองรับ

ไม่ต้อง เมื่อใช้วิธีคัดลอกสตรีมด้านล่าง

คำบรรยายฝังถาวรในภาพ

MP4 หนึ่งไฟล์ที่มีข้อความอยู่ในภาพ

ไม่ได้

ต้อง เมื่อใช้วิธีด้านล่าง

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

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

เตรียม MP4 และ SRT แบบ UTF-8

วาง original.mp4 และ captions.srt ในโฟลเดอร์ทำงานเดียวกัน ใช้สำเนาของไฟล์ต้นฉบับ คำสั่งด้านล่างจะสร้างไฟล์ผลลัพธ์ใหม่ จึงควรเลือกชื่อผลลัพธ์ที่ยังไม่ถูกใช้งาน

คำบรรยายแต่ละรายการใน SRT มีหมายเลข เวลาเริ่มและสิ้นสุด และข้อความคำบรรยาย คั่นแต่ละรายการด้วยบรรทัดว่าง:


บันทึกไฟล์เป็นข้อความ UTF-8 โดยใช้นามสกุล .srt ตรวจว่าคำบรรยายตรงกับวิดีโอฉบับตัดต่อเดียวกัน ไฟล์คำบรรยายจากฉบับตัดต่อก่อนหน้าอาจมีข้อความถูกต้องแต่เวลาไม่ตรง

วิธีต่อไปนี้ใช้ FFmpeg จาก แหล่งดาวน์โหลดอย่างเป็นทางการ การฝังคำบรรยายถาวรต้องใช้บิลด์ที่มีฟิลเตอร์ subtitles และรองรับ libass การติดตั้ง FFmpeg เพียงอย่างเดียวไม่ได้รับประกันว่าจะมีฟิลเตอร์เสริมนี้

เพิ่มแทร็กคำบรรยายที่เลือกได้โดยไม่เข้ารหัสวิดีโอใหม่

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

ffmpeg -i original.mp4 -i captions.srt \
  -map 0:v:0 -map '0:a?' -map 1:0 \
  -c:v copy -c:a copy -c:s mov_text \
  -metadata:s:s:0 language

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

ตัวอย่างนี้สมมติว่าสตรีมต้นฉบับเหมาะกับ MP4 หาก FFmpeg รายงานว่าโคเดกเสียงไม่รองรับ ให้เลือกวิธีแปลงเสียงที่เหมาะสม แทนการลบข้อความข้อผิดพลาดแล้วลองใหม่โดยไม่เปลี่ยนแปลงอะไร เก็บไฟล์ต้นฉบับไว้ระหว่างตัดสินใจ

เปิด selectable.mp4 ในโปรแกรมเล่นที่ต้องการใช้ แล้วหาเมนูคำบรรยายหรือภาษา เปิดแทร็กภาษาอังกฤษแล้วปิด หากไม่มีตัวเลือกคำบรรยาย ให้ทดสอบโปรแกรมเล่นที่รองรับรูปแบบแทร็กภายในไฟล์นี้ หรือใช้วิธีส่งมอบที่ปลายทางรองรับ

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

ฝัง SRT ลงในภาพ MP4 แบบถาวร

เรียกใช้คำสั่งนี้จากโฟลเดอร์ทำงานเดิม:

ffmpeg -i original.mp4 -vf "subtitles=captions.srt" \
  -map 0:v:0 -map '0:a?' \
  -c:v libx264 -crf 18 -pix_fmt yuv420p \
  -c

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

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

หากคำสั่งรายงาน No such filter: subtitles ให้ตรวจบิลด์ที่ติดตั้ง คุณต้องใช้เวอร์ชันที่คอมไพล์พร้อมส่วนประกอบที่จำเป็นสำหรับเรนเดอร์คำบรรยาย เอกสารฟิลเตอร์คำบรรยายของ FFmpeg อธิบายข้อกำหนดเหล่านี้ การเปลี่ยนชื่อไฟล์ SRT ไม่ได้เพิ่มฟิลเตอร์ที่ขาดไป

หากต้องการใช้ส่วนติดต่อแบบกราฟิก HandBrake มีเอกสารการนำเข้า SRT และการฝังคำบรรยาย ไฟล์ตัวอย่างในคู่มือนี้สร้างด้วย FFmpeg จึงไม่ใช่ขั้นตอนการใช้งาน UI ของ HandBrake

ผลจากการทดสอบที่ทำซ้ำได้ของเรา

เราสร้างวิดีโอทดสอบสังเคราะห์ความยาว 12 วินาที ขนาด 1280 × 720 โดยไม่มีเสียง พร้อม SRT ภาษาอังกฤษสี่รายการ จากนั้นใช้ FFmpeg 9.0.1 สร้าง MP4 ที่มีแทร็กคำบรรยายภายในไฟล์ และ MP4 ที่ฝังคำบรรยายถาวรในภาพ

ฉบับแทร็กภายในไฟล์มีวิดีโอ H.264 และสตรีมคำบรรยาย mov_text เมื่อแยกสตรีมนั้นกลับเป็น SRT ข้อความและเวลายังคงเดิม ต่างกันเพียงบรรทัดว่างท้ายไฟล์ ค่าแฮชของวิดีโอที่ถอดรหัสแล้วตรงกับต้นฉบับ ยืนยันว่าการทดสอบนี้เก็บรักษาภาพไว้

ผลลัพธ์แบบฝังถาวรมีสตรีมวิดีโอที่เห็นข้อความคำบรรยายในเฟรมที่ถอดรหัสแล้ว โดยไม่ต้องมีสตรีมคำบรรยายแยกเพื่อแสดงข้อความเหล่านั้น


คำบรรยายแรกที่เรนเดอร์ถาวรลงในวิดีโอทดสอบ

ตัวอย่างวิดีโอสังเคราะห์ที่วินาทีแรก ข้อความคำบรรยายเป็นส่วนหนึ่งของเฟรมวิดีโอที่ถอดรหัสแล้ว นี่คือตัวอย่าง FFmpeg ที่ทำในเครื่อง ไม่ใช่วิดีโอที่สร้างด้วย Perso

ลองใช้อินพุตเดียวกัน: MP4 ทดสอบต้นฉบับ และ SRT สี่รายการ เปรียบเทียบ ผลลัพธ์แบบแทร็กภายในไฟล์ กับ ผลลัพธ์แบบฝังถาวร

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

แก้คำบรรยายที่ขึ้นช้า หายไป หรือแสดงอักขระผิด

คำบรรยายปรากฏผิดเวลา

เทียบคำบรรยายรายการแรกกับเหตุการณ์ที่สังเกตได้ชัดในวิดีโอ ในตัวอย่างด้านเวลา การเปลี่ยนรายการแรกจาก 00:00:00,500 เป็น 00:00:02,500 ทำให้ขึ้นช้าไปสองวินาที การคืนค่าเวลาเดิมจะแก้การเลื่อนที่ตั้งใจใส่ไว้นี้

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

คำบรรยายหายไปหลังอัปโหลด

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

อย่าเพิ่มแทร็กคำบรรยายของแพลตฟอร์มอีกชั้นทับฉบับที่ฝังคำบรรยายแล้วโดยยังไม่ได้ตรวจผลการรับชม ข้อความสองชั้นอาจซ้อนทับกัน

อักขระแสดงไม่ถูกต้อง

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

ต้องสร้างคำบรรยายก่อนรวมไฟล์หรือไม่?

หากมี SRT ที่ถูกต้องแล้ว ให้ใช้ได้ทันที หากยังต้องสร้างหรือแปลคำบรรยาย เริ่มจาก ขั้นตอนคำบรรยายของ Perso หรือ คู่มือคำบรรยายหลายภาษา

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

คำถามที่พบบ่อย

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

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

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

วิธีเพิ่ม SRT ลงใน MP4: ฝังถาวรหรือเลือกเปิดปิดได้?
คู่มือผลิตภัณฑ์

วิธีเพิ่ม SRT ลงใน MP4: ฝังถาวรหรือเลือกเปิดปิดได้?

หัวหน้าฝ่ายการเติบโตและเจ้าของผลิตภัณฑ์ อุนแถเบ

อุนแท แบ

หัวหน้าแผนกเติบโตและเจ้าของผลิตภัณฑ์

วิธีแยกเสียงคนสองคนจากไฟล์บันทึกเดียว
คู่มือผลิตภัณฑ์

วิธีแยกเสียงคนสองคนจากไฟล์บันทึกเดียว

หัวหน้าฝ่ายการเติบโตและเจ้าของผลิตภัณฑ์ อุนแถเบ

อุนแท แบ

หัวหน้าแผนกเติบโตและเจ้าของผลิตภัณฑ์

Google แปลภาษาหรือ ChatGPT แปลวิดีโอได้ไหม? (2026) - Perso Dubbing
กลยุทธ์ AI

Google แปลภาษาหรือ ChatGPT แปลวิดีโอได้ไหม? (2026)

หัวหน้าฝ่ายการเติบโตและเจ้าของผลิตภัณฑ์ อุนแถเบ

อุนแท แบ

หัวหน้าแผนกเติบโตและเจ้าของผลิตภัณฑ์