阿里云腾讯云金山云视频直播SDK解决方案评测

2017-07-14 12:40:55 来源:未知

视频直播作为近年来最重要的传播形式,让一大批直播企业成长起来。不同于传统的视频网站,直播强调的是实时的流媒体处理能力,从前端的采集、推流上传、转码,再到最后的播放,这个过程对技术提出了很高的要求。在直播功能越来越丰富,应用场景越来越复杂之后,像音视频处理、美颜滤镜等很多功能,需要大量的研发和更成熟的解决方案才行,如果一款直播APP独自完成这些功能的研发,时间和资源投入上成本太高,也并不合算,因此,这就给云服务商创造了很多机会。

为了更好地帮助客户,围绕视频直播的推流和播放环节,云服务商推出了完整的SDK服务。作为一名视频直播APP的开发工程师,我和同行们一样,在为公司选择云服务商时,首先考虑的是实力强劲的主流云服务商——阿里云、腾讯云、金山云提供的服务。那么在直播的推流与播放端,这三家谁的技术实力最强?谁提供的服务更加丰富?谁更能满足用户需求?我将通过这篇测评文章进行分析。

首先需要说明,本次测评以各云服务商对于视频直播SDK的支持能力为核心,根据视频直播的技术特点,分为推流和播放两大板块展开。

第一部分:推流SDK功能项比较如下:

上面是用来评测推流SDK各功能项的表格,内容比较多,共有41项。阿里云、腾讯云、金山云都支持的功能项有11个。

在对iOS最低版本的支持上,阿里云要求iOS版本在8.0以上,腾讯云和金山云则支持7.0版本,这说明阿里云对用户的软硬件要求较高,支持的机型较少。

在对Android最低版本的支持上,阿里云要求Android最低版本在4.3以上,腾讯云要求4.0以上,金山云则要求软编4.0以上、硬编4.3以上,这说明金山云的SDK对Android机型的覆盖更广泛,兼容性更好。

五大模块功能项三家支持情况评测

在推流SDK这部分,我主要从音频处理、视频处理、弱网/画质优化、多样化推流模式、摄像头操作这五大模块进行评测,每个模块里面又包含很多功能项。

(1)音频处理模块包括变声、混响、双声道音频、升降调、背景音乐、音频降噪、耳返、蓝牙麦克风等。阿里云无一支持,腾讯云和金山云支持混响和背景音乐,变声、双声道音频、升降调、音频降噪、耳返、蓝牙麦克风这些功能项,只有金山云支持。可以看出,金山云在这个模块有一定的技术积累,为开发者提供的功能更为丰富。

(2)视频处理模块包括内置美颜、自定义滤镜、场景编码等三项。内置美颜三家都支持,自定义滤镜只有腾讯云和金山云支持,场景编码只有金山云支持。

(3)弱网/画质优化模块包括码率自适应、动态帧率、H.265编码、场景编码这几项。码率自适应三家都支持,动态帧率、H.265编码、场景编码只有金山云支持。在对H.265的支持上,三家里只有金山云支持H.265软件编码器,这更适合移动端直播,特别是高清画质的直播,流畅度更高,卡顿更少,也更有利于客户节省带宽成本。

(4)多样化推流模式模块包括画中画、悬浮窗、背景图片推流、多视角、画笔推流、纯音频推流、后台音频推流这些。阿里云无一支持,腾讯云和金山云支持后台音频推流,其它这些功能项,均只有金山云支持。

(5)摄像头操作模块包括切换摄像头、闪光灯操作、对焦、Zoom操作这四项。其中只有Zoom操作一项,只有腾讯云不支持,这有点遗憾,因为该功能是行业常用的配备。其它三项三家都支持。

其它功能项三家支持情况评测

推流SDK除了五大模块之外,还有一些其它功能项,包括推流地址自定义、混音、横竖屏、音频mute操作、截帧功能、镜像、水印、视频软件编码器、视频硬件编码器、游戏录屏、边推边录、短视频录制、动态横竖屏切换、连麦。

其中,三家都支持的有6项,分别是推流地址自定义,横竖屏,镜像,水印,视频硬件编码器和连麦。音频mute操作和截帧功能,只有阿里云和金山云支持。混音,视频软件编码器,游戏录屏这3项,只有腾讯云和金山云支持。只有金山云支持的功能项有边推边录,短视频录制,动态横竖屏切换。

