阿里云视频锻造工坊
通过阿里云媒体处理服务(MPS)实现一站式视频处理,包括封面生成、多清晰度转码、内容审核等。
前置条件
预检查:需要 Aliyun CLI >= 3.3.3
运行aliyun version验证 >= 3.3.3。如果未安装或版本过低,
运行curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash更新,
或参阅references/cli-installation-guide.md获取安装说明。
预检查:需要更新 Aliyun CLI 插件
[必须] 运行aliyun configure set --auto-plugin-install true启用插件自动安装。
[必须] 运行aliyun plugin update确保现有插件始终为最新版本。
预检查:需要配置 AI-Mode
[必须] 在使用 aliyun CLI 命令之前,配置 AI-Mode:
- aliyun configure ai-mode enable
- aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-video-forge"
- aliyun configure ai-mode disable
预检查:需要 Python >= 3.10
运行python3 --version验证。
预检查:需要阿里云凭证
运行aliyun configure list检查凭证状态。如果无有效 profile,通过aliyun configure配置。
凭证安全规则见 references/security-guidelines.md。
🚀 快速开始
最简方式——一键视频处理:
方式 1:使用端到端工作流脚本(推荐)
python scripts/video_workflow.py --input /path/to/video.mp4
方式 2:先检查环境
python scripts/health_check.py
方式 3:手动执行各步骤
python scripts/oss_upload.py --local-file video.mp4 --oss-key input/video.mp4
python scripts/mps_transcode.py --oss-object input/video.mp4 --preset multi
python scripts/mps_audit.py --oss-object input/video.mp4
### 常见场景
#### 场景 1:Bilibili 视频发布
python scripts/video_workflow.py \
--input my_video.mov \
--preset 720p \
--generate-cover \
--scenes porn terrorism ad
#### 场景 2:UGC 内容审核
python scripts/mps_audit.py --oss-object /input/user_uploaded.mp4
#### 场景 3:多清晰度转码
python scripts/mps_transcode.py \
--oss-object /input/course_video.mp4 \
--preset multi \
--output-prefix output/course_2024/
---
场景描述
本 Skill 支持视频分发场景:
- 转码 —— 多清晰度转码,采用窄带高清压缩
- 内容审核 —— 自动检测敏感内容(色情、暴恐、广告)
- 截图 —— 生成封面图和雪碧图
- 防盗链 —— 配置加密以保护内容
架构
OSS Bucket + MPS Pipeline + 转码模板 + 审核服务
组件:
- OSS:存储视频和输出
- MPS Pipeline:任务队列管理
- 转码模板:窄带高清、标准预设
- 审核:自动内容安全检查
目标用户:视频平台、内容创作者、企业培训、教育平台
能力概览
详细功能树和自动 Pipeline 管理见 references/capability-overview.md。
环境变量
必需环境变量:
ALIBABA_CLOUD_REGION—— 服务地域(默认:cn-shanghai)ALIBABA_CLOUD_OSS_BUCKET—— OSS Bucket 名称ALIBABA_CLOUD_OSS_ENDPOINT—— OSS endpointALIBABA_CLOUD_MPS_PIPELINE_ID—— MPS Pipeline ID(可选,未设置时自动选择)
安全注意: 凭证通过阿里云默认凭证链管理。使用 aliyun configure 命令配置凭证。绝不要在脚本或命令中直接处理 AK/SK。
🔒 安全准则
完整安全准则和凭证管理最佳实践见 references/security-guidelines.md。
SDK 安装
详细安装指南和故障排查见 references/sdk-installation.md。
运行 python3 --version 验证。某些脚本在旧版 Python 上可能失败。
RAM 权限
[必须] RAM 权限预检查: 执行前验证当前用户具有以下 RAM 权限。
完整权限列表和详情见references/ram-policies.md。
[必须] 权限失败处理: 当任何命令或 API 调用在执行过程中因权限错误失败时,遵循以下流程:
1. 阅读references/ram-policies.md获取本 SKILL 所需的完整权限列表
2. 使用ram-permission-diagnoseskill 引导用户申请必要权限
3. 暂停并等待用户确认所需权限已授予
参数确认
重要:参数确认 —— 在执行任何命令或 API 调用之前,
所有用户可自定义参数(例如输入视频路径、输出 bucket、模板 ID 等)
都必须与用户确认。未经用户明确批准,不要假设或使用默认值。
| 参数 | 必填/可选 | 说明 | 默认 |
|---|---|---|---|
| input-url | 必填 | 输入视频 URL 或本地路径 | - |
| output-bucket | 可选 | 输出 OSS Bucket | 环境变量值 |
| output-path | 可选 | 输出路径前缀 | output/ |
| template-id | 可选 | 转码模板 ID | 系统预设模板 |
| resolutions | 可选 | 转码清晰度列表 | 720p,1080p |
| audit | 可选 | 是否执行内容审核 | true |
| pipeline-id | 可选 | MPS Pipeline ID | 自动选择 |
核心工作流
场景 1:一站式视频标准化
完整工作流:用户提供视频 → 上传到 OSS → 媒体信息探测 → 封面生成(截图)→ 多清晰度转码 → 内容审核 → 汇总结果(含下载链接)
#### 步骤 0:自动 Pipeline 选择(可选)
本 Skill 支持自动 Pipeline 管理,通常无需手动配置 Pipeline ID。脚本根据任务类型自动选择合适的 Pipeline。
手动指定:
方式 1:设置环境变量(优先级最高)
export ALIBABA_CLOUD_MPS_PIPELINE_ID="your-pipeline-id"
方式 2:命令行参数
python scripts/mps_transcode.py --oss-object /input/video.mp4 --pipeline-id your-pipeline-id
方式 3:使用脚本自动选择
export ALIBABA_CLOUD_MPS_PIPELINE_ID=$(python scripts/mps_pipeline.py --select)
#### 步骤 1:上传视频到 OSS
source .venv/bin/activate
python scripts/oss_upload.py --local-file /path/to/video.mp4 --oss-key input/video.mp4
#### 步骤 2:媒体信息探测
python scripts/mps_mediainfo.py --oss-object /input/video.mp4
#### 步骤 3:封面生成(截图)
使用截图功能在指定时间生成视频封面:
python scripts/mps_snapshot.py --oss-object /input/video.mp4 --mode normal --time 5000
#### 步骤 4:自适应转码(自动选择最佳清晰度和窄带高清模板)
自适应模式:自动检测源视频清晰度,选择最佳质量,使用窄带高清模板
python scripts/mps_transcode.py --oss-object /input/video.mp4
或手动指定多码流转码
python scripts/mps_transcode.py \
--oss-object /input/video.mp4 \
--preset multi
#### 步骤 5:内容审核
python scripts/mps_audit.py --oss-object /input/video.mp4
#### 步骤 6:轮询任务状态
python scripts/poll_task.py --job-id <job-id-from-step-4> --job-type transcode --region cn-shanghai
#### 完整示例
1. 激活虚拟环境
source .venv/bin/activate
2. 上传视频
python scripts/oss_upload.py --local-file ./my_video.mp4 --oss-key input/my_video.mp4
3. 获取媒体信息
python scripts/mps_mediainfo.py --oss-object /input/my_video.mp4
4. 封面生成(第 5 秒截图)
python scripts/mps_snapshot.py --oss-object /input/my_video.mp4 --mode normal --time 5000
5. 提交转码任务(自适应模式:自动选择最佳清晰度)
python scripts/mps_transcode.py \
--oss-object /input/my_video.mp4
保存返回的 job-id
6. 轮询转码任务状态
python scripts/poll_task.py --job-id <job-id> --job-type transcode --region cn-shanghai --interval 10
7. 内容审核
python scripts/mps_audit.py --oss-object /input/my_video.mp4
8. 下载处理后的视频到本地
python scripts/oss_download.py --oss-key output/transcode/transcoded.mp4 --local-file ./output_video.mp4
其他场景
场景 2:仅转码
只执行转码,不进行截图和审核:
source .venv/bin/activate
python scripts/mps_transcode.py \
--oss-object /input/video.mp4 \
--preset 1080p \
--template-id "your-template-id"
场景 3:内容审核
只执行内容审核:
source .venv/bin/activate
python scripts/mps_audit.py \
--oss-object /input/video.mp4 \
--scenes porn terrorism ad
成功验证
视频处理后检查结果:
- 脚本退出码为 0
- 输出包含处理后的媒体信息(OSS 路径)
- 转码任务状态为 "Success"
- 内容审核显示无违规
- 产物已下载到本地(使用
oss_download.py)
产物获取说明:
- OSS 文件需要签名才能在线访问,直接 URL 访问返回 403 错误
- 建议使用
oss_download.py将结果下载到本地 - 如需在线预览,使用
--sign-url参数生成临时预签名 URL
验证转码成功
python scripts/poll_task.py --job-id <job-id> --job-type transcode --region cn-shanghai
预期输出:Status: Success
验证审核结果
python scripts/mps_audit.py --query-job-id <audit-job-id>
预期输出:Moderation passed, no violations
故障排查
全面故障排查指南见 references/troubleshooting.md。
清理
本 Skill 的中间文件和输出文件存储在 OSS 中。清理方式:
删除单个文件
python scripts/oss_delete.py --oss-key output/transcode/video.mp4
删除目录下所有文件(递归删除)
python scripts/oss_delete.py --prefix output/ --recursive
强制删除(跳过确认,用于脚本自动化)
python scripts/oss_delete.py --oss-key output/video.mp4 --force
预览模式(查看将要删除的文件但不实际删除)
python scripts/oss_delete.py --prefix output/ --recursive --dry-run
> **注意**:删除操作不可逆。执行前确认。先用 `--dry-run` 预览。
可用脚本
| 脚本 | 说明 |
|---|---|
scripts/load_env.py | 环境变量加载器,自动扫描并加载阿里云凭证 |
scripts/poll_task.py | MPS 异步任务轮询器,查询任务状态 |
scripts/oss_upload.py | 上传本地文件到 OSS |
scripts/oss_download.py | 从 OSS 下载文件到本地 |
scripts/oss_list.py | 列出 OSS Bucket 中的文件 |
scripts/oss_delete.py | 删除 OSS 文件或目录(支持递归删除) |
scripts/mps_mediainfo.py | 获取媒体文件信息(分辨率、码率、时长等) |
scripts/mps_snapshot.py | 截图和雪碧图生成(支持 normal/sprite 模式) |
scripts/mps_transcode.py | 视频转码(支持自适应窄带高清、多清晰度预设、自定义参数) |
scripts/mps_audit.py | 内容安全审核(支持多种审核场景) |
scripts/mps_pipeline.py | Pipeline 列表查询和自动选择(获取 Pipeline ID) |
最佳实践
- 始终先检查环境变量 —— 每次会话开始时运行
python scripts/load_env.py --check-only - 使用轮询而非等待 —— 提交任务后用
poll_task.py自动轮询状态 - 明智选择清晰度 —— 根据目标用户设备选择合适的转码清晰度
- 启用内容审核 —— 对于 UGC 内容,始终启用自动审核
- 使用虚拟环境 —— 确保依赖隔离,避免版本冲突
- 自动 Pipeline 管理 —— 无需手动配置 Pipeline ID,脚本根据任务类型自动选择合适的 Pipeline
参考文档
| 文档 | 说明 |
|---|---|
| references/ram-policies.md | 完整 RAM 权限策略列表 |
| references/params.md | 脚本参数文档 |
| references/scripts-detail.md | 详细脚本使用示例 |
| references/verification-method.md | 成功验证方法 |
| references/related-commands.md | 相关 CLI 命令 |
| references/cli-installation-guide.md | Aliyun CLI 安装指南 |
| references/acceptance-criteria.md | 测试验收标准 |
AI-Mode 配置
[必须] Aliyun CLI 的 AI-Mode 设置 —— 在使用 aliyun CLI 命令之前,必须配置 AI-Mode 以启用正确的追踪和插件管理。
启用 AI-Mode
启用 AI-Mode 以获得增强功能:
aliyun configure ai-mode enable
配置 User-Agent
设置 User-Agent 以正确标识 Skill:
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-video-forge"
禁用 AI-Mode
不再需要时禁用 AI-Mode:
aliyun configure ai-mode disable
注意:必须在执行任何 aliyun CLI 命令之前启用 AI-Mode,以确保正确的功能追踪和插件兼容性。
CLI 命令规范
重要:User-Agent 通过 AI-Mode 配置自动应用。运行aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-video-forge"后,所有后续aliyunCLI 命令将自动包含正确的 User-Agent。无需为每条命令添加--user-agent参数。
阿里云skills
◯ 评论 0