SuperAPI AI 工具集

stitch-videos-ffmpeg

设计与创作

查看项目

更新于 10-16 05:49

技能介绍

用途:用 ffmpeg 把已完成的视频片段拼接为蒙太奇广告成片,涵盖 concat 拼接、xfade 转场、overlay 叠加、音频混流与导出设置。该工作流由仓库中既有技能重构整合而来,来源包括 ad-studio、voiceover-product-ad、ugc-product-video、voiceless-music-transformation-reel、product-stopmotion-ad。

主要能力:附带 scripts/montage.py,一个免费、确定性的蒙太奇组装器,只需 python3 与 ffmpeg/ffprobe(Pillow 可选,用于字幕)。不发起网络或服务商调用,不需要密钥,重剪不产生费用。含四个步骤:edl 校验 JSON 规格并写出 edl.json,用 ffprobe 探测每个文件、检查每个剪切是否落在素材范围内,问题一次性全部列出;assemble 把每个剪切统一缩放(默认 1080×1920,cover 裁剪填充或 contain 加边)、统一帧率(默认 30)、方形像素与 yuv420p,再用 filter_complex 的 concat 滤镜按序硬切(不使用 -f concat 解复用器),每个剪切帧数精确,成片长度等于 EDL 总长;captions 把 SRT、JSON 提示列表或词级时间戳烧录进视频,文字原样保留;mix 将配音铺在视频上并可选加入在配音下闪避(sidechain 压缩,20:1)的音乐床,再用两遍 loudnorm 母带处理到 -14 LUFS / -1 dBTP;run 按一个规格跑完四步并写出 manifest.json。每步输出一行 JSON 摘要,退出码 0 正常、1 ffmpeg 失败、2 规格或参数错误、3 缺少工具。

使用方式:gooseworks fetch stitch-videos-ffmpeg 后脚本位于 /tmp/gooseworks-scripts/stitch-videos-ffmpeg/scripts/,例如 python3 $S/montage.py run --spec montage.json --out edits/master.mp4 --workdir edits/work,也可逐步执行 edl、assemble、captions、mix。规格中路径相对规格文件,时间为秒或时间码字符串。

限制:字数范围剪裁需要顶层词表文件;静图需指定时长;视频片段可比剪切长度短最多 0.1 秒(补最后一帧),更短则报错;配音超出视频长度会被截断并告警;Homebrew 默认 ffmpeg 无 libass 与 drawtext,Mac 上建议安装 Pillow,否则该步以退出码 3 结束。测试可用 python3 -m pytest -q 运行 tests/test_stitch_montage.py。