auto-video-editor
功能描述
- 将优化方案 JSON 自动转为可执行的剪辑操作
- 支持多输出目标(如同时输出视频号版 + 抖音版)
- 后端自动探测 + 自动降级(遇到不支持的效果自动用最近似效果替代)
- 进度实时输出(每条片段一行,含状态标记)
适用场景
- 已经完成了短视频脚本/选题审核,需要把优化方案落地为实际视频文件
- 有原始素材和一组叠加图(标题卡、CTA、信息图等),需要自动化组装
- 需要同时输出多个平台版本(视频号、抖音、小红书等)
参数说明
EditPlan JSON Schema
详见 models.py 中 EditPlan / Output / Clip / OutputConfig 等 Pydantic 模型。
核心字段:
| 字段 | 类型 | 说明 | |------|------|------| | project | str | 项目名称 | | source | str | 源素材绝对路径 | | outputs[].name | str | 输出名称,如 "视频号版" | | outputs[].clips[].source_file | str | 源文件名 | | outputs[].clips[].start_ms | int | 裁剪起始毫秒 | | outputs[].clips[].end_ms | int | 裁剪结束毫秒 | | outputs[].clips[].type | str | video_cut / title_card / cta_card | | outputs[].clips[].overlay_image | str | 叠加图文件名 | | outputs[].clips[].speed | float | 播放速度倍率 | | outputs[].clips[].caption | str | 字幕文字 | | outputs[].clips[].transition | str | cut / fade / zoom / none |
后端支持
| 优先级 | 后端 | 能力 | 局限 | |--------|------|------|------| | 1 | 剪映草稿 (pyJianYingDraft) | 完整支持:叠加层、文字、转场、滤镜、变速 | 最终导出需手动在剪映中完成(或通过 JianyingController 自动化) | | 2 | FFmpeg + MoviePy | 基本支持:裁剪、变速、图像叠加、文字、淡入淡出 | 不支持蒙版/关键帧/滤镜,这些效果会降级 | | 3 | CapCut API | 占位,未实现 | - |
后端自动按优先级探测,也可通过 run() 的 backend= 参数强制指定。
安装方法
# 依赖已预装在运行环境中
# 如需手动安装:
pip install pyJianYingDraft moviepy Pillow opencv-python pydantic
使用方法
方式一:Python API
from auto_video_editor import run
from auto_video_editor.models import EditPlan
# 从 JSON 构建 plan
plan_json = {...} # 符合 EditPlan schema 的字典
plan = EditPlan.model_validate(plan_json)
# 执行剪辑
result = run(plan, media_dir="/path/to/media", output_path="/path/to/output.mp4")
print(f"输出文件: {result}")
方式二:命令行
python -m auto_video_editor --plan plan.json --media-dir ./media --output ./output.mp4
微信扫一扫