注:当前项目为 Serverless Devs 应用,由于应用中会存在需要初始化才可运行的变量(例如应用部署地区、服务名、函数名等等),所以不推荐直接 Clone 本仓库到本地进行部署或直接复制 s.yaml 使用,强烈推荐通过
s init的方法或应用中心进行初始化,详情可参考部署 & 体验 。
基于 FC + Serverless Workflow + OSS + NAS + FFmpeg 实现的弹性高可用、并行处理的视频转码服务
使用该项目,您需要有开通以下服务:
| 服务 | 备注 |
|---|---|
| 函数计算 FC | 转码等函数部署在函数计算 |
| Serverless 工作流 | 视频处理工作流部署在 Serverless 工作流 |
| 对象存储 OSS | 原视频位于 OSS |
| 文件存储 NAS | 视频临时处理工作区间位于文件存储 NAS |
| 专有网络 VPC | NAS 挂载点需要有 VPC |
推荐您拥有以下的产品权限 / 策略:
| 服务/业务 | 权限 | 备注 |
|---|---|---|
| 函数计算 | AliyunFCFullAccess | 创建或者更新转码等函数 |
| 硬盘挂载 | AliyunNASFullAccess | 视频临时处理工作区间位于文件存储 NAS, 需要有自动创建 NAS 的权限 |
| VPC | AliyunVPCFullAccess | NAS 需要 VPC 挂载点, 需要有 VPC 自动创建的能力 |
| OSS | AliyunOSSFullAccess | 创建 OSS 触发器需要的调用 OSS 相关 API 的权限 |
| 工作流 | AliyunFnFFullAccess | 创建或者更新音视频处理工作流 |
| 其它 | AliyunECSFullAccess | 函数计算 NAS 挂载点需要交换机和安全组, 需要有自动创建的权限 |
- 🔥 通过 Serverless 应用中心 ,
该应用。
- 通过 Serverless Devs Cli 进行部署:
- 安装 Serverless Devs Cli 开发者工具 ,并进行授权信息配置 ;
- 初始化项目:
s init video-process-flow -d video-process-flow - 进入项目,并进行项目部署:
cd video-process-flow && s deploy - y
如下图所示, 假设用户上传一个 mov 格式的视频到 OSS, OSS 触发器自动触发函数执行, 函数调用 FnF 执行,FnF 同时进行 1 种或者多种格式的转码(由 s.yaml 中的 DST_FORMATS 参数控制), 本示例配置的是同时进行 mp4, flv, avi 格式的转码。
您可以实现如下需求:
-
一个视频文件可以同时被转码成各种格式以及其他各种自定义处理,比如增加水印处理或者在 after-process 更新信息到数据库等。
-
当有多个文件同时上传到 OSS,函数计算会自动伸缩, 并行处理多个文件, 同时每次文件转码成多种格式也是并行。
-
结合 NAS + 视频切片, 可以解决超大视频的转码, 对于每一个视频,先进行切片处理,然后并行转码切片,最后合成,通过设置合理的切片时间,可以大大加速较大视频的转码速度。
操作视频教程:
P.S. 当您想要仅在一个简单的函数中直接完成视频处理逻辑时,可以参考音视频转码 Job
您如果有关于错误的反馈或者未来的期待,您可以在 Serverless Devs repo Issues 中进行反馈和交流。如果您想要加入我们的讨论组或者了解 FC 组件的最新动态,您可以通过以下渠道进行:
![]() |
![]() |
![]() |
|---|---|---|
微信公众号:serverless |
微信小助手:xiaojiangwh |
钉钉交流群:33947367 |




