Bước 16 — QA early/mid/late main story video Mục tiêu: - Kiểm tra output/main_story.mp4 sau khi concat ở bước 15. - Xác nhận main story video đã đúng sync trước khi làm intro/outro/BGM. - Bắt lỗi sớm: lệch tiếng, subtitle sai nhịp, mất âm thanh, black frame, sai thứ tự part/scene. Input: - output/main_story.mp4 - output/main_story_probe.json - output/concat_report.json - subtitle/audio/timeline từ các bước trước để đối chiếu khi cần Cách làm: 1. Probe lại main story video bằng worker probe nếu cần: duration, audio/video stream, codec/container. 2. QA 3 vùng bắt buộc: early, mid, late. 3. Ở mỗi vùng kiểm tra tiếng đọc khớp subtitle, subtitle không sớm/trễ rõ, hình ảnh đúng scene/part, không mất tiếng, không black frame, transition scene ổn. 4. Kiểm tra các điểm nối part: không đứng hình bất thường, không mất audio ở mép nối, không lặp/thiếu scene, không nhảy subtitle sai mốc. 5. Ghi kết quả QA vào report. Automated QA nên chạy: - worker probe: http://192.168.1.104:8002/probe - ffmpeg blackdetect trên worker - ffmpeg silencedetect trên worker - extract frame tại early/mid/late và trước/sau các điểm nối part Output bắt buộc: - output/main_story_qa_report.json - logs/step16_qa_main_story_manifest.json - output/qa_main_story/frames/*.jpg nếu extract QA frames Validation bắt buộc: - main video tồn tại - có audio/video stream - duration hợp lý - early/mid/late không lệch sync khi spot-check - part joins không lỗi rõ ràng - không black frame bất thường Quy tắc quan trọng: - Không coi main_story.mp4 là final. - Không sang intro/final package nếu main story chưa QA đạt. - Nếu lỗi sync xuất hiện ở vùng nào thì quay lại đúng bước gây lỗi: - lỗi part render: quay lại bước 14 - lỗi concat/thứ tự part: quay lại bước 15 - lỗi subtitle timing: quay lại bước 11-13 - lỗi audio part: quay lại bước 13 Bản ngắn gọn: 16. QA output/main_story.mp4 ở early/mid/late và các điểm nối part; lưu output/main_story_qa_report.json trước khi sang intro/outro/BGM.