一般来说,我们常把视频直播的流程可以分为如下几步:
采集 —>处理—>编码和封装—>传输(推流到服务器、服务器流分发)—>播放器流播放
简单描述起来就是:主播端把音视频数据采集编码后通过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 等等格式的数据分发出去。图像采集和编码面临的主要挑战在于:设备兼容性差、延时敏感、卡顿敏感以及各种对图像的处理操作如美颜和水印等。
处理
音视频数据完成采集之后,为了达到相应的现场效果,使视频画面更加的优美往往需要加上一些额外的效果。20230816zx