阿里云播放器SDK的正确打开方式 | 功能、架构与应用(一)

WhatWhyHow 2017-11-09

阿里云播放器SDK(ApsaraVideo for Player SDK)是阿里视频云端到云到端服务的重要一环,除了支持点播和直播的基础播放功能外,还深度融合视频云业务,支持视频的加密播放、安全下载、首屏秒开、低延时等业务场景,为用户提供简单、快速、安全、稳定的视频播放服务。本文将从产品特点、技术架构、点播和直播场景中播放器的应用等几个方面来介绍阿里云播放器SDK。

阿里云播放器SDK具有哪些特点?

一、 快速接入
因为面对的是不同层次的开发者,在接入成本上需要考虑的尽量全面。为此,阿里云播放器提供了详尽完备的文档和场景化的DEMO,为用户参考使用,另外,视频指导教程和针对不同问题和场景的专题介绍也能帮助用户更好、更快地接入。
二、 简单集成
Android和iOS提供统一接口和错误码,接近系统API的接口设计保证每位开发者能快速集成。
三、 分层架构 按需选配
基础功能、业务功能、UI组件等分层架构,保证最精简的包大小,根据业务需求组合选用。
四、 云和端一体化
云端加密、客户端解密,端和云的联动保证视频安全。端上采集数据、云端分析,为业务运营提供支持。
五、 安全稳定
从防盗链、URL鉴权到加密播放和安全下载,全方位保护视频安全,满足不同场景的安全需求。

下面我们来看看阿里云播放器SDK的产品架构

首先,移动端播放器的产品架构,分成基础播放器、高级播放器、业务组件这三层。在基础播放器中,播放器实现了视频流解析、音视频同步、软硬解码等基础能力,并支持url播放、播放逻辑控制、音量和亮度调节、点播/直播支持、倍数播放、首屏秒开等功能。在此之上,封装了高级播放器,这个是和业务强相关的播放器,与云服务深度融合,支持VID播放、加密播放、清晰度切换、安全下载、边播边缓存等业务相关性的功能,同时,阿里云播放器还提供一系列业务组件,包括已经推出的UI组件,和即将提供的弹幕组件、分享组件、红包组件、广告组件等。这几个模块化的划分,满足了个性化和业务化的各种场景需求。

我们再来看看web端的产品架构,也就是Flash、H5的层次结构。在最底层,其实是一个H5的原生标签,阿里云在这里封装了一个基础的H5播放器,在此之上,根据不同业务场景,做了不同播放器类型的划分。在最上面一层,提供了自适应选择播放器的功能,当用户的视频源过来的时候,可以根据终端类型、平台类型等信息自动选择最佳的播放器。

播放器所支撑的两大业务包括视频点播和视频直播,视频点播包括音视频采集、合成、上传、转码、媒资管理、分发及视频播放等一系列的功能,而视频直播是基于CDN和MTS所构建的直播平台,需要为用户提供低延时、低卡顿与视频秒开等一系列能力。这两种业务场景中,视频播放都作为最贴近观众的一环存在,提供最直观的极致体验。下面我们介绍以下这两种场景中,阿里云播放器都是如何应用的。

阿里云播放器SDK的正确打开方式 | 功能、架构与应用(一)

播放器在点播服务中的应用

视频播放器在点播服务中,经过和云端服务的高度融合,实现了以下功能:

  • 加密播放

在独播剧、教育、金融等业务场景中,保护视频内容的安全非常重要,播放器通过视频加密转码和解密播放的过程,可对视频内容本身做进一步的安全保护,有效保护视频版权。

实现原理是业务方将视频上传到阿里云的服务器上的时候,可以配置加密转码,转码出来的视频是经过加密的,想要实现播放的话,需要通过业务授权、获取加密密钥来进行数据解密。这个方案的优势是服务端采用信封加密技术,传输不是直接的明文传输,比其他方案更加安全,同时只需要一个加密开关,播放器开发者无需关心特殊逻辑,传入相关参数即可,所以易用性极强,成本极底。

  • 离线下载

