通过FC实现音视频转码
who
阿里云函数计算是事件驱动的全托管计算服务。通过函数计算,用户可以无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询、性能监控、报警等功能。
本来想着在函数计算FC平台上创建例如在线博客和商城之类的传统Web应用和一些音视频功能性的业务都会非常麻烦,但事实并非如此,官方公测中的应用中心提供了一键式的建站体验,本文介绍基于函数计算Serverless架构的弹性高可用音视频处理系统。
why
持续至今的疫情加速了在线教育、直播带货和在线视频的蓬勃发展,这些网站有大量的视频内容,但是观看视频的用户往往来自不同的终端,比如手机、浏览器、平板等,而用户所处的带宽环境也不尽相同。
显而易见,一种视频格式无法适配所有设备和网络环境。所以需要把原视频转换成可适配多设备、不同带宽环境的的多种视频格式。
同时,自建音视频转码服务器会带来以下痛点:
- l 服务器成本高昂
- l 运维成本较高,需要人工进行容量规划
- l 服务器资源不足,无法应对流量洪峰,影响用户体验
而基于SCF 的音视频转码方案可以解决以上痛点并带来如下收益:
- l 成本低,只有在转码期间才收费,减少资源闲置
- l 效率高,通过切分视频并发转码,费用几乎持平
- l 高性能,足以支撑国内领先的在线视频网站的转码服务
- l 免运维,减少人工运维成本
where
免费开通函数计算FC产品权限。
在函数计算FC应用子页面选择音视频处理——音视频转码Job 并创建该应用。
初次使用需要授权个人代码托管的读取权限,我们可以选择GitHub、gitee、自建gitlab和云效的codeup。
自动化流程由RAM角色操作,我们需要授予必要的权限。应用中心需要角色中包含应用所需策略,推荐创建并使用系统默认角色 AliyunFCServerlessDevsRole。
完成后创建应用等待即可,平台会进行自动部署。
测试运行
创建完成后在应用页面可以查看到我们刚才部署的应用,该应用并不能使用域名直接访问,我们需要找到对应的函数来进行测试。
你会发现你无法在函数列表内找到所属于这个应用的函数,不过这没关系
在应用详情页下拉的资源信息部分我们可以找到对应函数——transcode
在函数代码页面执行测试即可,转码完毕后,可以登录 OSS 控制台到指定的输出目录查看转码后的视频。
示例命令:
$ s VideoTranscoder invoke -e '{"bucket":"my-bucket", "object":"480P.mp4", "output_dir":"a", "dst_format":"mov"}' --invocation-type async --stateful-async-invocation-id my1-480P-mp4
我们可以看到,通过使用异步调用,我们可以跟踪多个视频是什么时候开始转码的, 什么时候转码结束,甚至可以中途停止执行。另外,我们可以追溯每次转码任务执行日志和触发payload进行分析。
尾巴
本次测评体验部署了基于函数计算Serverless架构的弹性高可用音视频处理系统,拥有函数计算和Serverless工作流两个产品的优势。相较于通用转码服务和自建服务都更具优势。充分体会到了函数计算FC带来的降本提效的技术红利。