如今,随着与各行各业的不断融合,直播行业迎来的空前的繁荣发展。得益于市场经济的作用,直播技术也不断的更新迭代、趋于成熟。那么,视频直播技术都有哪些原理呢?
一般来说,我们常把视频直播的流程可以分为如下几步:
采集 —>处理—>编码和封装—>传输(推流到服务器、服务器流分发)—>播放器流播放
简单描述起来就是:主播端把音视频数据采集编码后通过CDN网络传送到观众端,观众进行观看。之前我常拿网络购物举例子,视频直播就相当于是把图像数据打包,从一个地方运输到另一个地方。
下面我们就从各个环节简单说一下技术原理:
音视频采集
采集是整个视频直播过程的第一个环节,它从系统的采集设备中获取原始视频数据,将其输出到下一个环节。视频的采集涉及两方面数据的采集:音频采集和图像采集。
音频采集
音频的采集过程主要通过设备将环境中的模拟信号采集成 PCM 编码的原始数据,然后编码压缩成MP3,AAC,HE-AAC,Opus,FLAC,Vorbis (Ogg),Speex 和 AMR等等格式的数据分发出去。音频采集和编码主要面临的挑战在于:延时敏感、卡顿敏感、噪声消除(Denoise)、回声消除(AEC)、静音检测(VAD)和各种混音算法等。
图像采集
图像的采集过程主要由摄像头等设备拍摄成 YUV 编码的原始数据,然后经过编码压缩成 MP4、3GP、AVI、MKV、WMV、MPG、VOB、FLV、SWF、MOV、RMVB 和 WebM 等等格式的数据分发出去。图像采集和编码面临的主要挑战在于:设备兼容性差、延时敏感、卡顿敏感以及各种对图像的处理操作如美颜和水印等。
处理
音视频数据完成采集之后,为了达到相应的现场效果,使视频画面更加的优美往往需要加上一些额外的效果。
例如,现在常见的泛娱乐直播祛斑美颜功能就是必不可少的一项功能,有的还需要加上声音的一些混淆处理让音效更加的丰富,满足直播现场需要的效果。还有的要加logo水印等等,这些都是在编码压缩前进行处理完成的。
编码封装
对流媒体传输来说,编码非常重要,编码性能、编码速度和编码压缩比会直接影响整个流媒体传输的用户体验和传输成本。
为什么要编码?
原始视频数据存储空间大,而经过 H.264 编码压缩之后,视频文件的大小变得非常小,占用带宽传输也很小,满足了实时传输的需求。如果不仅进行编码原始数据文件过于庞大,难以传输,更别提无卡顿、低延迟的直播了。所以从视频采集传感器采集来的原始视频势必要经过视频编码。