离线下载是将视频资源下载到本地,在没有网络的情况下实现播放,其实这个功能很常见,阿里云播放器是在基础能力之上提供了更多属性。它可以支持安全下载,把加密的视频缓存在本地,对它进行重新加密,与APP进行绑定,即使被拷贝走了也无法播放。并且支持断点下载和并行下载,当异常中断后,再次启动可以继续上次下载,节省了C端用户的流量和时间。另外,开发者可以在控制台灵活配置是否离线下载某个视频,或者是否禁止视频离线下载,灵活控制视频资源等情况。

  • 边播边缓存

对于用户来说,非常关心的是流量成本。阿里云播放器支持边播边缓存功能,当用户一次观看后视频会缓存到本地,重复观看时,用户无需再次消耗流量。另外,用户可以灵活配置缓存和自动管理缓存目录。在短视频场景中十分常用。

  • 变速播放

阿里云播放器实现了变速的同时声调不改变,保持音视频同步。在视频点播播放过程中,可以支持0.5x-2x的变速播放的动态配置,对直播场景,也能够自动判定。可以根据用户的兴趣和喜好来控制视频播放速度,比如在教育视频中,用户可以对感兴趣的地方慢速播放,对不感兴趣的内容快速跳过。

  • UI播放器

阿里云提供了一整套UI的播放器SDK,能够满足用户快速上线,整个播放的逻辑已经固化在UI之中,比如首屏、标题、进度条、全屏、锁屏、清晰度切换、手势控制等功能,它是一个完整的播放器,用户只需要调用整个VIEW的显示,将视图贴在APP上,就可以简单、快速地实现播放功能了。

  • 国际化多语言

播放器SDK也逐步走向海外,通过配置实现多语言版本。首先,它可以根据用户系统的语言自动适配选择播放器SDK的语言,其次,它可以通过添加配置文件,无需修改SDK,就灵活切换语言版本,最后,播放器SDK也支持Android、iOS、Flash、H5等多个平台的国际化多语言的需求。

播放器在直播服务中的应用

整个视频直播是通过直播SDK将音视频推流,到大规模分布式流媒体实时转码,再到CDN内容高效分发,最终到达视频直播终端播放的流程。我们需要为用户提供的是便捷接入、高清流程、低延迟、高并发的整套服务,其中播放器需要实现首帧秒开、低延时、低卡顿、超时重连等等的功能,才能让直播服务变得完整、流畅。视频播放器在直播服务中实现了以下功能:

  • 首帧秒开

在优化之前,播放器拿到解码后的数据,是需要经过一个音视频同步等待,下载一定的数据才能看到视频的。在进行了一系列优化之后,拿到数据之后,阿里云先对第一帧进行解码出来,省去了缓冲的时间,用户可以直接看到,从而实现了秒开的效果,提升了用户体验。

  • 低延时策略

当直播中网络抖动或其他因素导致延时很大的情况下,播放器SDK也要配合进行处理。在阿里云播放器中提供了一个参数,用来控制播放端延时的大小。播放器中的下载缓存区有一定的缓存视频,我们将缓存视频的长度和用户延时的长度进行对比,当缓存视频长度超过了用户延时长度的时候,采取动态丢帧策略,找到缓存区中最后一帧,将之前的帧丢弃,从而控制了延时长度,确保了终端观看直播的效果。

除了以上技术亮点,阿里云播放器SDK基础功能也是十分完备的,包括播放控制(开始结束、恢复暂停,重播,自动播放,Seek),诊断工具(环境诊断、网络诊断、切换播放器诊断),音量/亮度调节,UI设置(封面、水印、皮肤)等,另外,也有一些个性化功能正在规划开发中,包括弹幕、截图gif、进度条打点、VR全景播放、贴片广告、投屏等等。

阿里云播放器SDK的正确打开方式 | 功能、架构与应用(一)

同时,阿里云播放器SDK也可以联动短视频SDK、上传SDK、视频点播、视频直播和OSS、CDN等产品,形成不同的产品组合。用户可以像搭积木一样,根据自己的业务场景选择不同的服务,一站式搭建自己的视频业务。

随着阿里云视频点播、直播的业务不断壮大,阿里云播放器SDK也已经为众多教育、社交、视频、游戏、新闻行业客户服务,我们希望能够提供易用、稳定、强大的视频服务,为更多极致的用户体验努力。

原文链接:https://yq.aliyun.com/articles/229957

相关推荐