+135 410 16684Mon. - Fri. 10:00-22:00

使用AWS 媒体服务构建全球直播解决方案

使用AWS 媒体服务构建全球直播解决方案

使用AWS 媒体服务构建全球直播解决方案

作为全球云服务的领导者,AWS始终在创新的路上飞驰,仅2017年一年AWS就发布了1300多项新的服务、功能或者特性,这其中就包括在2017年reInvent上发布的5个全新的媒体服务,MediaConvert, MediaLive, MeidaPackage, MediaStore和MediaTailor,这些完全托管的服务,使得用户可以在云中轻松构建具有广播品质的可靠视频工作流。用户在构建互联网视频,OTT视频业务的时候直接在AWS控制台上即可启动直播,转码,存储,广告插入等广播级的业务流程,可以按照使用量即用即付,随时启停,而无需前期投入购买昂贵的设备资产,无需进行基础架构运维的成本投入,。AWS平台具有全球部署能力,可以分分钟将业务扩展到全球各个区域。

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

 

1.  准备直播源

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)

2.  创建MediaPackage Channel

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

b.  在Channel页面,选择 Create Channel

1-1

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

d.  Input type选择Apple HLS

e.  点击Create channel

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

2

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

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

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

3.  创建MediaLive Channel

a.  在控制台Services 中选择MediaLive

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

3

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

d.  在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

e.  在Channel input部分点击Create input

4

f.  在Input name 创建一个名字

g.  Input type选择HLS

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

i.  点击Create

创建HLS Output Group

j.  在channel template部分,选择HTTP live streaming模版,将会自动添加不同分辨率和码率的10个输出。也可以不使用模版,通过手动添加自定义output

k.  点击Output groups下的模版名TN2224,点击Credentials(optional),选中Create AWS Elemental MediaLive parameter 将第2步创建的两个channel的URL,Username,password依次填入HLS Group destination A和HLS Group destination B。见下图

5

l.  点击 Create channel

4.  启动channel并查看

a.  Channel创建完成后是idle状态,选中之后点击Start

b.  使用第2步创建的endpoint,使用VLC player来播放这个直播流,,例如:

https://103xxxxxxxxe303.mediapackage.us-west-2.amazonaws.com/out/v1/c78bcxxxxxxxxxxxxxxxxxxxxxx45/index.m3u8

c.  如果不能看到直播视频流,请查看并确认MediaLive Channel 和MediaPackage Channel 的network in&out都有流量

6 7

MediaLive Channel网络状态

8-1 8-2

MediaPackage Channel网络状态

5.  使用CloudFront创建CDN发布

a.  登陆AWS Global 控制台,在Services中选择CloudFront,选择Distributions,点击Create Distribution

b.  使用Web方式,点击Get Start

9

c.  在Origin Domain Name中填入第2步创建的MediaPackage end point域名,例如:https://103xxxxxxxxe303.mediapackage.us-west-2.amazonaws.com

在Origin Path 中填入MediaPackage end point中的路径,例如: /out/v1/c78bcxxxxxxxxxxxxxxxxxxxxxx45

Origin Protocol Policy 选择HTTPS only

其他选项可以不修改,(更多CloudFront相关信息,请参阅https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cf_dg.pdf)

点击Create Distribution

d.  等待创建完成后,status由In progress变为Deployed,即可使用CLoudFront分配的域名,加上index.m3u8即可例如d2xxxxxxxxxxx4n4m.cloudfront.net/index.m3u8

使用VLC player打开这个地址即可播放,这样就完成了播放流的CDN发布,CloudFront会选择距你延时最小的边缘站点进行加速。

 

现在,您的直播业务就已经完成了构建,并具有全球分发和加速能力。AWS媒体服务具备内置可靠性和弹性。该服务可透明地管理多个可用区中的资源,并自动监控其运行状况,以便在不中断实时频道的情况下检测并解决任何潜在问题。借助 AWS 媒体服务,您可以获得比通常用于广播工作负载的基础设施更高的可靠性

MediaLive输入支持SD, HD, UHD,支持H.264 (AVC), HEVC (H.265), MPEG-2视频编码格式,支持AAC, Dolby Digital, Dolby Digital Plus, MPEG Audio, PCM音频格式,支持AFD,支持帧率控制,支持GOP结构设置,支持多种编码profile,支持多种字幕标准,支持时码插入,支持数字版权管理等等。

除了MediaLive+MediaPackage,您还可以使用MediaConvert做视频文件转码,使用MediaStore做内容存储,使用MediaTailor做广告插播。AWS媒体服务与包括 Amazon CloudFront、AWS CloudFormation、Amazon CloudWatch 在内的补充性 AWS 服务,以及适用于安全、管理和生产的第三方应用程序相集成,提供一整套工具来处理和交付实时的按需视频内容。最重要的是,AWS 媒体服务使您专注于内容,而非管理复杂的基础设施,让您能为观众提供卓越的体验。