Azure 媒体服务是一个基于云的媒体工作流平台,用于生成需要编码、打包、内容保护和直播活动广播的解决方案。
在视频的直播,点播方案中,媒体服务的架构主要由三部分构成:
- 推流端,把本地视频或直播内容推送到媒体服务器
- 媒体服务器,编码,打包,加密,根据不同的客户端请求(PC, 安卓,苹果)发布不同的协议流。
- 拉流端 ,最终端用户的播放设备,如Azure 默认的播放器, Azure Media Player.
如Azure Media Player 点播的过程和结构图如下:
使用步骤:
- 将媒体文件上传到资产中。
- 建议向资产应用存储加密选项,以便在内容上传期间以及当内容在存储中处于静态时,为其提供保护。
- 编码为一组自适应比特率 MP4 文件。
- 建议向输出资产应用存储加密选项,以便保护静态内容。
- 配置资产传送策略(由动态打包使用)。
- 如果资产已经过存储加密,则 必须 配置资产传送策略。
- 通过创建 OnDemand 定位符来发布资产。
- 流式传输已发布的内容。
如Azure Media Player 直播的过程和结构图如下:
使用步骤:
- 将视频摄像机连接到计算机。 启动并配置输出多比特率 RTMP 或分段 MP4(平滑流式处理)流的本地实时编码器。
- 创建并启动频道。
- 检索通道引入 URL。
- 实时编码器使用引入 URL 将流发送到频道。
- 检索频道预览 URL。
- 使用此 URL 来验证频道是否正常接收实时流。
- 创建节目。
- 使用 Azure 门户时,创建节目的同时还会创建资产。
- 使用 .NET SDK 或 REST 时,需要创建一个资产并指定在创建节目时要使用该资产。
- 发布与节目关联的资产。
以上内容简单列举了Azure媒体服务的两种方式的步骤,下面的内容则主要介绍 流式处理终结点(Streaming Endpoint ),流式处理终结点处于媒体服务的第三部分 --- 拉流端。 如图:
流式处理终结点代表一个流服务,它可以直接将内容分发给客户端播放器应用程序。 流式处理终结点服务的出站流可以是实时流,也可以是媒体服务帐户中的视频点播资产。 媒体服务客户可以根据自身需要,选择标准流式处理终结点或者一个或多个高级流式处理终结点
标准流式处理终结点适用于最消耗流的工作负荷。 标准流式处理终结点可以动态地将内容打包成 HLS、MPEG-DASH 和平滑流式处理,并针对 Microsoft PlayReady、Apple Fairplay 和 AES128 进行动态加密,从而灵活地将内容传送到几乎所有设备。
如果有高级工作负荷或者流式处理容量要求无法适应标准流式处理终结点吞吐量目标,或者希望控制 StreamingEndpoint 服务的容量,以便处理不断增长的带宽需求,则我们建议分配缩放单元(也称为高级流单元)。
流式处理终结点生成的URL格式如下:
{流式处理终结点名称-媒体服务帐户名称}.streaming.mediaservices.chinacloudapi.cn/{定位符ID}/{文件名}.ism/Manifest[(format=mpd-time-csf)|(format=m3u8-aapl)|(format=m3u8-aapl-v3)]
- 定位符ID: 为系统自动生成的一串GUID字符串
- 文件名:为当前点播资产的文件名
- Format:为指定当前传输的协议方式,如:HLS, MPEG-DASH, Smooth Streaming
三种协议介绍
一:HLS : HTTP Live Streaming
是由苹果公司提出的基于HTT的流媒体网络传输协议, 是把整个流分成一个个小的基于HTTP的文件来下载,当媒体流正在播放时,客户端可以选择从愈多不同的备用源中以不同的速率下载同样的资源,允许流媒体适应不同的数据速率。拓扑图如下:
- 视频转码 video transcoding:是指将一个视频码流转换另一个视频码流,以适应不同的网络带宽,不同的终端处理能力和不同的客户需求。点播系统中的转码一般是离线转码,直播系统中的转码为即时转码。
- 终端适配:将特定格式的视频转换成终端适配能力较高的视频,以便在最广泛的终端上实现分发。例如,将AVI格式(对网络播放支持不友好)的视频转码成MP4(几乎所有网络播放器都支持),以便在互联网上进行分发;
- 带宽适配:将视频转码为超清、高清、标清等多路不同码率的视频,以便不同网络带宽的用户选择不同码率的视频;
- 播放友好:优化视频封装格式,以实现更好地播放效果;例如,某些MP4文件的MOOV头可能位于尾部,导致部分播放器需要下载整个MP4文件之后才能开始播放;可以通过转码将MOOV头调整到文件头部,以便播放器无需下载整个文件便可以开始播放;
- 增加水印:在视频中增加版权相关图片(例如电视台的台标),宣示视频本身的版权归属;
- 降低分发带宽:使用更先进的编码方式对视频进行编码,确保在不降低画质的前提下降低视频码率,从而达到节省带宽的目的;例如对原本使用H.264编码的视频进行H.265编码;
- 降低存储成本:对于以归档、备案为目的的视频,直接存储原始视频可能会带来较高的存储成本,此时可以将视频转为低码率进行存储,从而大幅降低视频存储成本。
二:Smooth Streaming
Microsoft 于2008年推出,以 Microsoft 为主的平台和在 Xbox 生态系统,Smooth Streaming 支持码率自适应,自适应流技术是使用标准HTTP的基于Web的媒体内容交付的一种形式。内容是以一系列MPEG-4(MP4)片段的形式传递给客户端。当客户端播放这些片段时,网络状况可能会发生变化(例如,带宽可能会减少),或者视频处理可能会受到正在运行的其他应用程序的影响。客户可以立即请求下一个片段来自以不同比特率编码的流,以适应不断变化的条件。这使客户端可以播放媒体而不会出现卡顿,缓冲或冻结的情况。因此,用户可以体验到最高质量的播放,而不会中断视频流。
三:MPEG-DASH:Moving Picture Experts Group (MPEG) - Dynamic Adaptive Streaming over HTTP (DASH)
MPEG-DASH是一种码流自适应的技术,和HLS类似,MPEG-DASH将内容分割成一系列很小的文件segment,这些segment可以通过http直接访问。每个segment包含一小段时间长度的内容。MPEG-DASH传输系统架构由HTTP服务器和DASH客户端两部分组成。HTTP服务器存储着DASH文件,主要包含两部分:媒体描述文件MPD和DASH媒体文件。DASH媒体文件主要由分段媒体文件和头信息文件两部分组成。
参考资料
Azure 媒体服务:https://docs.azure.cn/zh-cn/media-services/
HLS简介: https://www.jianshu.com/p/6de22b88dc73
Smooth Streaming Architecture:https://alexzambelli.com/blog/2009/02/10/smooth-streaming-architecture/
MPEG-DASH简介:https://blog.csdn.net/ranghanqiao5058/article/details/87932267