#!/usr/bin/env python3
"""
生成"登月_引力弹弓与角反射器"全部视频片段（127句）
"""
import os
import subprocess

frames_dir = "moon_frames_full"
audio_dir = "moon_bilingual_full"
output_dir = "moon_videos_full"

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

frame_files = sorted([f for f in os.listdir(frames_dir) if f.endswith('.jpg')])
print(f"找到 {len(frame_files)} 个图片文件")

print(f"\n开始生成视频片段...")

count = 0
for frame_file in frame_files:
    idx = frame_file.replace('frame_', '').replace('.jpg', '')
    frame_path = os.path.join(frames_dir, frame_file)
    audio_path = os.path.join(audio_dir, f"bilingual_{idx}.mp3")
    output_path = os.path.join(output_dir, f"video_{idx}.mp4")

    if not os.path.exists(audio_path):
        print(f"  跳过 {idx}: 音频文件不存在")
        continue

    video_cmd = [
        "ffmpeg", "-y",
        "-loop", "1",
        "-i", frame_path,
        "-i", audio_path,
        "-c:v", "libx264",
        "-tune", "stillimage",
        "-c:a", "aac",
        "-b:a", "128k",
        "-pix_fmt", "yuv420p",
        "-shortest",
        output_path
    ]

    result = subprocess.run(video_cmd, capture_output=True, text=True, encoding='utf-8', errors='ignore')
    
    count += 1
    if count % 50 == 0:
        print(f"  已生成 {count}/{len(frame_files)}")

print(f"\n完成！保存路径: {output_dir}")
