大咖专栏 看赛不卡顿,AWS 媒体服务助力构建全球直播解决方案
使用 AWS 服务让您的直播网站告别因高负载造成的播放卡顿——...
更何况,一旦今天哪一队打的精彩,或者正赶上热门队伍的比赛,在线用户数肯定也是刷刷地往上涨。面对狂涌而入的用户,能够紧急购入设备把负载砸下来都算好的,毕竟设备的增设和部署也需要一定的时间。但很有可能的是,很多用户已经被十秒一卡的马赛克画面劝退了。而且,和本土节目或赛事不同,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 中选择MediaPackage2. 在 Channel 页面,选择 Create Channel3. 输入ID,即自行命名这个 Channel,例如 ch1,可选填 Description 栏
4. Input type 选择 Apple HLS
5. 点击 Create channel
6. 点击新创建的 Channel,在 Channel Overview 页面选择 Add/edit endpoint7. 在 endpoints 页面点击 Add,填写 ID,例如 ch1-ep1,点击 Save
8. 重复上述步骤创建第二个 Channel 和对应的 endpoint
9. 记下 channel 的 Input URL,username 和 password
创建 MediaLive Channel
1. 在控制台 Services 中选择 MediaLive2. 选择 Channels 页面,点击 Create Channel3. 在 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 input6. 在 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 发布
欢迎感兴趣的同学
扫描/长按识别下方的二维码
阅读学习
如何创建 HLS Output Group
启动 MediaLive Channel 并查看其工作状态
使用 CloudFront 创建 CDN 发布
欢迎感兴趣的同学
扫描/长按识别下方的二维码
阅读学习
马上点击“阅读原文”
申请并获得 AWS 中国区域账户的用户
将会获赠价值 500RMB 的 AWS 服务抵扣券!
关注 AWS
微信扫一扫关注公众号