网络视频直播存在已有很长一段时间,随着移动上下行带宽提升及资费的下调,视频直播被赋予了更多娱乐和社交的属性,人们享受随时随地进行直播和观看。一般来说,网络视频直播的流程可以分为如下几步:
采集 —>处理—>编码和封装—>推流到服务器—>服务器流分发—>播放器流播放。
下面我们逐步来看一下。
1.采集
采集是整个视频直播过程中的第一个环节,它从系统的采集设备中获取原始视频数据,将其输出到下一个环节。视频的采集涉及两方面数据的采集:音频采集和图像采集,它们分别对应两种完全不同的输入源和数据格式。图像采集包含摄像头采集、屏幕录制、H264RAW,音频采集包含麦克风采集、系统声音、AAC RAW。视频采集的采集源主要有:摄像头采集、屏幕录制和从视频文件推流。
2.处理
音视频完成采集之后得到原始数据,在日常使用中不同的用户会有不同的要求,比如在一些公司需要添加自己的logo,个人需要添加一些相关滤镜等,这些都在处理里完成。
3.编码和封装
(1)编码
如果把整个流媒体比喻成一个物流系统,那么编解码就是其中配货和装货的过程,这个过程非常重要,它的速度和压缩比对物流系统的意义非常大,影响物流系统的整体速度和成本。同样,对流媒体传输来说,编码也非常重要,它的编码性能、编码速度和编码压缩比会直接影响整个流媒体传输的用户体验和传输成本。
(2)封装
沿用前面的比喻,封装可以理解为采用哪种货车去运输,也就是装这些信息的容器。有了这个容器,编码器生成的多媒体内容混合就有了标准。之后你选择内容就有了“标签”,比如说没有容器,你看电影,你要手动载入音频,还只能从头开到尾,不能拖动进度条。
4.推流到服务器
推流是直播的“第一步”,如果推流时网络不稳定,后期不论如何优化,观众的体验都会很糟糕。
5.服务器流分发
流媒体服务器的作用是负责直播流的发布和转播分发功能,也就是cdn这块,服务器收集到主播视频后再通过在全国各地的节点将视频内容分发到终端。cdn是直播中最贵的,技术难度较高,一般都是采用第三方的;如果自己做的话,也需要和cdn厂商对接有经验的技术。
6.播放器流播放
主要是实现直播节目在终端上的展现。
最后关于视频存储,通常视频是放在“云”里进行存储,当然,这一步则需要服务器包含了云存储的功能和视频回放的功能。完成这一套流程或许是繁杂的,如果选择专业的视频流媒体服务厂商则会更加便捷。EasyDSS流媒体服务器就能够满足这一整套的播放和服务流程,提供一站式的转码、点播、直播、时移回放服务,极大地简化了开发和集成的工作。
其中,点播功能主要包含:上传、转码、分发。直播功能,主要包含:直播、录像,直播支持RTMP输入,RTMP/HLS/HTTP-FLV的分发输出;录像支持自定义保存时长、检索及下载。提供丰富的二次开发接口,基于JSON的封装及HTTP调用。提供播放鉴权、推流鉴权等安全保证。提供用户及相关权限管理配置。