随着通信技术的发展,音视频产业的发展得到了质的飞跃。例如:在日常生活中,小伙伴们都有花时间在刷短视频、追剧或者观看直播等。那么好奇的小伙伴,一定会产生疑问,音视频录制、播放的原理是什么呢?
1、音视频录制原理
如上图所示,音视频录制的过程如下:
(1)由麦克风采集原始音频数据、摄像头采集原始视频数据,同时为了保证音频与视频保持同步就必须提供一个相同的时钟源。时钟基于两个设备输出的数据都是实时的前提下,在第一个数据帧输出之后,设置一个时间点,然后之后的帧按照硬件的采集频率直接计算出时间戳,这样可以保证时间是严格对齐的。
(2)采集完数据之后,根据需求可以对采集到的数据进行处理。如:图像的曝光、色度、温和度、色差或者音质的调整。
(3)分别对音视频数据进行编码处理,编码的本质就是采用不同的算法对数据进行压缩。如果不做编码的话,原始音视频的体积是非常大的,将导致最终的音视频文件很大或者增加网络传输的负担。常见的视频编码有:H.264、H.265、SVAC等视频编码算法。常见的音频编码有:AAC、MP3等音频编码算法。
(4)复用的过程就是将经过压缩的视频编码与音频编码进行合并,用特定的存储格式保存到文件中。常见的封装数据格式有:FLV、MP4、TS、MKV等。
2、音视频播放原理
如上图所示,音视频播放的过程如下:
(1)音视频播放的过程与音视频录制是一个逆向的过程,解复用就是将音视频数据从特定的封装格式中进行分离处理,分别得到压缩的音频数据和视频数据。
(2)分别对音频数据和视频数据进行解码处理,即解压缩的处理,得到原始的音频数据和视频数据。
(3)音视频数据的时间同步处理,之所以需要时间同步的原因是:音视频播放的时间难以长时间精准控制或者音视频处理上的异常及误差会随时间累积,为了使播放的声音和显示的画面保持一致,必须要采用一定的同步策略,不断对音视频的时间差作校正,使图像显示与声音播放总体保持一致。
(4)最后将音频原始数据输出到扬声器播放、将视频原始数据输出到显示器播放。
注:音视频数据如果需要经过网络传输到对端设备,那么在音视频录制的处理过程中,在音视频封装之后,还有协议处理的过程。同时对端设备接收到传输的数据,在音视频播放处理的第一步需要进行解协议处理。常见的协议有:RTP、RTMP、HLS、HTTP-FLV。