阿里云视频锻造工坊

通过阿里云媒体处理服务(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 支持视频分发场景:

  1. 转码 —— 多清晰度转码,采用窄带高清压缩
  2. 内容审核 —— 自动检测敏感内容(色情、暴恐、广告)
  3. 截图 —— 生成封面图和雪碧图
  4. 防盗链 —— 配置加密以保护内容

架构

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 endpoint
  • ALIBABA_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-diagnose skill 引导用户申请必要权限
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

成功验证

视频处理后检查结果:

  1. 脚本退出码为 0
  2. 输出包含处理后的媒体信息(OSS 路径)
  3. 转码任务状态为 "Success"
  4. 内容审核显示无违规
  5. 产物已下载到本地(使用 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.pyMPS 异步任务轮询器,查询任务状态
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.pyPipeline 列表查询和自动选择(获取 Pipeline ID)

最佳实践

  1. 始终先检查环境变量 —— 每次会话开始时运行 python scripts/load_env.py --check-only
  2. 使用轮询而非等待 —— 提交任务后用 poll_task.py 自动轮询状态
  3. 明智选择清晰度 —— 根据目标用户设备选择合适的转码清晰度
  4. 启用内容审核 —— 对于 UGC 内容,始终启用自动审核
  5. 使用虚拟环境 —— 确保依赖隔离,避免版本冲突
  6. 自动 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.mdAliyun 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" 后,所有后续 aliyun CLI 命令将自动包含正确的 User-Agent。无需为每条命令添加 --user-agent 参数。

文档 2 / 5:alibabacloud-analyticdb-postgresql-supabase-ops