11 月 19 - 20 日 Apache Pulsar 社区年度盛会来啦,立即报名! 了解详情
写点什么

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

  • 2019-10-28
  • 本文字数:2757 字

    阅读完需:约 9 分钟

使用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



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 来播放这个直播流,,例如:


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


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 Pub团队解决方案架构师,负责基于AWS的云计算方案的咨询与架构设计,同时致力于AWS云服务在国内和全球的应用和推广,尤其关注媒体行业的应用。在加入AWS之前,他在广电行业从业多年,为多家广播机构提供过系统设计和实施服务,具有丰富的媒体行业经验。
复制代码


本文转载自 AWS 技术博客。


原文链接:


https://amazonaws-china.com/cn/blogs/china/medialive-package/


2019-10-28 08:00812

评论

发布
暂无评论
发现更多内容

云管理工具是干什么的?有哪些?哪个品牌好?

行云管家

云计算 云管理 云工具

uniapp实现国际化多语言切换

源字节1号

软件开发

好文分享 | 记一次Oracle12c数据库SQL短暂缓慢问题分析

墨天轮

数据库 oracle 性能优化 征文投稿

OpenHarmony轻松玩转GIF数据渲染

OpenHarmony开发者社区

OpenHarmony

IM跨平台技术学习(五):融云基于Electron的IM跨平台SDK改造实践总结

JackJiang

CEF | CEF浏览器客户端功能扩展:实现与JS交互的功能

YOLO.

qt 10月月更 C++

StartDT奇点云邀您参加2022云栖大会,11月3-5日杭州见

奇点云

云栖大会 奇点云

得物API一站式协作平台探索与落地

得物技术

架构 数据分类 API Mock 10月月更

【云安全】云安全产品有哪些?哪个品牌好?

行云管家

云计算 网络安全 安全 云安全

训练营 | 如何成为一名开源社区贡献者?

阿里巴巴云原生

阿里云 开源 云原生 KubeVela

以开发之名|斗罗大陆:创造一个尽情探险的开放式游戏世界

HMS Core

华为 HMS Core

Baklib|打造属于您自己的企业维基

Baklib

产品 效率工具 企业 wiki 产品文档

火力全开-Precision 7670触顶性能天花版

科技热闻

Qt|使用QDialog窗口调用exec时崩溃解决问题

中国好公民st

c++ qt 10月月更

如何利用Java在Word中创建表格

Geek_249eec

Java word 表格

小白必看——台式机选购指南

科技热闻

在云南,我用华为云AI开发出千万级用户的应用

华为云开发者联盟

人工智能 程序员 华为云 文字识别 企业号十月 PK 榜

Baklib|企业知识管理的一些建议分享

Baklib

效率工具 知识管理 企业 知识 知识库

嵌入式 Linux 入门(一、Linux 基本介绍及文件结构)

矜辰所致

Linux 10月月更 文件结构

Linux 各个Namespace 的作用

忙着长大#

linux namespace

软件测试校招面试真题 | 面试官必问面试题之你有什么想问我的?

测试人

横空出世,智见未来,戴尔Latitude 9430傲视群雄

科技热闻

EMQ走进富士康,探讨新生态模式下智能制造与智能汽车基础架构的未来

EMQ映云科技

车联网 物联网 IoT emqx 10月月更

MASA MAUI Plugin (四)条形码、二维码扫描功能

MASA技术团队

MASA MAUI MASA Blazor

基于炼丹神器深度学习下的生命科学冷冻电镜单细胞基因分析的解决方案

蓝海大脑GPU

Qt | QList的removeAt、takeAt的区别

YOLO.

qt 10月月更 C++

区服分析丨更透彻的游戏营运数据解读,助力高效增长

HMS Core

分析

跑批为什么这么难

陈橘又青

使用AWS 媒体服务构建全球直播解决方案_语言 & 开发_亚马逊云科技 (Amazon Web Services)_InfoQ精选文章