在 《Serverless 音视频转码——芒果 TV 落地实践(上)》中,我们回顾了芒果 TV 吴坚强老师在 techo 大会的精彩分享,芒果TV 音视频编解码业务团队通过使用腾讯云 Serverless 音视频转码服务,成本降低 45% 以上,引起大家的广泛关注,小伙伴们都跃跃欲试!
本文我们将带领大家一起使用云函数 + COS + CLS + FFmpeg 构建高可用、并行处理、实时日志、高度自定义的视频转码服务。我们在此提供了两种方案,您可以直接用转码应用,一键部署,也可以通过 用函数的长运行方案来自己处理。
实现方案
方案一: 使用官网的流式音视频转码,一键部署。查看详情 方案二: 利用云函数的异步执行机制,自主研发。查看详情
流式音视频转码方案
通过云函数创建 FFmpeg 任务进程,云函数进程与 FFmpeg 任务进程通过 pipe 和 FIFO 的方式进行数据传输。云函数进程中的两个任务线程分别接收 FFmpeg 任务进程向函数进程输出的 FFmpeg 日志流与转码后的文件流,从而实现流式读写 COS 和实时日志输出的转码应用场景。
方案优势
- 流式转码 采用流式拉取源视频文件,流式上传转码文件的工作方式,突破了本地存储的限制,且不需要额外部署 CFS 等产品。
- 实时日志 视频转码过程中,可通过 CLS 日志实时查看转码进度。同时支持输出 FFmpeg 应用的完整日志。
- 长时运行 利用云函数的长时运行机制,支持 12h-24h 的运行时长,可覆盖大文件耗时较长的转码场景。
- 自定义参数 支持用户自定义配置 FFmpeg 命令参数。
前提条件
- 安装 Serverlesss Framework。
- 函数长时运行 白名单申请。
- 配置部署账号权限。参考 账号和权限配置
- 配置 运行角色 权限。
操作步骤
1. 下载转码应用
sls init trans