如何构建一套高性能、高可用性、低成本的视频处理系统?

前言

近些年,在线教育行业飞速发展,为整个社会的知识传播提供了前所未有的便利性。通过多种形式的在线教育平台,学员与教师即使相隔万里也可以开展教学活动。借助丰富的网络课件,学员还可以随时随地的进行学习,真正打破了时间和空间的限制。在各种形式的网络课件中,视频课件自然是最直观表现力最丰富的形式,因此视频课件的市场占有率也在逐年提升。

视频处理需求分析

对于在线教育领域的视频课件出品方而言,每天都要对大量视频内容进行处理,下图展示了一个比较典型的场景:

image.png
1、用户上传一个视频到平台后,会先在对象存储中对视频源文件进行暂存。
2、平台对视频进行预处理,并打上水印。
3、平台将视频文件转换为其他格式,并对分辨率进行调整,以适配各种不同的终端设备的要求。
4、将处理好的视频文件保存回对象存储,并同步到 CDN 进行加速。

虽然从流程上来讲,这个场景比较简单,但在技术上的挑战其实是非常大的。视频课件的原作者来自于在线教育平台的广大用户,可能是平台负责内容输出的内部用户,也有可能是签约的教师,或者是平台认证过的分享型用户。用户上传视频的操作并没有固定的频率,往往集中在几个时间段,存在明显的波峰波谷。在业务高峰期,视频处理的需求量非常大,有的在线教育企业每天要完成数万个视频的转码工作。对于负责建设视频处理系统的技术团队而言,这样的业务场景就留给了他们一系列的挑战:

1、如何确保这套系统在业务高峰期的高可用性?
2、如何让每一个上传的视频尽可能快的处理完?
3、如何尽可能的降低资源成本?
4、如何高效率的应对需求的频繁变更?

基于这几个诉求,我们结合云计算的特点,来分析一下可行的解决方案。

使用 SaaS 化的云服务完成视频处理

随着各大云计算厂商产品线的不断丰富,我们可以很轻松的寻找到开箱即用的方案来解决这类典型的视频处理需求。以阿里云为例,视频点播类产品提供了视频采集、编辑、上传、媒体资源管理、转码处理、视频审核分析、分发加速于一体的一站式解决方案。

image.png
对于技术团队而言,采用这样的方案不用预先准备任何计算资源,甚至不用编写任何代码,就能够从无到有拥有一整套视频处理系统,完全不用考虑资源规划的问题。这样的方案非常适合在业务发展初级需要让系统快速上线的场景。

但随着业务的不断发展,开箱即用的 SaaS 化方案还是存在不少的局限性,基于如下的原因,大多数的技术团队还是会选择自己建设视频处理系统:

1、对于之前已经通过 FFmpeg 技术实现的视频处理服务,因为涉及到复杂的业务逻辑,很难直接迁移到 SaaS 化方案上来。

2、高阶的视频处理需求必须使用代码来实现:比如音频降噪、插入动态 Gif 水印、按固定频率截帧等等。

3、使用高分辨率的大视频是行业趋势,对于超大视频的处理,比如 10G 以上的 1080P 视频,往往需要通过自定义的手段进行计

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值