综上所述,在推流板块的评测中,金山云在为客户提供各种细分的视频功能上,确实更加丰富,像蓝牙麦克风、画中画、纯音频推流、边推边录、短视频录制、场景编码、动态横竖屏切换、耳返、动态帧率、悬浮窗、背景图片推流、多视角、画笔推流、音频降噪这14项功能,只有金山云支持。

第二部分:播放SDK功能项比较如下:

上面是评测播放SDK各功能项的表格,其中包含的功能项共有28个。阿里云、腾讯云、金山云都支持的功能项有6个。

在对iOS最低版本的支持上,阿里云要求iOS版本在8.0以上,腾讯云和金山云则支持7.0版本,这说明阿里云对用户的软硬件要求较高。

在对Android最低版本的支持上,阿里云要求Android最低版本在4.0以上,腾讯云要求4.1以上,金山云要求2.3以上,金山云的SDK对Android机型的覆盖更广泛。

两大模块功能项三家支持情况评测

播放SDK包括播放体验优化和多种播放模式这两大模块。

(1)播放体验优化模块包括重连功能、首屏秒开、HTTP-FLV直播累积延迟消除技术、RTMP直播累积延迟消除技术、硬解加速5项。其中,首屏秒开三家都支持,阿里云不支持重连功能和硬解加速,腾讯云不支持RTMP直播累积延迟消除技术,而HTTP-FLV直播累积延迟消除技术只有金山云支持。

(2)多种播放模式模块包括画面旋转、画面填充模式、悬浮窗、纯音频播放、后台音频播放、立体声播放6项。其中,三家都支持的功能项有画面旋转,阿里云不支持画面填充模式,腾讯云不支持纯音频播放和后台音频播放,悬浮窗和双声道音频只有金山云支持。

其它功能项三家支持情况评测

其他特色功能还有拉流地址自定义、硬解支持、软解支持、截屏、音频mute操作、探测视频信息功能、获取文件缩略图、重连功能、单实例重复播放、反交错、镜像、H265解码、Seek功能(点播)、AirPlay录屏、边播边录、分段播放、视频缩放。

三家都支持的功能项有Seek功能(点播),拉流地址自定义,硬解支持,音频mute操作。阿里云不支持的有边播边录,软解支持和重连功能。其它各项均只有金山云支持。

总结

从上面的评测中,我们可以看到,在推流环节的41个功能项中,阿里云不支持的功能项有25个,腾讯云不支持的功能项有21个,金山云所有功能项均支持。在播放环节的28个功能项中,阿里云不支持的功能项有17个,腾讯云不支持的功能项有15个,金山云所有功能项均支持。很明显,阿里云和腾讯云在推流和播放这两个环节中,所提供的SDK功能项并不丰富,这与金山云形成了较大的反差。

出现这种情况的原因,我猜想,这与三家的策略和发展进程不同有关。先看阿里云,其更加注重全领域布局,视频并不是其最重要的发力领域,因此在视频云服务上起步的时间较晚。阿里云在2016年6月才推出视频云直播SDK的首个版本,很多基本功能都落后于腾讯云和金山云,所以他们在对直播SDK的支持上落后,也就不足为奇了。阿里云不光在直播上落后,在短视频的服务能力上,阿里云是通过在前段时间收购趣拍云的方式来补齐的。

再说腾讯云,腾讯云在视频云上的发力时间与金山云差不多,都是大约在2015年底开始的,刚开始时推出的是互动直播方案,2016年9月到10月,又推出了移动直播方案,但两个方案都比较封闭,SDK功能项上并未与其它厂商进行合作,又与腾讯云自己的云服务进行了绑定,业务集成度比较高,因此直播SDK开发的接口上,也就没那么多了。

最后说金山云。金山云一直专注于视频和游戏领域,金山云的视频云从2015年11月开始,起步时间与腾讯云差不多,不过与腾讯云不同,金山云视频云走的是一种差异化竞争的路线,在对直播SDK的支持上,金山云选择对外开放,与其它厂商合作,构建组件化的框架,强化在音视频方面的处理能力,因此在SDK这块,就显得更具竞争力,从评测中我们也可看到,金山云基本上覆盖了视频直播的绝大部分功能,而且还提供了不少细化功能,服务显得更加全面和完整。

从我的使用情况和从同行了解到的情况来看,金山云SDK在直播APP研发圈子里的口碑也更好,对客户的支持更为定制化,响应更快。

以上就是我的评测结果,也是基于个人观点,希望大家在选择适合自己的云服务商时,本文能够带来一点启发。