#!/usr/bin/env python3
"""
合成所有视频片段（432句）- 静态图片 + 双语音频
"""
import os
import subprocess

frames_dir = os.path.abspath("shitu_frames")
audio_dir = "shitu_bilingual"
output_dir = "shitu_bilingual_video"

if not os.path.exists(output_dir):
    os.makedirs(output_dir)

print(f"合成 {432} 句视频片段...")

for i in range(432):
    idx = f"{i:03d}"
    frame_file = os.path.join(frames_dir, f"frame_{idx}.jpg")
    audio_file = os.path.join(audio_dir, f"bilingual_line_{idx}.wav")
    output_file = os.path.join(output_dir, f"bilingual_video_{idx}.mp4")

    if not os.path.exists(frame_file):
        print(f"  句{i}: 图片不存在")
        continue
    if not os.path.exists(audio_file):
        print(f"  句{i}: 音频不存在")
        continue

    if i % 50 == 0:
        print(f"  处理句 {i}/432")

    # 合成视频
    cmd = [
        'ffmpeg', '-y',
        '-loop', '1',
        '-framerate', '25',
        '-i', frame_file,
        '-i', audio_file,
        '-c:v', 'libx264',
        '-preset', 'fast',
        '-tune', 'stillimage',
        '-c:a', 'aac',
        '-ar', '44100',
        '-ac', '1',
        '-pix_fmt', 'yuv420p',
        '-shortest',
        output_file
    ]

    subprocess.run(cmd, capture_output=True)

print(f"完成！视频片段保存在: {output_dir}")
