视频网站如何对接云视频点播服务

 

我们之前讲解过视频网站在线视频课程类网站的构建,但是一般来讲视频的播放要自建成本相当高,1. CDN分发; 2. 视频处理(如自动转码、自动水印); 3. 视频播放(比如加密、字幕等);4. 视频存储;5 技术支持(比如视频卡顿、CDN网络等各个环节的问题),因此,整体来讲自建的成本都很高,所以,一般都是直接使用外部的视频播放服务。

可以参考下图,一般业务层是应用层,比如课程视频、培训视频、课程管理、章节管理等等,都是应用层要处理的。
再下一层就是PaaS层,处理视频的播放整体方案,就是我们所说的云播放服务,PaaS层一般都是构建在LaaS层也就是云硬件之上的,比如OSS、CDN等。

国内四大厂,菊花、企鹅、百度、阿里都提供了视频点播服务,还有一些中小公司比如保利威视频服务、又拍云视频服务,国外的Vimeo等,本文就阿里云的视频点播服务做为基础IT支持,看看如何对接阿里云的视频点播服务。

 

 

 

 

选择视频点播服务的优点

 

为什么选择云平台的视频点播服务呢?我们看一下阿里云视频点播的官网介绍,(其他云服务也是一样的优点)阿里云有一下特点:

全球极速分发网络
以全球2800+个CDN节点、150T带宽储备,覆盖70多个国家和地区、支持数十家运营商。依托阿里云强大的全球音视频通信网(GRTN),为企业提供更具性价比的极速网络。

全方位加密保障
访问限制、播放鉴权、视频加密(阿里云加密、HLS加密、DRM加密)、安全下载等多重安全保障,防止盗链、非法下载等造成的损失,保障视频内容安全。

全流程媒体服务
从视频生产上传、媒资管理、媒体处理、智能生产到分发播放一站式媒体服务,提供高扩展性的平台架构。

接入灵活成本低
控制台简单易用,丰富的SDK及开放API,支持弹性开发。计费价格和方式,灵活价优,大大降低运营成本。

自创的窄带高清
自研S265编码和窄带高清2.0技术,真正实现高画质低码率,边缘动态自适应码流,降本提效,打造丰富的视听体验。

精细的数据分析
视频生产到播放的全流程数据分析,多样的资源用量统计和贴近场景的播放运营分析,开发和运营决策数据化。

智能化视频审核
阿里卓越视频AI技术实现智能审核,准确识别色情、暴恐、涉政等敏感信息,人工审核二次验证,兼顾安全与效率

 

 

 

 

视频点播的流程

 

网站的视频点播流程分为6个阶段,包括视频制作、视频上传、视频处理、存储管理、分发播放,分析数据等,可以参考下图

 

其中第一个视频的制作是有生成者处理,其他的都是跟技术相关,比如上传中的断点续传,视频处理中的转码等,这些都是要视频服务器来承担,并且非常消耗资源,一般的WEB服务器,最好不要做视频用途,即使我们通过FFmpeg等开源解决方案把技术问题解决了,但是带宽、服务器CPU、容错机制(比如解码不成功有没有报错处理)等,导致整个方案的无法落地。

那么云点播可以帮我们解决什么问题?

从上图可以看到,云平台主要帮我们解决视频处理、存储管理这两个。

关于上传,我们可以直接传到视频云服务,但是一般很少这么做,一个原因是不可能给操作人员阿里云账号去上传视频,这是权限管理的问题,另一个是我们一般会有一个网站或者平台管理视频,跟业务逻辑相关,不会直接去管理视频素材。

关于播放,每一个云平台几乎都提供了播放器,不过多有一定问题,不一定能达到自己想要的目标,目前笔者体会,腾讯做得比较好一些,但是是否腾讯跟自己的云平台绑定,能否用到阿里云,又是一个问题。

腾讯的播放器 https://tcplayer.vcube.tencent.com/

 

 

综上,播放器的选择方面,我推荐用开源的解决方案,

比如国内的 CKPlayer,https://www.ckplayer.com/

国外Video.js,https://videojs.com/

使用开源的方案有好处就是不被平台绑定,这样可以迁移到任何云平台,并且可以定制功能,比如视频互动,类似于点赞、弹幕、视频测试、视频答题等功能,开源的播放器定制也比较简单,并且没有版权和其他定制问题,因此推荐使用开源的解决方案。

 

 

解决方案

 

因此,我们最终采用云平台的架构就是通过SDK上传内容到云平台,然后使其自动处理我们的视频,包括智能审核、视频转码、封面提取、加水印等操作之后,通过SDK获取到云播放地址,云播放地址(直接获取CDN地址),然后在客户端播放,并且通过Video JS的自定义代码控制字幕、增加互动(视频答题)、适配带宽等。

整体的架构如下图所示

 

另外,关于字幕,我们其实不需要云服务的支撑,因为字幕通过播放器一般都可以外挂,字幕用SRT格式就可以,我们自建CMS字段存放即可,给播放器一个字幕的地址就可以自动加载字幕。

 

阿里云的对接方案

 

具体到阿里云,阿里云提供了云播放服务,涵盖了我们所需的所有需求,阿里云的存储可以直接用视频存储,也可以选择OSS存储,OSS存储通过OSS上传视频,但是如果要调用转码等其他服务,需要触发SDK事件。

我们最终采用,云播放 + OSS + CDN,

  1. SDK上传(OSS或者云播放)
  2. 上传之后调用自建的的视频处理模板,进行处理,比如转码、水印等(需要新建一个模板)
  3. 前端播放器采用开源CKPlayer,调用SDK获取播放地址
  4. 前端调用CMS的字幕地址加载字幕

更详细的,也可以参考下图:

 

 

欢迎转载,原创不易,请注明出处!

 

关于CMS的架构和在线视频网站的搭建,也可以参考我们之前相关的文章介绍,

1. 视频网站的弹幕原理和开源代码分享

2. 如何通过开源方案自建视频课程平台

3. 在线视频教育学习平台介绍

4. 基如何对音视频内容进行审核例

5. 基于Drupal的在线教育网站案例

6. CMS如何存储和管理大量图片/海量图片?