人
已阅读
已阅读
免费CDN加速平台轻松构建基于Serverless架构的可用
作者:cdnfine 来源:cdnfine 发布时间:2020-03-21
这是一个非常典型的解决方案, 对象存储 OSS 可以支持海量视频存储,采集上传的视频被转码以适配各种终端,在免费CDN加速终端设备播放视频的速度。此外还有一些内容安全审查需求, 比如鉴黄、鉴恐等。
-
您已经在虚拟机/容器平台上基于 FFmpeg 部署了一套视频处理服务,能否在此基础上让它有更弹性、更高的可用性? -
您的需求只是简单的转码需求,或是一些极其轻量的需求,比如获取 OSS 上视频前几帧的 GIF、获取视频或者音频的时长,自己搭建成本更低; -
各种格式的音频转换或者各种采样率自定义、音频降噪等功能; -
您有更高级的自定义处理需求,比如视频转码完成后, 需要记录转码详情到数据库, 或者在转码完成后, 自动将热度很高的视频预热到高防CDN上, 从而缓解源站压力; -
您有并发处理大量视频的需求; -
您有很多超大的视频需要批量快速处理完, 比如每周五定期产生几百个 4G 以上的大视频, 但是希望当天几个小时后全部处理完; -
自定义视频处理流程中可能会有多种操作组合, 比如转码、加水印和生成视频首页 GIF。后续为视频处理系统增加新需求,比如调整转码参数,希望新功能发布上线对在线服务无影响; -
您的视频源文件存放在 NAS 或者 ECS 云盘上,自建服务可以直接读取源文件处理,而不需要将它们再迁移到 OSS 上。
Serverless 自定义音视频处理
-
函数计算:阿里云函数计算是事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询、性能监控、报警等功能;
-
函数工作流:函数工作流(Function Flow,以下简称 FnF)是一个用来协调多个分布式任务执行的全托管云服务。您可以用顺序,分支,并行等方式来编排分布式任务,FnF 会按照设定好的步骤可靠地协调任务执行,跟踪每个任务的状态转换,并在必要时执行用户定义的重试逻辑,以确保工作流顺利完成。
1. 简单视频处理系统
OSS 事件触发器, 阿里云对象存储和函数计算无缝集成。您可以为各种类型的事件设置处理函数,当 OSS 系统捕获到指定类型的事件后,会自动调用函数处理。例如,您可以设置函数来处理 PutObject 事件,当您调用 OSS PutObject API 上传视频到 OSS 后,相关联的函数会自动触发来处理该视频。
-
对视频进行分片 -> 转码 -> 合成处理, 详情参考:fc-fnf-video-processing, 下文会详细介绍; -
提工单:适当放宽执行时长限制;申请使用更高的函数内存 12G(8vCPU)。
2. 全功能视频处理系统-Example
-
一个视频文件可以同时被转码成各种格式以及其他各种自定义处理,比如增加水印处理或者在 after-process 更新信息到数据库等; -
当有多个文件同时上传到 OSS,函数计算会自动伸缩, 并行处理多个文件; -
对于每一个视频,先进行切片处理,然后并行转码切片,最后合成,通过设置合理的切片时间,可以大大加速较大视频的转码速度;
所谓的视频切片,是将视频流按指定的时间间隔,切分成一系列分片文件,并生成一个索引文件记录分片文件的信息。
-
结合 NAS + 视频切片, 可以解决超大视频(大于 3G )的转码。
3. 函数计算 + 函数工作流 Serverless 方案 VS 传统方案
卓越的工程效率
弹性伸缩免运维,性能优异
性能加速百分比 = T / FC转码耗时
更低的成本
-
具有明显波峰波谷的视频处理场景(比如只有部分时间段有视频处理请求,其他时间很少甚至没有视频处理请求),选择按需付费,只需为实际使用的计算资源付费;
-
没有明显波峰波谷的视频处理场景,可以使用预付费(包年包月),成本仍然极具竞争力;
函数计算成本优化最佳实践文档。
-
假设有一个基于 ECS 搭建的视频转码服务,由于是 CPU 密集型计算, 因此在这里将平均 CPU 利用率作为核心参考指标对评估成本,以一个月为周期,10 台 C5 ECS 的总计算力为例, 总的计算量约为 30% 场景下, 两个解决方案 CPU 资源利用率使用情况示意图大致如下:
-
函数计算预付费 3CU 一个月: 246.27 元, 计算能力等价于 ECS 计算型 C5; -
ECS 计算型 C5 (2vCPU,4GB)+云盘: 包月219 元; -
函数计算按量付费占整个计算量的占比 <= 10%,费用约为 3×864×10% = 259.2 元,(3G 规格的函数满负载跑满一个月费用为:0.00011108×3×30×24×3600 = 863.8,详情查看计费)。
-
在这个模型预估里面,可以看出 FC 方案具有很强的成本竞争力,在实际场景中, 基于 ECS 自建的视频转码服务 CPU 利用甚至很难达到 20%, 理由如下:可能只有部分时间段有视频转码请求;为了用户体验,视频转码速度有一定的要求,可能一个视频转码就需要 10 台 ECS 并行处理来转码, 因此只能预备很多 ECS; -
因此,在实际场景中, FC 在视频处理上的成本竞争力远强于上述模型; -
即使和云厂商视频转码服务单价 PK, 该方案仍有很强的成本竞争力。
实验视频为是 89s 的 mov 文件视频, 测试视频地址: 480P.mov/ 720P.mov /1080P.mov/4K.mov 测试命令: ffmpeg -i test.mov -preset superfast test.mp4
-
格式转换
成本下降百分比 = (腾讯云视频处理费用 - FC 转码费用)/ 腾讯云视频处理费用 腾讯云视频处理,计费使用普通转码,转码时长不足一分钟,按照一分钟计算,这里计费采用的是 2 min,即使采用 1.5 min 计算, 成本下降百分比也在 80% 左右。
操作部署
-
免费开通函数计算,按量付费,函数计算有很大的免费额度; -
免费开通函数工作流,按量付费,函数工作流有很大的免费额度; -
免费开通文件存储服务NAS, 按量付费
总结
-
无需采购和管理服务器等基础设施,只需专注视频处理业务逻辑的开发,大幅缩短项目交付时间和人力成本; -
提供日志查询、性能监控、报警等功能快速排查故障; -
以事件驱动的方式触发应用响应用户请求; -
免运维,毫秒级别弹性伸缩,快速实现底层扩容以应对峰值压力,性能优异; -
成本极具竞争力。
Q & A