用途:把旅行素材文件夹批量转换为符合 Instagram 标准的竖屏 Reels,每个目的地文件夹生成一条独立成片,含音乐、文字叠加与电影感效果。
主要能力:输出 1080×1920、30fps、15–60 秒(目标 30 秒)、H.264 MP4 + AAC 音频、立体声 44.1kHz 并归一化到 -14 LUFS;提供 warm_golden、cool_teal、moody_dark、bright_airy、cinematic 五种调色预设;支持 xfade 淡入淡出、左右擦除、滑动、圆形揭示及卡点硬切等转场;文字叠加为居中大写粗体白色标题(80–100px)与可选副标题,位于下三分之一区域,带阴影。
使用方式:需 ffmpeg、Python 3、moviepy>=2.0,且运行环境可执行 shell 命令、写文件并展示输出。素材按约定组织:根目录下非下划线开头的文件夹为目的地,_music/ 存放共享背景音乐(每条随机选一首),_fonts/ 存放字体(取首个 .ttf 或 .otf)。支持 .mp4、.mov、.MOV、.MP4、.avi、.mkv。流程为:先运行 python3 /path/to/scripts/scan_footage.py --root <project_root> 扫描清单;根据目的地名推断情绪预设并请用户确认;从 _music/ 随机选曲;再运行 python3 /path/to/scripts/build_reel.py --clips-dir <destination_folder> --music <selected_track> --font <font_path> --preset <mood_preset> --location-name "<Destination Name>" --output <output_path>;最后交付 .mp4 并报告时长、使用片段、音乐、预设与跳过项。输出命名为 <destination-name>reel<YYYYMMDD>.mp4。多目的地时先询问是全部处理还是先做一个,再逐个顺序生成。
限制与异常处理:无视频流的片段跳过并记录;竖屏低分辨率用留白放大;横屏默认中心裁剪为 9:16;_music/ 缺失则无音乐生成并提示;_fonts/ 缺失回退 ffmpeg 内置 DejaVu 字体;短于 1 秒的片段跳过;总素材不足 10 秒时警告并使用全部片段加慢动作延长。执行前需完整阅读两个脚本。具体脚本实现细节与更多参数暂未提供。