最佳实践

音视频转码最佳实践

最近更新时间:2021-09-02 15:53:12

客户介绍

某国内在线教育企业,于2006年在美国纽约证券交易所上市,总部位于中国北京市海淀区中关村,是一家综合性教育集团,同时也是教育培训集团。该企业业务包括外语培训、中小学基础教育、学前教育、在线教育、出国咨询、图书出版等各个领域。旗下还有多家教育子品牌。

客户痛点

在每年暑期时,会有大量学生在企业平台上学习。在此之前都是在自建的机房里基于服务器和 NFS 来实现音视频课程的存储和转码逻辑。但由于暑期流量比较大,IDC 里的服务器不一定能满足计算需求,同时自建服务的硬件采购周期较长,于是期望寻找一种弹性方法,既能够支持快速业务部署,又能高效的完成转码功能。

在视频应用、社交应用等场景下,用户上传的图片、音视频的总量大、频率高,对处理系统的实时性和并发能力都有较高的要求。传统的容器服务,需要用户自己维护容器集群,弹性伸缩效率较低。

Serverless 解决方案

腾讯云 Serverless 云函数支持自定义转码函数,帮助企业快速搭建定制化任务处理能力,弥补当前单独云服务的功能盲点,将 ffmpeg 业务方便地从物理机、云主机或容器中移植到云函数。

使用云函数 + ffmpeg 和 COS 联动做音视频转码的运行原理如下图:

技术方案上,在云上采用云函数 + COS 的方式,可以支持弹性伸缩,即使将本地流量全部切到云上,也能全部承载。新的业务流程,会加入任务调度模块,当业务流量进入时,可以自动或者手动将流量分别导入自研服务和云上服务,同时在流程里加入了很多高可用技术,例如通过任务 TraceID 进行全链路追踪、云端计算失败本地自动重试等。新的方案里,云端服务开发简单,且无需投入太多运维精力,同时具有更优的成本优势。按量计费(用多少付多少)的云函数计费方式,降低了大量的资源成本。

Serverless 应用价值

使用腾讯云 Serverless 云函数实现音视频转码服务的优势:

  • 云函数提供标准运行环境,并且保障资源的高可用和弹性伸缩,无需专人维护。
  • 云函数基于实际业务消耗收费,不存在资源浪费。
  • 云函数的开发调试流程效率会更加高效,依赖和业务解耦,可以分别单独更新,支持实时热更新。
  • 运行环境隔离,单次请求失败不影响其他请求的正常执行。

当现有业务引入云函数时,需要注意以下两点:

  • 云函数的引入,需要对接现有 CI/CD 流程,开发方式上有一定的转变。
  • 现有业务代码需要做一定的改造,主要在 ffmpeg 的编包上(云函数可以提供编包工具)。
目录