音视频学习笔记1--音视频基础知识(1)
共 2487字,需浏览 5分钟
·
2022-02-09 17:35
1 音视频开发是什么?
随着5G时代的到来和人们生活中对于音视频的需求,音视频已经迎来了春天,那么音视频指的是什么呢?音视频是一个描述比较宽泛的领域,从音视频信息的采集到编码到流媒体的传输,再到客户端进行拉流直至解码并播放出来,都属于音视频开发的范畴,也因此音视频开发虽说没有算法那么高的门槛,但是其知识多而杂,加上国内音视频开发的书籍资料较少,所以入门较难。 那么音视频简单来说具有那些领域呢?作者将其分为以下几种: 1.Android、IOS、Windows客户端开发,这部分主要针对音视频采集、编解码与客户端开发技术栈相结合,实现音视频采集、传输等操作,开发人员需要对ffmpeg、webrtc等开源项目熟悉。 2.流媒体服务器开发,这部分人员主要针对流媒体进行服务器端开发,服务器包括流媒体传输服务器与信令服务器部分,这部分开发人员需要对各种流媒体传输协议以及服务器逻辑开发具有较强的能力。 3.音视频编解码算法研发,由于音视频再网路中的传输需要进行编解码、压缩等操作(否则需要无法想象的网络带宽),因此算法研发人员需要针对业务场景对音视频编解码算法进行研发与改进,算法研究人员需要较强的数学功底与逻辑分析能力。 除此之外,由于音视频领域广大,还会有音视频传输、硬件等部分研发人员,可以将其归结为音视频领域。
2 音视频数据处理流程
音视频采集过程是将自然界中的音视频模拟信号转化为计算机可进行存储与识别的数字信号的过程。
2.1 音视频数据采集
音频数据的采集通过硬件端(一般为麦克风)进行模拟信号的输入,由于计算机无法对模拟信号进行识别与存储,因此需要将其转化为数字信号,这里我们可以通过音频采样的方式进行转化,采样即将连续的模拟信号(用连续的波形表示)通过密集地分割,利用多个数字信号进行表示的过程,这样讲较为抽象,大家可以想象一下高数中微积分的原理,示意图如图1所示:
图1 采样示意图
采集到的音频信号以帧队列的形式进行操作,首先需要对音频帧队列进行音频编码,编码后的数据与图像帧队列编码后的数据进行封装得到视频文件(这里说的视频文件指的是我们平时接触到的MP4、FLV等既有图像又有音频的文件)。 图像数据的采集与音频数据的采集过程相似,首先通过摄像头采集图像信息,并形成图像帧队列,以视频编码算法进行编码后,与编码后的音频数据进行封装。 音视频的采集过程如图2所示:
图2 音视频采集过程
2.2 封装与解封装
上一节我们已经讲到,音频数据与图像数据是分开进行采集与编码的,但我们平时只需要打开.MP4文件即可观看电影,既有音频又有图像,这是由于音视频数据在分别采集与编码后进行了封装,最后得到了一个视频文件(可以理解为将音频与视频按照规则进行打包),在视频播放的过程中,图像帧需要通过显示器渲染出来,音频帧需要通过扬声器或者耳机等硬件播放出来,因此还需要对MP4、FLV等视频文件进行解封装,得到图像帧队列与音频帧队列。过程如图3所示:
图3 封装与解封装
2.3 音视频输出
音视频的输出即音视频采集的逆操作,将音视频文件解封装,得到对应的音频帧队列和图像帧队列,然后分别通过扬声器、显示器等输出设备将音视频数据输出。过程如图4所示:
图4 音视频输出过程
2.4 音视频同步
除前几节知识之外,还有一个音视频同步的概念也非常重要,音视频同步即在同一时间,音频数据与视频数据需要将各个帧对应起来,如果这个环节出现问题,那么就会出现声音与图像对应不起来的现象(每个人都应该经历过,字幕已经拨过去一会,对应的声音才传来),音视频同步的实现同样需要出现在音视频采集与输出过程中,进行音视频采集时,需要通过时钟对音视频的帧数据进行同步采集与写入,输出时,需要通过文件中的同步数据对音频与图像帧进行同步控制,实现音视频的同步输出。
3 视频中的基础概念
图5 视频信息截图
3.1 视频码率
视频码率是指单位时间内视频数据所占流量大小,视频的码率越大,数据流精度也就越高,视频也就越清晰,如图5,当选择视频清晰度为4M时,码率为4000 Kbps(传输时1 M = 1000 K, 存储时1 M = 1024 K)。
3.2 视频帧率
视频帧率指的是1秒中视频会显示多少帧,我们在看视频、打游戏的时候都会接触到多少帧的概念,帧率越高,在人的视觉上也就越流畅,其单位为fps。
3.2 视频分辨率
这个概念更加接近生活,我们在买电视、电脑显示器时,都会将分辨率作为选择的一个重要参数,视频分辨率影响的内容是图像大小,分辨率越高,能显示的图像越大,我们可以知道,将电脑分辨率调低后,电脑能显示的内容减少,就是因为分辨率变低,能显示的图像变小,因此在有限的屏幕下可见的东西变少。
4 音频中的基础概念
4.1 音频采样频率
音频在从模拟信号转化为数字信号的过程中,是通过采样实现的,采样频率指的是每秒对音频数据进行采样的次数,我们可以想象一下,采样次数越少,能采集到的信息也就越粗糙,这样也就造成了音频数据存储到计算机中再播放出来就会出现音质的降低,同样,采样频率越高,音频质量也就越流畅、越接近原声,常用的采样频率为22 kHz,44.1 kHz,48 kHz,96 kHz,192 kHz。
4.2 音频采样深度
除了采样频率,采样深度也是音频采样的一个重要指标,我们再进行采样时,每次采样都能存储的信息越精细,所采集的音频也就越清晰,音频质量越高,常用的采样深度大小为8 bit,16 bit,24 bit。
4.3 音频通道数
这个概念很简单了,我们在带耳机时两个耳朵所听到的声音不同,给人一种立体的感觉,那是因为音频是双声道的,在电影院我们可以在环境中听到立体声的感觉,因为是5.1声道。
4.4 音频比特率
音频比特率 = 采样频率 * 采样深度 * 通道数,比特率越大,音频一般质量越高,压缩后音频数据的比特率成为码率,码率 = 音频文件大小 / 音频时长。
5 总结
本人也刚开始接触音视频,博客中难免对一些概念解释不到位,并且本节所介绍的概念也不全面,后期还会有补充,若有什么不对的地方,欢迎各位大佬指正。