Alibabacloud Video Editor — 阿里云视频编辑器
v0.0.1无需安装ffmpeg的视频编辑工具,所有视频处理都在云端执行,无需本地ffmpeg安装。如果输入和输出都是URL或Alibaba Cloud OSS,则此技能是首选。可以根据编辑要求和素材信息生成Timeline配置,提交Alibaba Cloud编辑任务,等待任务完成,并输出最终视频URL。当用户想要编辑视频、提到视频编辑、剪辑、视频制作、视频拼接、视频合成,或需要处理媒体文件以生成视频时使用。
运行时依赖
安装命令
点击复制技能文档
视频编辑技能 自动化视频编辑工具,根据提供的素材和编辑要求提交阿里云编辑任务,无需安装ffmpeg,等待任务完成,并输出最终视频URL。
核心设计理念 本技能采用关注点分离设计: references/ - LLM知识库,包含各种场景的最佳实践文档 scripts/ - 纯执行工具,仅负责提交任务和轮询状态 LLM应参考references/中的文档生成Timeline JSON(阿里云ICE格式),然后使用scripts提交任务。
前置条件 预检查:安装Python依赖 pip install -r requirements.txt 预检查:阿里云凭证 脚本自动通过阿里云默认凭证链获取凭证,支持以下方法(按优先顺序): 环境变量凭证 配置文件:~/.alibabacloud/credentials.ini ECS RAM角色(在ECS上运行时) 建议使用aliyun configure命令设置凭证: aliyun configure 或参考阿里云凭证配置文档配置默认凭证链。
OSS Bucket配置 OSS上传功能需要通过环境变量配置Bucket信息: export OSS_BUCKET=your_bucket_name export OSS_ENDPOINT=oss-cn-shanghai.aliyuncs.com 如果未配置OSS_BUCKET,则列出客户当前账户下的Bucket,并让客户选择一个作为输出Bucket。
OSS操作复用阿里云默认凭证链,无需单独配置OSS凭证。
User-Agent配置 所有阿里云服务调用必须设置User-Agent为AlibabaCloud-Agent-Skills。 脚本scripts/video_editor.py已自动配置此User-Agent。
工作流 步骤1:理解用户需求 分析用户要创建的视频类型: 幻灯片视频(图片轮播) 多音轨混音(配音+音乐) 多片段拼接 添加字幕/标题 特效和转场 画中画/分屏特效
步骤2:参考最佳实践 参考references/中的对应文档: 文档 适用场景 01-timeline-basics.md 时间线基本结构说明 02-multi-track-audio.md 多音轨混音 03-subtitles-and-titles.md 字幕和标题效果 04-effects-and-transitions.md 视觉特效和转场 05-slideshow-template.md 幻灯片视频模板 06-multi-clip-editing.md 多片段视频编辑
步骤3:准备素材URL 如果是本地文件,需要调用oss-upload技能上传并获取OSS URL,可以直接拼接到时间线中 如果已经有URL,可以直接拼接到时间线中
步骤4:生成Timeline JSON 根据参考文档生成阿里云ICE格式的时间线: { "VideoTracks": [...], "AudioTracks": [...], "SubtitleTracks": [...] }
步骤5:提交编辑任务 使用脚本提交任务(基于阿里云Common SDK): # 提交并等待完成 python scripts/video_editor.py submit \ --timeline timeline.json \ --output-config output.json \ --wait # 提交但不等待 python scripts/video_editor.py submit \ --timeline timeline.json \ --output-config output.json
参数描述: 参数 描述 是否必需 --timeline, -t 时间线JSON文件路径或JSON字符串 是 --output-config, -o 输出配置JSON文件路径或JSON字符串 是 --region, -r 区域ID(默认:cn-shanghai) 否 --wait, -w 等待任务完成 否
OutputMediaConfig示例: { "MediaURL": "https://{your-bucket}.oss-cn-shanghai.aliyuncs.com/{your-target-video-path}", "Width": 1080, "Height": 1920 } 如果输出分辨率未在上下文中明确指定,使用常见分辨率:10801920, 19201080
提交任务后,将返回JobId。
步骤6:轮询任务状态 使用脚本查询/等待任务完成: # 查询状态 python scripts/video_editor.py status --job-id # 等待任务完成 python scripts/video_editor.py status --job-id --wait 当任务状态为Success时,调用GetMediaInfo根据返回的MediaId获取带认证的OSS URL,并返回。
时间线示例 最简单的幻灯片 { "VideoTracks": [{ "VideoTrackClips": [{ "Type": "Image", "MediaURL": "https://bucket.oss-cn-shanghai.aliyuncs.com/image1.jpg", "In": 0, "Out": 5, "TimelineIn": 0, "TimelineOut": 5 }, { "Type": "Image", "MediaURL": "https://bucket.oss-cn-shanghai.aliyuncs.com/image2.jpg", "In": 5, "Out": 10, "TimelineIn": 5, "TimelineOut": 10 }] }] }