当前位置:首页> 歌单 >大咖专栏 | 看赛不卡顿,AWS 媒体服务助力构建全球直播解决方案

大咖专栏 | 看赛不卡顿,AWS 媒体服务助力构建全球直播解决方案

2023-05-10 14:56:27

转眼间,NBA 赛季已经过半,马刺在季后赛的回归,骑士的迷失与开拓者的逆袭,以及两队在上周剑拔弩张的战斗,在这个瞬息万变的战场上,发生了太多激动人心的故事。

假如您正经营着一家实时流媒体视频平台,推出的又是 NBA 这种级别的赛事直播,用户在赛季的访问量肯定远高于非赛季,这对于对带宽和流量要求极高的流媒体视频网站来说,可谓是一个不小的挑战。


更何况,一旦今天哪一队打的精彩,或者正赶上热门队伍的比赛,在线用户数肯定也是刷刷地往上涨。面对狂涌而入的用户,能够紧急购入设备把负载砸下来都算好的,毕竟设备的增设和部署也需要一定的时间。但很有可能的是,很多用户已经被十秒一卡的马赛克画面劝退了。

而且,和本土节目或赛事不同,NBA 比赛的观众遍布全球,要保证所有用户的观看体验,没有一个可靠的内容分发网络(CDN),是万万不行的。


眼看手头的服务器快撑不住了,在线用户数还一直往上涨,码率是不能降的,不然球星一动起来连脸都看不清。那有没有一个既可以 hold 住 NBA 这种级别的赛事直播,又能实现投产比最大化的解决方案呢?


AWS Media Services 是一系列完全托管的服务,有助于在云中轻松构建具有广播品质的可靠视频工作流。无论是媒体和娱乐公司,还是大型企业、初创企业或政府机构,AWS Media Services 都能使您为观众轻松打造专业品质的媒体体验,而且无需在传统数据中心内运行专业化视频设备通常所需的时间、精力和费用。

下面,就由 AWS 解决方案架构师——曹磊老师,为我们演示如何使用 AWS  媒体服务构建起一套全球直播解决方案吧——

曹 磊

AWS Pub 团队解决方案架构师

负责基于 AWS 的云计算方案的咨询与架构设计,同时致力于 AWS 云服务在国内和全球的应用和推广,尤其关注媒体行业的应用。在加入 AWS 之前,他在广电行业从业多年,为多家广播机构提供过系统设计和实施服务,具有丰富的媒体行业经验。


作为全球云服务的领导者,AWS 始终在创新的路上飞驰,仅2017年一年 AWS 就发布了1300多项新的服务、功能或者特性,这其中就包括在2017年 re:Invent 上发布的5个全新的媒体服务:


MediaConvert

MediaLive

MeidaPackage

MediaStore

MediaTailor


这些完全托管的服务,使得用户可以在云中轻松构建具有广播品质的可靠视频工作流。用户在构建互联网视频,OTT 视频业务的时候,直接在 AWS 控制台上即可启动直播、转码、存储和广告插入等广播级的业务流程,可以按照使用量即用即付,随时启停,而无需前期投入购买昂贵的设备资产,无需进行基础架构运维的成本投入。AWS 平台具有全球部署能力,可以分分钟将业务扩展到全球各个区域。


下面我们将借助 AWS Elemental MediaLive , MediaPackage,CloudFront 服务构建一套完整的直播 OTT 转码打包分发服务,通过这个实验您可以直观的体会到 AWS 的媒体服务是多么便捷,而您所需要的仅仅是一个 AWS Global 账号和一天可以上网的电脑。


准备直播源

MediaLive 支持 RTP,RTMP(Push),RTMP(Pull)和 HLS 四种输入源,如果您已经有 RTMP 直播源可以直接用在本实验中。


本次实验以 HLS 为例,使用存储在 S3 上的一个预先转码完成的文件做为输入源,对于 MediaLive 来说,这个输入源就是一个直播源。例如:

https://s3-us-west-2.amazonaws.com/mytestbucket-og-media-3/keynote-hls/testvideo.m3u8


确认此目录已经开启公开访问,关于S3的更多信息请参阅: 

https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/dev/Welcome.html


创建 MediaPackage Channel

1. 登陆 AWS Global 控制台,在 Services 中选择MediaPackage

2. 在 Channel 页面,选择 Create Channel

3.  输入ID,即自行命名这个 Channel,例如 ch1,可选填 Description 栏

4.  Input type 选择 Apple HLS

5.  点击 Create channel

6 点击新创建的 Channel,在 Channel Overview 页面选择 Add/edit endpoint

7.  在 endpoints 页面点击 Add,填写 ID,例如 ch1-ep1,点击 Save

8.  重复上述步骤创建第二个 Channel 和对应的 endpoint

9.  记下 channel 的 Input URL,username 和  password


创建 MediaLive Channel

1.  在控制台 Services 中选择 MediaLive

2.  选择 Channels 页面,点击 Create Channel

3.  在 Channel Name 中填入自行创建的通道名

4.  在 IAM Role 选择 Create role from template,选中 Remember ARN


关于 IAM Role 更多信息请参见:https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/id_roles.html

创建 MediaLive Input

5.  在 Channel input 部分点击 Create input

6. 在 Input name 创建一个名字

7.  Input type 选择 HLS

8.  将第一步准备的 HLS 源的地址填入 Input source A 和 Input source B 的 URL 中。注意,出于高可用性的考虑,MediaLive Input 要求2个互为主备的输入源,本试验使用两个不同的存储桶的 HLS URL 做为输入源,在实际生产环境中也要两个不同的输入源地址来提供高可靠性

9.  点击 Create


在接下来的内容里,我们将介绍:

如何创建 HLS Output Group

启动 MediaLive Channel 并查看其工作状态

使用 CloudFront 创建 CDN 发布


欢迎感兴趣的同学

扫描/长按识别下方的二维码

阅读学习


马上点击“阅读原文

申请并获得 AWS 中国区域账户的用户

将会获赠价值 500RMB 的 AWS 服务抵扣券!



友情链接