Tôi đã tạo một công cụ chỉ cần một kịch bản (YAML) là xuất ra video có thuyết minh, phụ đề và BGM
(github.com/kmg28801)Vì mới bắt đầu biên tập video nên mỗi video mất đến nửa ngày, tôi đã tự động hóa quy trình biên tập bằng code.
Đầu vào chỉ là một file YAML ghi narration / visual / callout theo từng cảnh.
Chỉ cần một dòng python3 src/pipeline.py scenario.yaml config.yaml là có ngay file mp4 hoàn chỉnh.
Pipeline (Python):
- Kịch bản → thuyết minh TTS (có thể thay thế giữa say / Supertone / ElevenLabs, cache kết quả)
- Tự động phân bổ thời điểm phụ đề theo độ dài thuyết minh, thuyết minh = phụ đề
- Render phụ đề và callout thành PNG rồi overlay (cách này được chọn vì bản build ffmpeg này không có libass/drawtext — hóa ra lại dễ kiểm soát viền chữ tiếng Hàn và vị trí theo pixel hơn)
- Video quay dọc bằng điện thoại được tự động chỉnh tỉ lệ khung hình bằng padding nền làm mờ (chuyển 16:9 ↔ 9:16 Shorts chỉ bằng một dòng config)
- Concat thuyết minh + mix BGM (tự động cắt BGM khớp với cuối video + fade → tránh “đuôi đen”)
- Sau khi render xong, tự động kiểm tra drift độ dài và độ sáng frame cuối
Công cụ này dành riêng cho video phụ đề dạng faceless, và thực tế tôi đang dùng nó để xuất video cho kênh YouTube của mình.
Hạn chế: phụ đề không đồng bộ theo từng từ, mà theo từng cảnh (phân bổ tỉ lệ theo số ký tự).
Ngoài ra, vì được tạo với giả định môi trường ffmpeg này không có libass, nên mặc định dùng cách overlay PNG.
Mục tiêu không phải thay thế hoàn toàn trình biên tập video, mà là biến bước “kịch bản → video nháp” về gần như 0 giây để loại bỏ chi phí sản xuất lặp lại.
Smoke test (kiểm tra toàn bộ pipeline bằng giọng macOS say, không cần key):
python3 -m pip install -r requirements.txt
python3 demo/make_placeholders.py
python3 src/pipeline.py demo/scenario.yaml demo/config.yaml
MIT. Rất mong nhận được phản hồi.
Chưa có bình luận nào.