作者:鲍天舒 公司:上海驻云信息科技有限公司
云中沙箱,阿里云官方实验平台。网址:http://lab.aliyunedu.net
云中沙箱实验,教您如何部署视频直播平台!
1. “快速部署低延时直播平台之OBS”
2. “快速部署低延时直播平台之FFmpeg”
什么是视频直播?
随着网民数量指数级增长,网络带宽环境提升,中国网络视频市场规模不断扩张,直播网站如同雨后春笋般大量泉涌。
在表现形式上,视频直播包括:现场演唱会的直播、新闻发布会的直播、奥运会的直播、电视剧的直播、个人表演show,学术论坛交流会、各类技术培训等。
在播放形式上,用户只要具有一个可以上网的设备,可以是电脑、手机等,无论在何处只要网络环境允许,都可以及时地欣赏到正在直播的节目。
在技术实现上,视频直播不需要像视频点播一样进行分段、转码、发布等一系列步骤,它可以做到节目播放的实时性。
视频直播流程
视频直播流程主要分为5个阶段:采集;前处理;编码;推流;分发。
1. 采集
采集是视频直播的第一步,通过不同的设备,采集视频信息:
- iOS 端:因为软硬件种类不多,硬件适配性较好,因此,采集起来简单。
- Android 端:因为市面上硬件机型非常多,难以找到一个库适配所有硬件,因此采集起来较为困难。
- PC 端:与硬件使用的摄像头驱动有关,推荐目前市面上最好的PC端开源免费软件OBS。
2. 前处理
现在,主播行业非常火热,同时也流行着一句话:“80%的主播没有美颜根本没法看。”其实,对视频源进行处理,不仅限于美颜,还有许多其他的处理方法,例如水印,模糊特效等。针对不同的手机系统,提供不同的处理库:
- iOS 系统: 目前,比较知名的是GPUImage 这个库。它提供了丰富端预处理效果,还可以基于这个库自己写算法实现更丰富效果。
- Android 系统:使用android-gpuimage库(由GPUImage这个库移植),同时,Google官方开源了一个伟大的库,覆盖了Android上面很多多媒体和图形图像相关的处理。
3. 编码
对视频进行编码时,主要的难点有2个:处理硬件兼容性问题;在高fps、低bitrate和音质画质之间找到平衡。
- iOS 系统:硬件兼容性较好,可以直接采用硬编。
- Android 系统:硬编的支持难很多,需要支持各种硬件机型,推荐使用软编。
4. 推流和转码
传输涉及到很多端:从主播端到服务器端,从收流服务器端到边缘节点,以及从边缘节点到观众端。
为了让主播推上来的流适配各个平台端不同协议,需要在服务端做一些流处理工作,比如转码成不同格式支持不同协议,如:RTMP、HLS和FLV,一路转多路流来适配各种不同的网络状况和不同分辨率的终端设备。
5. 分发
推流端和分发端,理论上需要支持的并发用户数应该都是亿级的,不过毕竟产生内容的推流端在少数,和消费内容的播放端不是一个量级,但他们对推流稳定性和速度的要求比播放端高很多,这涉及到所有播放端能否看到直播,以及直播端质量如何。
阿里云视频直播技术
视频直播服务(LiveVideo)是基于领先的内容接入与分发网络和大规模分布式实时转码技术打造的音视频直播平台,提供便捷接入、高清流畅、低延迟、高并发的音视频直播服务。请参考下图的视频直播服务的流程:
它具有如下功能特点和优势:
- 推/拉流
推流:使用标准的RTMP协议;
拉流:支持RTMP、HTTP-FLV、HLS协议。
- 终端设备
支持Android、iOS、PC端直播流推送
- 转码
视频分辨率,可自定义,默认是标清为480p,高清为640p。
- 自适应
SDK可根据网络情况动态调整上行传输码率
- 分发
500+节点数,覆盖所有省份和主流营销商
- 安全
防盗链,通过referer跟踪来源,对来源进行识别和判断,用户可以通过配置访问的referer黑白名单来对访问者身份进行识别和过滤,从而限制CDN资源被访问的情况。
URL加密,URL鉴权功能是通过阿里云CDN加速节点与客户资源站点配合实现的一种更为安全可靠的源站资源防盗方法。
视频加密,可对码流进行加密,使用特殊的播放器播放。适合于低内容需要保密的场景。
阿里云视频直播实践
云中沙箱(http://lab.aliyunedu.net)提供一个阿里云在线自主学习的实验平台。丰富的实验场景,可以让用户可以快速学习和实践阿里云上各种产品。
云中沙箱提供两个视频直播相关的实验,大家可以通过实验的方式,快速掌握视频直播的基本使用方法:
- 快速部署低延时直播平台之OBS:通过PC端优秀的开源软OBS,将摄像头采集的视频信息推送到阿里云视频直播服务,实现在线视频直播功能。
网址:https://edu.cloudcare.cn/courses/cd3fa99dc3784a64805b4584b8aa4cdf/detail
- 快速部署低延时直播平台之FFmpeg:通过PC端的FFmpeg软件,将本地存储的视频源推送到阿里云视频直播服务,实现在线视频直播。
网址:https://edu.cloudcare.cn/courses/86202d2132c841369a4ec1b258683851/detail