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

อินพุตมีเพียงไฟล์ YAML แผ่นเดียวที่เขียน narration / visual / callout แยกตามแต่ละซีน
แค่รัน python3 src/pipeline.py scenario.yaml config.yaml บรรทัดเดียว ก็ได้ไฟล์ mp4 ที่เสร็จสมบูรณ์

ไปป์ไลน์ (Python):

  • สคริปต์ → เสียงบรรยาย TTS (สลับใช้ say / Supertone / ElevenLabs ได้ พร้อมแคชผลลัพธ์)
  • กระจายเวลาซับไตเติลอัตโนมัติตามความยาวของเสียงบรรยาย โดยให้เนื้อหาเสียงบรรยาย=ซับไตเติลเหมือนกัน
  • เรนเดอร์ซับไตเติล·คอลเอาต์เป็น PNG แล้วทำ overlay (เลือกวิธีนี้เพราะ ffmpeg บิลด์นี้ไม่มี libass/drawtext — กลับทำให้ควบคุมเส้นขอบอักษรเกาหลีและตำแหน่งแบบพิกเซลได้ง่ายกว่า)
  • วิดีโอมือถือแนวตั้งจะปรับอัตราส่วนภาพอัตโนมัติด้วยพื้นหลังเบลอแบบ padding (สลับ 16:9 ↔ 9:16 shorts ได้ด้วย config แค่บรรทัดเดียว)
  • concat เสียงบรรยาย + มิกซ์ BGM (ตัด BGM อัตโนมัติให้พอดีกับท้ายวิดีโอ + เฟด เพื่อป้องกัน "หางดำ")
  • หลังเรนเดอร์เสร็จจะตรวจสอบ length drift และความสว่างของเฟรมสุดท้ายอัตโนมัติ

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

ข้อจำกัด: ซับไตเติลไม่ได้ซิงก์ระดับคำ แต่เป็นระดับซีน (กระจายเวลาตามสัดส่วนจำนวนตัวอักษร)
และถูกสร้างขึ้นบนสมมติฐานว่า ffmpeg ในสภาพแวดล้อมนี้ไม่มี libass ดังนั้นวิธี PNG overlay จึงเป็นค่าเริ่มต้น

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

สโมกเทสต์ (ตรวจสอบไปป์ไลน์ทั้งหมดด้วยเสียง macOS say โดยไม่ต้องใช้คีย์):
python3 -m pip install -r requirements.txt
python3 demo/make_placeholders.py
python3 src/pipeline.py demo/scenario.yaml demo/config.yaml

MIT. ยินดีรับฟีดแบ็กครับ

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น