极速生成缩略图,Serverless 支撑赛事转播锁定冬奥亮点-快速生成缩略图
“北京冬奥会在开赛的第四天便成为了历史上收视最高的一届冬奥会,其转播内容总生产量将达 6000小时,超过平昌冬奥会的 5400
小时。关注北京冬奥会的人群比往届都多,北京冬奥会在全球收视预计将超过 20 亿人次。” 这是奥林匹克广播服务公司(OBS)首席执行官伊阿尼斯·埃克萨科斯在
2月10日发布的一组数据。毫无疑问,北京冬奥是近一个月世界网络中的“顶流”
全球观众对观看北京冬奥会赛事的热情高涨,让赛事转播视频备受瞩目。通过浏览赛事亮点缩略图,观众可以在众多转播视频中快速找到自己感兴趣的内容。对于转播商来说,如何简单快速的对海量赛事直播视频做实时处理,在不同时间点上生成缩略图是一个难题。
视频缩略图是在视频中某一帧动画的缩略图,相当于将视频的封面或其中一帧的画面内容转换成了图片文件,选取的视频缩略图能够把视频中亮点画面突出显示,快速抓住用户眼球,提高点击播放率,赛事视频缩略图与普通视频缩略图有些不同,需要对海量视频做更为快速实时的抓取。
函数计算支持的客户需要对北京冬奥会的海量比赛直播视频进行实时处理,在直播视频里的不同时间点上做截屏(专业术语 "视频图片采集"),
客户的需求如下:需要定时事件触发截屏操作客户只想集中精力在具体的逻辑开发, 核心视频截图逻辑代码量不大, 需要快速完成开发客户不希望管理部署虚拟机/物理机,希望越简单越好客户需要这个核心业务逻辑具有弹性高可用, 免运维
通过使用阿里云函数计算(FC),用户开发了视频截图的核心业务代码,开发成本低,一键部署,即得到了一个弹性高可用免运维的直播视频截图服务,帮助实现冬奥视频亮点实时抓取。
图片仅展示视频缩略图效果
其实早在 2021 年东京奥运会期间, 就有转播公司通过阿里云函数计算(FC)视频缩略图服务完美支撑直播赛事实时锁定精彩亮点了。在奥运会的 15
天期间内, 发生了数千万次函数调用, FC 保证了该服务弹性高可用。
公有云 Serverless 架构具有应对爆发式峰值流量的优点。函数计算是阿里云提供的 Serverless
计算平台,函数计算可以根据请求量动态分配执行环境,毫秒级调度计算资源,确保在负载高时保持稳定的延时,在负载低时有较高的资源利用率,且只会对代码运行时使用的计算资源付费。函数计算还可以与对象存储服务无缝集成,可以方便地对存储在对象存储中的图片进行实时处理。
在北京米连科技有限公司旗下相亲交友产品伊对 App
的业务场景里面,视频直播是最为重要的环节,基于视频直播这个骨架,可以融入线上红娘等多类创新业务模式,这也对视频直播的内容安全提出了极高的要求。不论是自身通过
AI
技术对视频直播内容进行智能分析,还是应对监管的要求,都需要在每一路视频直播流开始后,根据固定频率对视频进行截帧,并通过统一的审核服务对截帧生成的图片进行处理。
在这个需求里面,截帧服务承担着关键职责,这个服务不仅需要通过 FFmpeg 命令对每一路直播视频流进行截帧操作,还需要将生成的图片保存到对象存储
OSS,并将截帧信息写入到 Kafka。这样下游的截帧服务就能从 Kafka 上拉取截帧信息,并从截帧信息中得到图片在 OSS
中的地址,从而完成对于图片的审核。在这个架构中,引入 Kafka 是为了通过异步处理机制缓解审核服务在业务高峰期的负载。
伊对 App
使用函数计算,用户无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算会自动准备好计算资源,弹性地、可靠地运行任务,并提供日志查询、性能监控和报警等功能。借助函数计算
FC,可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费。之前截帧业务的架构只需要做很小的调整,就能迁移到函数计算平台上来,以享受
Serverless 的价值。
以某微博为例,业务的急速增长对微博的原有技术体系造成了极大的冲击。如何在用户量飞速增长、热点事件流量激增及请求有明显波峰波谷的情况下,既不影响用户体验,又不增加服务器成本投入是微博开发人员的当务之急。
函数计算的弹性扩容、事件触发、按量付费的特性与微博一拍即合。微博决定使用函数计算部署图片处理业务。
某微博使用函数计算的弹性扩容、事件触发、按量付费的特性部署图片处理业务,将用户上传的图片存储到对象存储中,编写函数实现个性化的图片处理。当微博的用户通过客户端获取图片时,请求通过阿里云CDN回源到函数计算,函数从对象存储中下载原图,根据客户端类型(比如不同的手机型号)实时处理成预期规格的图片,并将结果图片返回,
极大减少存储成本。
函数计算毫秒级伸缩计算资源确保应用在热点事件发生时仍能保证稳定的延时,用户体验完全不受访问次数的影响。通过函数计算运行图片处理服务,微博实现了持续的成本节省。再也不需要为平滑处理业务高峰带来的流量激增而提前预留大量闲置机器资源,同时由于不需要维护复杂的机器状态,工程师可以集中精力与产品团队合作增加业务价值,而不是花时间管理基础设施。
Serverless 技术毫无疑问将会承担更多的责任,让用户更快更好的构建应用。使用 Serverless
架构可以覆盖很多场景,这里只是介绍了几个图片处理的场景。Less is more
把事情交给可靠的平台(比如云厂商)去做,让开发者可以更加聚焦自身的核心业务价值,是 Serverless 所一直推崇的理念。