极速生成缩略图,Serverless 支撑赛事转播锁定冬奥亮点

Posted 阿里技术

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了极速生成缩略图,Serverless 支撑赛事转播锁定冬奥亮点相关的知识,希望对你有一定的参考价值。


“北京冬奥会在开赛的第四天便成为了历史上收视最高的一届冬奥会,其转播内容总生产量将达 6000小时,超过平昌冬奥会的 5400 小时。关注北京冬奥会的人群比往届都多,北京冬奥会在全球收视预计将超过 20 亿人次。” 这是奥林匹克广播服务公司(OBS)首席执行官伊阿尼斯·埃克萨科斯在 2月10日发布的一组数据。毫无疑问,北京冬奥是近一个月世界网络中的“顶流”

全球观众对观看北京冬奥会赛事的热情高涨,让赛事转播视频备受瞩目。通过浏览赛事亮点缩略图,观众可以在众多转播视频中快速找到自己感兴趣的内容。对于转播商来说,如何简单快速的对海量赛事直播视频做实时处理,在不同时间点上生成缩略图是一个难题。

一  Serverless 支撑赛事转播锁定冬奥亮点


视频缩略图是在视频中某一帧动画的缩略图,相当于将视频的封面或其中一帧的画面内容转换成了图片文件,选取的视频缩略图能够把视频中亮点画面突出显示,快速抓住用户眼球,提高点击播放率,赛事视频缩略图与普通视频缩略图有些不同,需要对海量视频做更为快速实时的抓取。
函数计算支持的客户需要对北京冬奥会的海量比赛直播视频进行实时处理,在直播视频里的不同时间点上做截屏(专业术语 "视频图片采集"), 客户的需求如下:

  • 需要定时事件触发截屏操作

  • 客户只想集中精力在具体的逻辑开发, 核心视频截图逻辑代码量不大, 需要快速完成开发

  • 客户不希望管理部署虚拟机/物理机,希望越简单越好

  • 客户需要这个核心业务逻辑具有弹性高可用, 免运维

  • 通过使用阿里云函数计算(FC),用户开发了视频截图的核心业务代码,开发成本低,一键部署,即得到了一个弹性高可用免运维的直播视频截图服务,帮助实现冬奥视频亮点实时抓取。

    图片仅展示视频缩略图效果

    其实早在 2021 年东京奥运会期间, 就有转播公司通过阿里云函数计算(FC)视频缩略图服务完美支撑直播赛事实时锁定精彩亮点了。在奥运会的 15 天期间内, 发生了数千万次函数调用, FC 保证了该服务弹性高可用。

    二  稳定应对爆发式峰值流量,实时进行多媒体处理


    公有云 Serverless 架构具有应对爆发式峰值流量的优点。函数计算是阿里云提供的 Serverless 计算平台,函数计算可以根据请求量动态分配执行环境,毫秒级调度计算资源,确保在负载高时保持稳定的延时,在负载低时有较高的资源利用率,且只会对代码运行时使用的计算资源付费。函数计算还可以与对象存储服务无缝集成,可以方便地对存储在对象存储中的图片进行实时处理。

    1  函数计算视频直播截帧服务


    在北京米连科技有限公司旗下相亲交友产品伊对 App 的业务场景里面,视频直播是最为重要的环节,基于视频直播这个骨架,可以融入线上红娘等多类创新业务模式,这也对视频直播的内容安全提出了极高的要求。不论是自身通过 AI 技术对视频直播内容进行智能分析,还是应对监管的要求,都需要在每一路视频直播流开始后,根据固定频率对视频进行截帧,并通过统一的审核服务对截帧生成的图片进行处理。
    在这个需求里面,截帧服务承担着关键职责,这个服务不仅需要通过 FFmpeg 命令对每一路直播视频流进行截帧操作,还需要将生成的图片保存到对象存储 OSS,并将截帧信息写入到 Kafka。这样下游的截帧服务就能从 Kafka 上拉取截帧信息,并从截帧信息中得到图片在 OSS 中的地址,从而完成对于图片的审核。在这个架构中,引入 Kafka 是为了通过异步处理机制缓解审核服务在业务高峰期的负载。


    伊对 App 使用函数计算,用户无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算会自动准备好计算资源,弹性地、可靠地运行任务,并提供日志查询、性能监控和报警等功能。借助函数计算 FC,可以快速构建任何类型的应用和服务,并且只需为任务实际消耗的资源付费。之前截帧业务的架构只需要做很小的调整,就能迁移到函数计算平台上来,以享受 Serverless 的价值。
    2  函数计算图片实时处理服务


    以某微博为例,业务的急速增长对微博的原有技术体系造成了极大的冲击。如何在用户量飞速增长、热点事件流量激增及请求有明显波峰波谷的情况下,既不影响用户体验,又不增加服务器成本投入是微博开发人员的当务之急。
    函数计算的弹性扩容、事件触发、按量付费的特性与微博一拍即合。微博决定使用函数计算部署图片处理业务。


    某微博使用函数计算的弹性扩容、事件触发、按量付费的特性部署图片处理业务,将用户上传的图片存储到对象存储中,编写函数实现个性化的图片处理。当微博的用户通过客户端获取图片时,请求通过阿里云CDN回源到函数计算,函数从对象存储中下载原图,根据客户端类型(比如不同的手机型号)实时处理成预期规格的图片,并将结果图片返回, 极大减少存储成本。

    函数计算毫秒级伸缩计算资源确保应用在热点事件发生时仍能保证稳定的延时,用户体验完全不受访问次数的影响。通过函数计算运行图片处理服务,微博实现了持续的成本节省。再也不需要为平滑处理业务高峰带来的流量激增而提前预留大量闲置机器资源,同时由于不需要维护复杂的机器状态,工程师可以集中精力与产品团队合作增加业务价值,而不是花时间管理基础设施。
    三  总结


    Serverless 技术毫无疑问将会承担更多的责任,让用户更快更好的构建应用。使用 Serverless 架构可以覆盖很多场景,这里只是介绍了几个图片处理的场景。Less is more 把事情交给可靠的平台(比如云厂商)去做,让开发者可以更加聚焦自身的核心业务价值,是 Serverless 所一直推崇的理念。



    Serverless 技术图谱

    随着 Serverless 热度不断升高,越来越多人期望在实际工作中能快速上手。为了让更多 Serverless 初学者真正学会 Serverless 理论知识,在工作中根据需要灵活 应用 Serverless 技术,阿里云 Serverless 团队推出技术图谱,本课程包含机频、动手实验、电子书、直播、开源项目多种形式内容,让各位开发者即学即用,跑步入场享受 Serverless 技术红利。点击阅读原文查看详情!

    [AWS][Serverless] 无服务器Serverless 图像缩略图应用

    用户的需求是我上传一张照片可以自动生成缩略图。在需要get到原图的时候再下载原图。
    一般网盘或图片浏览的常规操作。通常需要再客户端植入代码或在云端处理。这里可以使用FaaS,函数即服务的方式来缩短我们开发周期,节约成本。

    架构:

    技术图片

    1.创建两个S3 的存储桶

    技术图片

    技术图片

    将图片上传到images-120080212

    2.创建一个Lambda函数

    技术图片

    技术图片

    技术图片

    技术图片

    想要Lambda代码直接@我留言吧,大概9MiB。用Python写的。把代码直接放到λ函数里再跟进下面的操作就可以直接RUN了。

    最终执行的py脚本为:CreateThumbnail.py
    所以处理程序为:CreateThumbnail.handler

    技术图片

    技术图片

    测试函数,选择测试。

    技术图片

    技术图片

    技术图片

    技术图片

    回到S3的resized的bucket上:

    技术图片

    监控我的应用程序:

    技术图片

    统计单位 是 个数和时长

    Invocations:被调用了多少次
    Duration:函数执行时长(ms)
    Error:函数执行失败了多少次
    Throlttes:并行超过限制将不再执行的函数个数,默认是1000并行。
    IteratorAge:迭代时长,测量从流触发器处理的最后一个记录的时长。
    也就是这个函数处理最后一个数据流所用的时长(Kinesis Stream or DDB Stream)
    DeadLetterErrors:发生失败时发送死信队列所用时长。

    嗯。就先写这些吧。Serverless应用在云计算中已经越来越普及了。以后的应用架构中,随着容器编排和Serverless技术的扩展,应用逐渐解耦为函数级别,在一些特定场景中Serverless能够快速、低成本的完成高并发任务。

    以上是关于极速生成缩略图,Serverless 支撑赛事转播锁定冬奥亮点的主要内容,如果未能解决你的问题,请参考以下文章

    极速生成缩略图,Serverless 支撑赛事转播锁定冬奥亮点

    [AWS][Serverless] 无服务器Serverless 图像缩略图应用

    高阶数据分析:细节帮助比利时淘汰日本,及辅助体育赛事转播

    1分钟 Serverless 极速搭建真网站 领猫超卡之《极速搭建 Zblog 博客系统》场景体验

    体育赛事IP越来越抢手,如何打造自身IP才是关键

    真送礼物1 分钟 Serverless 极速部署盲盒平台,自己部署自己抽!