作为全球云服务的领导者,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
c. 输入 ID,即自行命名这个 Channel,例如 ch1。可选填 Description 栏
d. Input type 选择 Apple HLS
e. 点击 Create channel
f. 点击新创建的 Channel,在 Channel Overview 页面选择 Add/edit endpoint
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
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
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。见下图
l. 点击 Create channel
4. 启动 channel 并查看
a. Channel 创建完成后是 idle 状态,选中之后点击 Start
b. 使用第 2 步创建的 endpoint,使用 VLC player 来播放这个直播流,,例如:
c. 如果不能看到直播视频流,请查看并确认 MediaLive Channel 和 MediaPackage Channel 的 network in&out 都有流量
MediaLive Channel 网络状态
MediaPackage Channel 网络状态
5. 使用 CloudFront 创建 CDN 发布
a. 登陆 AWS Global 控制台,在 Services 中选择 CloudFront,选择 Distributions,点击 Create Distribution
b. 使用 Web 方式,点击 Get Start
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 媒体服务使您专注于内容,而非管理复杂的基础设施,让您能为观众提供卓越的体验。
作者介绍:
曹磊
本文转载自 AWS 技术博客。
原文链接:
https://amazonaws-china.com/cn/blogs/china/medialive-package/
评论