通过云工作流和函数计算对视频分片转码
更新时间 2025-07-28 09:27:40
最近更新时间: 2025-07-28 09:27:40
本文介绍如何通过云工作流调用函数,使用FFmpeg工具并行对视频进行转码。
使用场景
由于视频大小限制,或有转换效率需求时,通过分片并行执行对视频转码。
准备工作
操作步骤
进入函数计算控制台,在左侧导航点击应用,然后单击创建应用按钮。
在文件处理分类中,找到视频转码云工作流,点击立即创建。
依照提示填入网络参数、ZOS和Nas参数。
点击创建应用,随后函数资源和工作流资源将根据应用名创建完成。
上传视频至ZOS Bucket中。
进入云工作流控制台,新工作流应当已经创建完成,工作流名与应用名一致。
点击进入新创建的工作流,点击启动执行,参考以下参数填入执行输入,等待执行完成。
{
"dst_formats": [
"avi"
],
"oss_bucket_name": "workflow-bucket",
"output_prefix": "workflow/video/output",
"segment_time_seconds": 2,
"video_key": "workflow/video/demo.mp4"
}
8. 工作流成功执行后,转码后的文件将存储在对象存储output_prefix路径下。
更多控制台操作与执行结果分析请参照控制台操作文档。
方案架构
在以上操作中,我们通过应用中心创建了3个函数与1个云工作流,3个函数都挂载了Nas作为本地存储。工作流对3个函数做了编排,首先通过splitVideo函数将视频分片,随后使用foreach状态遍历分片列表,调用Transcode函数并行转码,foreach结束后,调用MergeVideo函数聚合分片。
该方案中,函数完成了视频处理的具体逻辑,工作流定义了对函数的编排和数据流转。用户只需要维护ZOS和Nas资源,ZOS作为持久化存储,Nas作为临时存储,其它资源均为serverless资源,相比传统自建方案,减少了运维成本。
此外,该方案还降低了开发难度与迭代周期,以添加通知逻辑为例,只需要在画布上简单拖动,添加通知节点即可实现。