视频服务是互联网上需求巨大的服务,各种视频类网站,例如优酷土豆,搜狐电视,PPTV,电视台,广告公司,培训教育类网站等都需要使用视频服务来实现视频上传,编码,解码,二次编辑,分发等功能。据统计,视频服务占到了所有互联网流量的57%。随着智能手机,可穿戴式设备,虚拟现实等技术的迅猛发展,视频服务的需求越来越大。因此,所有的公有云厂商都不约而同地提供了各种视频服务,以帮助用户快速开发,并实现大规模的自动部署和内容分发。
在部署和使用视频服务的过程中,主要有一些挑战,包括基础设施,系统管理,内容管理,数字权限管理,安全性,二次编辑,编码解码,分发和传输等等。公有云厂商一般都解决了基础设施,系统等功能,而在具体的功能上有一些区别。
我们将会选择亚马逊AWS, 阿里云,微软Azure和七牛云作为我们分析的对象,比较他们在视频服务上提供的一些功能。不过本文不涉及存储的性能,视频处理的效率,CDN, 使用的价格,代码API SDK的接口比较等,如果希望了解视频处理的进一步情况,可以通过 [email protected] 联系我们。
文中内容基本参考各公有云的官方网站,如有遗漏,也欢迎和我们联系。
Amazon Web Service简称AWS,是全球最大的公有云平台。它于2006年推出,以Web服务的形式向企业提供IT基础设施服务,现在通常称为云计算。其主要优势之一是能够以根据业务发展来扩展的较低可变成本来替代前期资本基础设施费用。亚马逊网络服务所提供服务包括:亚马逊弹性计算网云(Amazon EC2),亚马逊简单储存服务(Amazon S3),亚马逊简单数据库(Amazon SimpleDB),亚马逊简单队列服务(Amazon Simple Queue Service)以及Amazon CloudFront等。AWS已经为全球190个国家/地区内成百上千家企业提供支持。数据中心位于美国,欧洲,巴西,新加坡和日本。作为云计算领域真正的大佬,一旦亚马逊携AWS正式进入中国,那么对国内相关的云计算企业可能会带来深刻影响,目前国内像阿里巴巴,盛大以及华为都在提供类似云计算服务。
AWS上的视频服务被称为Elastic Transcoder,即弹性编码服务。它是在AWS中进行媒体转码的工具,是一种经济实惠且具有高可扩展性和易用性的视频转换方法,开发人员和企业可以用它来将媒体文件从源格式转换(或称为“转码”)到其他版本,以便在智能电话,平板电脑和 PC 等设备上播放。
图 1 Amazon Elastic Transcoder的图标
• 易于使用
Amazon Elastic Transcoder 的设计目标是易于使用。您可以通过 AWS 管理控制台,服务 API 或软件开发工具包开始使用。系统转码预置模版使客户在首次使用时能轻松获得正确的转码设置。我们提供了预定义预置模版,以创建可在大部分设备(如智能电话或平板电脑)上播放的媒体文件,还提供了预置模版,以创建专为在特定设备(如 Amazon Kindle Fire HD 或 Apple iPod touch)上播放而优化的媒体文件。您还可以创建分段文件和播放列表,以使用 HLS 协议交付到兼容的设备中。开发人员可使用适用于 Java,.NET,Node.js,PHP,Python 和 Ruby 的 AWS 软件开发工具包和新的 AWS 命令行界面来构建需要转码的应用程序。
• 弹性伸缩
Amazon Elastic Transcoder 为实现根据视频转码工作负载无缝扩展而设计。Amazon Elastic Transcoder 的架构目标就是处理大量媒体文件和大型文件。转码管道使您能够并行执行多个转码任务。Amazon Elastic Transcoder 利用其他 Amazon Web Services,如 Amazon S3, Amazon EC2,Amazon DynamoDB,Amazon Simple Workflow (SWF) 和 Amazon Simple Notification Service (SNS),来提供可扩展性和可靠性。
• 经济高效
Amazon Elastic Transcoder 采用根据内容时长定价的模式,即:按被转码的媒体输出时长付费(按分钟计)。例如,如果您的转码输出视频的时长是 30 分钟,您将支付 30 分钟的视频转码费用。同样,如果您从一个时长 30 分钟的输入文件创建了一个时长 20 分钟的视频剪辑,您将支付 20 分钟的转码费用。使用 Amazon Elastic Transcoder,没有最低转码量限制,无需月度承诺或签署长期合同。
• 托管
Amazon Elastic Transcoder 使您能够集中精力处理内容,而无需在分布式云环境中管理转码软件。该服务会处理扩展和系统操作,并管理保持编解码器处于最新状态的进程。还可与我们的服务 API 和软件开发工具包结合使用,使您能够轻松构建可使用 Amazon Elastic Transcoder 的媒体解决方案。
• 安全
您的内容完全在您的掌控之下:您的资产存储在您自己的 Amazon S3 存储段中,您通过 IAM 角色授予我们对内容的访问权限。这样,您无需放弃控制权,就能简单且无缝地调整您的当前安全与身份认证框架。在构建 Amazon Elastic Transcoder 的过程中,我们利用了构建其他 Amazon Web Services 时获得的最佳安全实践。要了解有关 AWS 安全性的更多信息,请参考我们的 AWS 安全中心。有关合规性的更多信息(包括 MPAA 最佳实践),请参考 AWS 合规性。
• 无缝传输
使用 Amazon Elastic Transcoder,Amazon S3 和 Amazon CloudFront,您可以存储,转码和传输您的内容。通过在 Amazon Elastic Transcoder 中设置 CloudFront 分配的 S3 权限,现在只需要一步就可以用 Amazon Elastic Transcoder 转码内容并通过连续下载或带 CloudFront 的 HLS 流媒体传输多个输出视频。
• AWS 集成
Amazon Elastic Transcoder 提供了一个重要的媒体构建块,用于在 AWS 上创建端对端媒体解决方案。例如,您可以使用 Amazon Glacier 存储主要内容,使用 Amazon Elastic Transcoder 将主要内容转码成存储在 Amazon S3 中用户分配的呈现,并使用 Amazon CloudFront 通过 Internet 大规模流化这些呈现。
以下内容来源于AWS官方网站介绍: https://aws.amazon.com/cn/elastictranscoder/details/
Amazon Elastic Transcoder 提供了以下功能,使视频转换变得简单轻松,价格便宜且具有可扩展性。
• 转码管道:您可以通过转码管道设置和并行运行转码工作流。您可以将转码管道用作创建灵活的工作流的一种方式。例如,您可以设置一个管道来对时间短的内容进行转码,再设置另一个管道来对时间长的内容进行转码,或者也可以针对不同的分辨率或存储位置分配不同的管道。
• 转码作业:转码作业是将媒体文件从一种格式转码成另一种格式的工作。您可以通过一种作业从一个输出文件中创建比特率和格式不同的多个输出文件。例如,一个作业可以创建由一个同一个输入文件的不同分辨率和比特率组成的呈现。您还可以创建仅限音频的交换流,创建 HLS 文件集时通常使用此流媒体。在创建作业时,您需要指定 Amazon Elastic Transcoder 执行转码作业时所需的信息,包括:要转码的文件,转码后输出文件的名称以及要使用的预置模版。转码作业在转码管道内运行,转码管道可同时运行多个作业,因此您可以在您的 AWS 账户中同时运行许多作业。
• 系统转码预置模版:Amazon Elastic Transcoder 提供了一组转码预置模版,使您不必为弄清各个设备适合的转码设置而进行大量猜测。您可以从那些可创建能在任何设备上播放的输出的预置模版中进行选择,或选择针对特定设备的预置模版。要获得尽可能广泛的兼容性,请选择“广度预置”模版,以创建可在大部分设备上播放的输出文件。要获得最佳质量和文件大小,请选择“优化预置”模版,以创建适合特定设备或设备类别的输出文件。
• 自定义转码预置模版:我们提供的转码预置模版适用于大部分设备和平台,但是有些客户可能需要创建特定的预置模版,以达到特殊的输出目标。使用自定义预置模版,您可以自定义现有转码预置模版并在一个地区的 AWS 账户中的所有管道中使用。
• 自动视频比特率优化:借助这个自动视频比特率设置,Amazon Elastic Transcoder 将自动调整比特率,从而优化您的转码输出的视觉质量。使用最大比特率参数可以限制输出视频的瞬时比特率。这样做可以生成限制最大比特率的输出文件,符合某些设备对回放规格的要求。结果就是,您获得的视频文件看上去很棒,但其压缩性比您为整个文件选择一种比特率时要好。
• 监控和管理:您可以通过 AWS 管理控制台或 Amazon Elastic Transcoder API 或软件开发工具包查看转码管道和作业的状态。您还可以通过停止,启动或取消操作来控制管道和作业。
• 通知功能:Amazon Elastic Transcoder 使用 Amazon Simple Notification Service (SNS) 来通知您有关转码事件的信息。您的转码作业开始,完成时,或存在警告和错误条件时,您将收到通知。使用通知功能是监控和管理您的转码工作负载的有效方式。您可以依靠 Amazon Elastic Transcoder 为您通知改变,这样您就不需要轮询状态服务。
• 缩略图:Amazon Elastic Transcoder 可为您创建输出视频的缩略图。您可以设定缩略图的大小,屏幕的高宽比以及其他参数,包括您希望生成的缩略图的个数。如果您希望添加章节标记,提供视觉扫描功能或纯粹想为内容提供最具代表性的缩略图,则生成多个缩略图会非常有用。
• 视觉水印:Amazon Elastic Transcoder 可以在输出的视频上覆盖最多四个静态图像。要为输出视频打水印,只需提供包含 PNG 或 JPG 图像的文件,并使用转码预设以指定水印的位置,比例,尺寸和不透明度等信息。可以使用此功能在输出中添加节目标志或其他标识。
• 字幕:Amazon Elastic Transcoder 支持字幕。添加字幕就是将配合视频的文字显示在视频中的过程,字幕可以显示节目中的声音片段,也可以将声音翻译成其他的语言。在将视频在两种格式之间进行转码时,使用 Elastic Transcoder 可以添加,删除或保留字幕。
• 格式:Amazon Elastic Transcoder 支持转码到以下输出格式:
HLS 使用 MPEG-2 TS 容器容纳 H.264 编码的视频和 AAC 或 MP3 编码的音频
Smooth Streaming 使用 fmp4 容器容纳 H.264 编码的视频和 AAC 编码的音频
XDCAM 使用 MXF 容器,视频以 MPEG-2 编码,音频以 PCM 编码
MP4 容器,视频以 H.264 编码,音频以 AAC 或 MP3 编码
WebM 容器,视频以 VP8 编码,音频以 Vorbis 编码
FLV 容器,视频以 H.264 编码,音频以 AAC 或 MP3 编码
MPG 容器,视频以 MPEG-2 编码,音频以 MP2 编码
MP3 容器,音频以 MP3 编码
MP4 容器,音频以 AAC 编码
OGG 容器,音频以 Vorbis 或 FLAC 编码
OGA 容器,音频以 FLAC 编码
FLAC 容器,音频以 FLAC 编码
GIF 动画
• HLS 使用 AES-128 加密:您可以生成受 AES-128 加密保护的 HLS 流。使用此选项创建的工作将对媒体文件进行加密并在播放列表中引用加密密钥。除工作对象外,您还可以选择使用 SSE-S3 让 Elastic Transcoder 将加密数据键直接写入 S3,在 S3 中数据键将受到 AWS-KMS 主密钥的保护。
• DRM 打包:我们支持对 Microsoft PlayReady DRM 进行打包。您可以使用 Microsoft PlayReady PIFF 1.1 保护 Smooth Streaming 文件,还可以使用 Discretix 3.0.1 for Microsoft PlayReady 保护 HLS 输出。当您创建转码作业的时候,请务必将加密密钥和 PlayReady 许可证提供方提供的许可证服务器 URL 包含在其中。
• 加密媒体文件:您可以使用加密的夹层文件作为 Amazon Elastic Transcoder 的输入内容,或让服务来对输出内容进行加密以保护您转码后的文件。支持的选项包括使用 Amazon S3 服务器端加密的完全托管集成,以及您自己管理并使用 AWS Key Management Service (KMS) 进行保护的密钥。而且加密支持不只限于视频文件。我们可以保护缩略图,字幕,甚至是水印。
• 渐进式下载所需媒体:您可以将媒体内容的原始版本存储在 Amazon S3 中,并对 Amazon CloudFront 下载分配进行配置,实现您的视频和音频文件渐进式下载。常用的媒体文件被缓存到节点上,以便于您进行扩展并为浏览者提供最佳性能。
• 剪辑生成:您可以从源媒体创建剪辑,方法是指定剪辑的开始时间以及(可选)所需的持续时间。在转码作业中,您可以为每个输出生成不同长度的剪辑(或将整个文件转码)。您只需按转码的输出时长付费,如果您有一个时长为五分钟的输入文件,并从该文件创建了一个时长为一分钟的输出,则只需支付一分钟的转码费用。
• 高级设置:您可以使用高级设置来覆盖默认设置或自动化作业和预置参数。例如,您可能希望强制使用或限制特定的输出帧速率,最大比特率以及循环方式或设置特定的 H.264 或 VP8 配置文件等级。
• 多地区:Amazon Elastic Transcoder 可在以下六个 AWS 地区使用:美国东部(弗吉尼亚北部),美国西部(俄勒冈),美国西部(加利福利亚北部),欧洲(爱尔兰),亚太地区(新加坡)和亚太地区(东京)。
自适应比特率流媒体
自适应流媒体提供更优秀的用户体验,可针对网络状况和 CPU 利用率进行调节,自动切换到更高或更低质量的数据流。Amazon Elastic Transcoder 可以创建一组采用不同分辨率和比特率的分段式输出呈现,以及相应的播放列表或清单文件,全部储存在 Amazon S3 中。Amazon Elastic Transcoder 支持以下做法:
• HTTP Live Streaming (HLS):您可以使用 Amazon Elastic Transcoder 创建与第 3 版或第 4 版 HLS 协议兼容的完整输出内容集合。HLS 普遍用于触及 iOS 设备,Android 设备,机顶盒和基于浏览器的播放器。然后您可以单独使用 Amazon S3 或搭配使用 Amazon CloudFront 来交付您的媒体内容。
• Smooth Streaming:您可以使用 Amazon Elastic Transcoder 创建一组分辨率和比特率各不相同的 MP4 输出片段,和相应的 ISM 和 ISMC 清单文件。然后使用 Amazon CloudFront 或 IIS 服务器将媒体文件交付到使用 Smooth Streaming 功能的玩家,例如 Xbox,Windows Phone 以及利用 Microsoft Silverlight 的客户端玩家。
阿里云是阿里巴巴集团旗下云计算品牌,全球领先的云计算技术和服务提供商。创立于2009年,在杭州,北京,硅谷等地设有研发中心和运营机构。2010年,阿里云对外开放其在云计算领域的技术服务能力。用户通过阿里云,用互联网的方式即可远程获取海量计算,存储资源和大数据处理能力。截至2014年6月,阿里云服务的客户数超过140万,遍布互联网,移动APP,音视频,游戏,电商等各个领域。根据IDC调研报告,阿里云是国内最大的公共云计算服务提供商。
阿里云上的视频服务被称为媒体转码(Media Transcoding),是为多媒体数据提供的转码计算服务。它以经济,弹性和高可扩展的音视频转换方法,将多媒体数据转码成适合在PC,TV以及移动终端上播放的格式。媒体转码服务基于阿里云云计算服务构建,它改变了以往进行转码时需要购买,搭建,管理转码软硬件的高昂投入以及配置优化,转码参数适配等复杂性问题;同时,借助云计算服务的弹性伸缩特性,可以按需提供转码能力,从而最大限度的满足业务转码需求,避免资源浪费。媒体转码服务功能包括Web管理控制台,服务API和软件开发工具包。您可以通过它们使用,管理转码服务,也可以将转码功能集成到您自己的应用和服务中。
图 2 阿里云媒体转码的图标
• 经济
无需前期投资,只按实际用量付费
同等质量视频,文件更小,更省流量
• 专业
成熟编码算法,更高视频质量
智能分析视频内容,预置智能模板
• 弹性
高速稳定的并行转码系统
转码任务规模无缝扩展
• 高扩展
提供丰富的媒体处理工具
自定义转码模板,按需设定
以下内容来源于阿里云官方网站介绍:
https://help.aliyun.com/document_detail/mts/product-manual/operation.html?spm=5176.docmts/introduction/product_advantages.6.82.C5u9UK
• 转码支持对存储于OSS中的音,视频文件按需转码。
• 管道可以通过管道来区分不同的转码业务,同一个管道内的作业支持优先级设置。同时,通过为管道分配转码资源,可以控制管道同时处理转码作业的能力。
• 截图支持对存储于OSS上的视频文件截取指定时间的JPG格式图像。
• 媒体信息支持获取存储于OSS上的音,视频文件的编码和内容信息。
• 水印支持在输出的视频上覆盖最多四个静态图像。水印图片支持PNG格式。
• 预置模版媒体转码服务为适配一定网络带宽范围的输出视频预设了一系列转码模版:
预置智能模版会根据输入视频的具体情况而自动调整转码参数以满足输出视频要求。由于输入视频本身有差异(分辨率,码率等),不一定所有的预置智能模板都适合。因此需要通过模版分析作业来获取指定输入文件的可用预置模版。多媒体文件的转码,实际是在尽可能压缩文件大小(即降低码率)与尽可能减少文件质量损失之间的平衡,预置智能模版是质量优先的。
预置静态模版可以直接调用的预置模版,无需进行模版分析。它分为三类:视频转码模版,音频MP3转码模版及M3U8切片模版,涵盖常见的播放设备及带宽条件,以码率控制优先。
• 自定义模版由用户自行定义转码参数的转码模版,它是转码参数(音频,视频,容器等)的集合,可以满足用户个性化的转码需求。
• 剪辑输出支持指定时间点开始,截取指定时长的媒体剪辑。
• 分辨率按比例缩放转码输出参数中仅指定宽或者高,另一个参数留空,则媒体转码服务会按照原视频的宽高比自动设定另一个参数。
• M3U8输出自定义切片时长支持自定义设置M3U8切片时长,范围从1秒至60秒;有助于用户根据播放端带宽条件来设定切片时长,降低用户首屏加载时间。
• 音视频抽取从视频文件中单独分离出音频或视频。
• 视频画面旋转支持输出视频旋转视频画面一定角度。
• 视频转GIF支持视频转码为GIF输出。
• 消息通知集成(公测)集成MNS服务。为管道设定消息通知属性,管道内转码作业异步接口的返回消息可通过消息通知服务主动推送到用户的消息接收服务。
微软Azure是微软提供的云计算平台,主要目标是为开发者提供一个平台,帮助开发可运行在云服务器,数据中心,Web和PC上的应用程序。云计算的开发者能使用微软全球数据中心的储存,计算能力和网络基础服务。Azure服务平台包括虚拟机,云服务,移动服务等等。
Azure上的媒体服务被称为Media Service,Azure 媒体服务为世界各地的消费者和企业流式处理解决方案提供支持。媒体服务与功能强大且高度可缩放的基于云的编码,加密和流式处理组件合并,可帮助拥有宝贵的高级视频内容的客户在当今最受欢迎的数字设备(例如平板电脑和手机)上轻松地与更广大的观众群体取得联系。此外,借助可增强可发现性的 Azure Media Indexer,可简化分发的跨平台播放器以及可从实时内容轻松转移到按需播放内容的云 DVR 功能等令人兴奋的新功能,以及大型增值第三方合作伙伴生态系统,媒体服务真正做到为客户提供同类最佳的视频内容解决方案。亲自来查看并了解媒体服务如何为端到端媒体工作流提供支持。
图 3 Azure Media Service的图标
音频与视频的大规模编码,存储和流式传输
通过Azure 媒体服务,可构建综合性端到端媒体工作流,降低与集成多项产品和提供程序关联的成本。您可从微软及其合作伙伴中选择已集成且立即可供使用的服务。
实时流式传输和视频点播
该服务具备经营您自己的云端视频平台(提供实时节目和视频点播 (VOD))所需的一切。Azure 媒体服务包括应对媒体处理,传送和消费所需的全部工具和服务。
快速摄取选项和动态打包
通过支持UDP 或邮寄硬盘等方式快速上载资产。内容可编码为多码率 MP4 文件,并可随时提供所有格式,内容仅存储一个副本,借此可优化存储利用率。
云规模工作室级别编码
利用我们的“基本”,“标准”和“高级”版编码保留单元,专门针对你的工作流的要求对编码速度进行定制。利用我们的 Azure 媒体编码器,该编码器支持各种 Studio 级输入和输出文件格式,并基于输出 GB 数计费。
具有集成内容交付网络功能
从各种来源拉取内容,可提供基于令牌的身份验证和地域阻止功能。有了Azure CDN,您可以通过全球数据中心的稳定网络,向世界各地的最终用户提供高带宽,低延迟,高可用的内容。
使用 AES 或 PlayReady 提供内容保护和加密
您的资产在上载期间可通过加密得到妥善保护,随后会用安全的方式存放在存储系统中,在播放期间则通过 Microsoft PlayReady 数字版权管理 (DRM) 或 AES 加密方式进行保护。
针对所有播放需求的一个播放器
借助微软播放器框架,播放器和 SDK,您可以为最流行平台和设备上最多数量的客户提供服务。
广泛的增值合作伙伴生态系统
我们拥有一个融入知名第三方媒体技术的可扩展平台,这些技术已针对云进行了优化和集成,具有可伸缩性,实行统一计费。
Azure Media Service主要包含5部分功能: 编码,Azure 媒体播放器,媒体索引器,内容保护,实时和按需流式处理。
编码
Azure的编码被称为是云规模的工作室级编码,支持多种格式的编码,可缩放的批处理,缩略图,叠加,拼接和剪辑生成,高性能编码,Web,专业和广播工作流支持,ISO 和 CDSA 认证的安全编码平台。
媒体播放器
Azure Media Player 可以将内容通过一个独立的播放器在多个设备上播放,支持最流行的屏幕和设备,自动选择最佳播放格式,方便地集成到 Web 和应用解决方案中,可让你使用熟悉的 JavaScript API 开发,包括 Flash 和 Silverlight 的自动回退,提供集成内容保护。
媒体索引器
媒体索引器可以支持自动生成标准字幕文件,使用基于深度神经网络的点阵索引搜索你的库,从一组快速增长的语言中进行选择,使用自定义词汇适应功能来识别特定于域的语音内容,并行处理作业并轻松将它们集成到现有工作流中,提取话语中的关键字以帮助进行标记和建议。
内容保护
Azure的内容保护通过使用 AES 加密或多 DRM Common Encryption(例如 PlayReady 和 Widevine)安全交付内容。支持保护内容(从云上载到播放),支持 AES 以及 Common Encryption 的多 DRM(PlayReady 和 Widevine),使用动态加密简化密钥管理并帮助内容更新,与 Active Directory 或你自己的数据库集成,可以使用简单的 API 或 Web 门户配置保护规则,对所有设备使用客户端 SDK 保护播放。
实时和按需流式处理
支持向几乎任何设备大规模交付内容,包括实时打包为 HLS,MPEG-DASH 和平滑流式处理,实时 AES 加密和 PlayReady DRM 技术,与内容交付网络直接集成以进行自动预配,可应对所有受众规模伸缩,用于剪裁和呈现形式筛选的动态清单操作,完整的云 DVR 工作流功能。
七牛,是一家云存储初创企业,主要业务是存储和CDN, 主要做静态文件,包括富媒体一体化解决方案,解决富媒体存储,上传下载加速,数据处理,包括图片处理,音视频处理,比如说做缩略图,打水印。此外,七牛还提供了镜像存储,客户端直传以及断点续上传等功能,方便开发者的使用。
七牛的数据处理产品中包括了音视频/流媒体在线处理,主要功能如下:
支持常见ffmpeg音视频格式互转,如mp3,aac,m4a,mp4,avi,flv。
支持视频帧提取,可以取视频任意时间点的截图。
支持流媒体传输协议(HLS)。
七牛的音视频处理主要包括编解码,切片,凭借,获取元信息,缩略图,水印,采样缩略图,私有m3u8支持等等。此外还提供颇有中国特色的短视频鉴黄服务,这个服务是由广州图普网络科技有限公司提供的。
七牛的音视频编解码支持的标准和开源的FFMPEG完全一致。 FFMPEG是一套可以用来记录,转换数字音频,视频,并能将其转化为流的开源计算机程序。它包括了领先的音/视频编码库libavcodec等。
图 4 FFmpeg的图标
根据上面的分析,我们可以基本上得出下面一个粗略的功能比较。所有的视频处理平台包括了上传,存储,转码,智能处理,内容保护,CDN和客户端等等功能。
我们接下来看在下面四个最重要功能上,各大主流云平台的差别。
这是所有平台都共同支持的主要功能,在各平台上支持的格式大同小异。从编码的格式支持范围而言,Azure上的高级编码器在视频支持AVC, Avid DNxHD, DVCPro/DVCProHD,音频上还支持AES,Dolby® Digital Plus (E-AC3) 最高可达7.1声道,不愧为号称工作室级别的编码。七牛使用的ffmpeg是开源软件中支持格式最多的视频编解码工具,一些比较冷门的编码器,比如AYUV,YAMAHA SMAF应该都可以支持。阿里云支持的格式也相对广泛,常见主流的编码器都可以。AWS由于产品推出得比较早,很多新的格式都不太支持。
视频智能处理也是视频服务中非常重要的功能,这里我们把功能分成了两部分,一部分叫基本功能,比如视频剪辑,裁切,水印,字幕,缩略图等等。还有一部分叫做高级功能,包括视频索引,延时摄影,人脸识别等功能。
|
||||
|
|
|||
|
基本功能 |
|||
水印 |
支持 |
支持 |
支持 |
支持 |
缩略图 |
支持 |
支持 |
支持 |
支持 |
字幕 |
支持 |
支持 |
支持 |
支持 |
剪辑(Clip) |
支持 |
支持 |
支持 |
支持 |
拼接 |
|
|
支持 |
支持 |
旋转 |
|
支持 |
|
90度旋转 |
直播 |
支持 |
支持 |
支持 |
支持 |
|
高级功能 |
|||
视频索引 |
|
|
支持 |
|
实时编码 |
|
|
支持 |
|
延时摄影 |
|
|
支持 |
|
人脸检测 |
|
|
支持* |
支持* |
语音视频背景去噪 |
|
|
支持 |
|
鉴黄服务 |
|
|
|
支持* |
视频平滑和稳定化 |
|
|
支持* |
|
运动检测 |
|
|
支持* |
|
通过上表可以看出,视频的智能处理将会成为公有云视频服务的一个重点。所有的厂商都支持水印,缩略图,字幕,剪辑,直播等等功能,不过拼接和旋转在基本功能中也不是都支持。
对于高级功能而言,Azure的Media Service做到了绝对优势,包括视频索引,即通过语音识别生成全视频的字幕并支持检索,直播可以实现实时编码,还有微软研究院的一些智能项目,例如延时摄影(Hyperlapse), Project Oxford中支持的人脸检测,视频平滑和稳定化,运动检测等等,在Azure的Media Service中都可以使用。七牛利用了第三方的服务,也提供了一定的高级功能,例如通过Face++提供的人脸识别和广州图普提供的鉴黄服务,也为用户的视频处理和分析提供了方便。
对于内容保护,国内的厂商远远地落在了海外厂商的后面,AWS和Azure都提供了DRM的技术,例如PlayReady,保证了视频的安全性和版权。阿里云在存储上提供了AES加密,对于DRM则没有原生提供。
对于直播,所有的公有云厂商都支持直播的功能,所不同的是实现方法。AWS,阿里云的直播是通过IaaS方式,构建相应的直播转码服务器,再加上其相关的CDN产品而实现的。比如AWS为了实现直播,可以使用Wowza Streaming Engine, Adobe Media Server或者IIS Live Smooth Streaming来构建一套完整的直播平台。
图 5 AWS的直播架构图
而阿里云也是通过类似的技术来实现。
图 6 阿里云的在线直播架构
七牛也是类似。
Azure将直播架构做成了PaaS平台,用户不需要配置IaaS服务器,就可以通过在线的接口实现视频的实时传输,编码并通过CDN进行分发,架构图如下:
图 7 Azure直播架构图
这样简化了用户运维和部署IaaS服务器的复杂度。
本文分析了AWS,阿里云,Azure和七牛在视频服务上的一些功能。由于视频服务是互联网上最重要的服务之一,其中涉及到的内容也非常复杂,希望本文能够给需要在公有云上使用视频服务的用户起到一些抛砖引玉的作用,对选择合适的云有所帮助。如果您需要了解更多关于公有云的知识,请联系我们:[email protected]
文中资料参考来源包括:
亚马逊AWS:
https://aws.amazon.com/cn/elastictranscoder/?nc2=h_l3_as
微软Azure:
https://azure.microsoft.com/en-us/documentation/articles/media-services-overview/
阿里云:
https://help.aliyun.com/document_detail/mts/introduction/concepts.html?spm=5176.7616369.9.2.pcGBQX
七牛:
http://developer.qiniu.com/docs/v6/api/reference/fop/av/