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

เครื่องมือแปลวิดีโอ 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 ทำให้คุณภาพวิดีโอลดลงหรือไม่?
คำสั่งสำหรับแทร็กภายในไฟล์คัดลอกสตรีมวิดีโอโดยไม่เข้ารหัสใหม่ ส่วนคำสั่งฝังถาวรเข้ารหัสวิดีโอใหม่เพื่อใส่ข้อความ ตรวจภาพและคำบรรยายที่ได้ในขนาดที่ผู้ชมจะรับชมจริง
อ่านต่อ
เรียกดูทั้งหมด
ผลิตภัณฑ์
การถอดเสียงและคำบรรยาย
โซลูชัน
ธุรกิจ
นักพัฒนา
ทรัพยากร
ความช่วยเหลือและความน่าเชื่อถือ
เรียนรู้
องค์กร
โซลูชัน
ESTsoft Inc. 15770 Laguna Canyon Rd #250, Irvine, CA 92618
ผลิตภัณฑ์
การถอดเสียงและคำบรรยาย
โซลูชัน
ธุรกิจ
นักพัฒนา
ทรัพยากร
ความช่วยเหลือและความน่าเชื่อถือ
เรียนรู้
องค์กร
โซลูชัน
ESTsoft Inc. 15770 Laguna Canyon Rd #250, Irvine, CA 92618




