直播流程模型如下图
直播的整体框架主要分为五个流程,这五个流程也都很好理解,就是字面的意思
下面咱们就挨个来看一下:
1. 采集:
采集是整个直播过程中的第一个环节,负责从采集设备中采集原始数据传递到下一个环节
采集设备多种多样,可以是录音机、手机、摄像机等设备
原始直播的数据采集涉及两方面数据的采集:音频采集 和 图像采集
这没啥问题,看直播不就是声音和画面嘛!
下面就分别来看下这两个采集1.1 音频数据 采集
简单来说,就是你听到的声音用 01010101 这些计算机能看懂的二进制形式来表示那声音是怎么产生的呢?
物体振动产生的声波传导的我们的耳朵里,引起了鼓膜的震动,听觉神经又把这个信号传递到了大脑
人们就听到了声音
声音是大自然中的一种波,要记录它必须对它进行数字化处理
而我们常用的数码音频系统是通过将声波波形转换成一连串的二进制数据来存储和再现原始声音的
实现这个功能依赖的设备就是 模/数转换器(A/D)
它会对一段声音进行数字化转换,用一定的频率对连续的音频信号进行 模数转换(ADC) 得到音频数据
反过来
它也会一段音频数据进行 数模转换(DAC) 变成模拟音频信号进行播放输出,使用户听得到声音
这就叫做音频数据在这两个数字化声音的过程中
有两个重要的指标:采样频率(Sampling Rate) 和 采样大小(Sampling Size)1.1.1 采样频率
声音是由物体振动产生的声波,而波是无限光滑的,所以说我们不可能每个点都去采集
我们采样的过程只是从这些无限光滑的波中抽取某些点的值去记录
这些抽样点,我们把它称之为 样本,而将一连串的 样本 连接起来,就可以记录一段声波了
这也就诞生了 采样频率 这个概念:
我们把每一秒钟所采样的采样点数目称为 采样频率 或 采率,单位为HZ(赫兹)
比如 1000HZ 就是一秒钟采集1000次
采样频率越高声音的还原度就越真实越自然,但同时占用空间会变大 这个都很好理解了解一下常用的采样频率:
8,000HZ -- 电话所用采样率,对于人的说话、交流 已经足够了
11,025Hz -- AM调幅广播所用采样率
24,000Hz -- FM调频广播所用采样率
44,100Hz -- 音频CD所用采样率,VCD、mp3就是使用的这种频率
47,250Hz -- 录音机
48,000Hz -- 数字电视、DVD、电影和专业音频所用的数字声音所用采样率
当然往上还有更高的频率
但是对于高于48KHz的采样频率人耳已经无法辨别出来了
对咱们来说,平时就看个片,听个歌,也不搞啥科研,没啥研究价值,知道这些就差不多了
1.1.2 科普篇:
顺便科普一下 调幅广播AM 和 调频广播FM:
它们是广播电台的两种方式,使用不同的的频率范围
AM调幅广播是最早出现的广播形式,技术也比较简单
也正是因为简单,所以它的信号可以使用很简单的设备就能接收到
就这么说,如果一个信号源的强度足够大,它的接收器甚至都不需要电源就能播放
但是也有一个问题就是它容易受电磁干扰,音质较差
它虽然比较简单,但简单的不一定就会被淘汰掉,它和FM调频广播各有优劣,谁也替代不了谁FM调频广播是一种以频率调制技术来传送高保真声音的无线电广播技术
现在大部分电台使用的就是FM调频广播
调频不容易受干扰,音质比较好,相对的接收起来也比较麻烦罗列一下它俩的区别:
调幅容易受干扰,音质一般;调频不容易受干扰,音质比较好
1.1.3 采样位数 即采样大小
官话的解释是:
每个采样点能够表示的数据范围,客观地反映了数字声音信号对输入声音信号描述的准确程度
给各位看官解释一遍:
这么说吧 现在你有了一个采样点 接下来你就需要去储存记录它
你给它分配的存储空间越大,你能记录它的信息也就越多
你给它分配的存储空间越小,你能记录它的信息也就越少
可以想象着比较一下,有一段相同的音乐,分别由钢琴和小提琴去演奏
然后你去采集、去记录下来
但如果你的采样位数足够低,所能记录的东西就会很少很少,那等你回放的时候只能听到这两种声音节奏差不多
区分不出来哪个是钢琴?哪个是小提琴?
只有足够的存储空间记录,才能更好的还原声音的三要素、空间位置等一些信息而这个存储空间指的就是 采样位数
声音是一段波形,那记录的到底是什么东西呢?
是采样点声波的振幅(映射到后面所讲的PCM数据中就是电压)!
咱们举个例子:
8bits 只能记录 256 个数, 也就是说只能将振幅划分成 256 个等级
16bits 就可以记录 65536 个数, 将声音振幅划分成 65536 个等级,这已是 CD 标准了
32bits 能把振幅细分到 4294967296 个等级,但实在没必要
以上这些就是不同的 采样位数采样位数通常有 8bits(低品质) 或 16bits(高品质) 两种,其中 16bits 是最常见的采样精度
采样位数越大,所能记录声音的振幅就越精细,变化度就越细腻
还原的声音也就越真实 但相应的数据量就越大,存储空间耗费的也就越大1.1.4 声道 - 声音的位置信息
这个应该很熟悉
单声道、左声道、右声道之类的
它呢,是指声音在 录制的时候 在不同的空间位置去采集 然后 回放的时候 在不同的空间位置去播放的音频信号
所以声道数也就是 声音录制时候的音源数量 或 回放时相应的扬声器数量 它们是一致的
这很好理解吧!
你在哪几个位置收集的信号,就在哪几个位置去播放,相互对应的嘛!来看一张图片,考大家一个问题:
玩家庭影院的人应该会知道点,这个是属于什么声道系统?
来! 给你们科普点声道的发展历史,了解完之后上面的问题绝对张口就来!
声道的发展历史离不开电影工业的发展需求,它和电影工业息息相关!
- 无声
早期的电影是没有声音的,像一百多年前,那时候还没有引入音频技术 拍的电影都是没有声音的
了解卓别林的应该都知道,他一生拍了很多很多喜剧电影,基本上都是黑白无声的电影,只有最后五部电影才有的声音
你现在搜的一些电影之所以有声音
也是因为后来引入了音轨技术之后,经过了处理,配上了当时的音乐和音响重新发行的 - 单声道 1.0 :
后来呢,电影工业引入了音频技术,这才让电影开口说话了!
单声道就是这种原始的声音形式
它就是一个简单的音箱,摆在屏幕的下面,正中间的位置,屏幕播放电影画面,它来播放电影声音!
这个音箱,我们叫它 中置音箱
也这就是 单声道 ,也叫 1.0声道,很简单,只有一个中置音箱
就算是你用多个扬声器去播放单声道声音,也可以明显感觉到声音是从同一个位置传递到我们耳朵里的
它就是缺乏那种位置感、空间感 - 立体声 2.0 :
到了后来呢,人们就发现 单纯的让电影开口说话,也满足不了观影的需求
人们想要观影时的那种位置感,这就出现了 立体声
单声道缺乏对声音的位置定位,而立体声技术则彻底改变了这一状况
它的布局变成了屏幕左边一个音箱,屏幕右边一个音箱,对称放置
这样就构成了一个立体声声道系统
它是声音在录制过程中被分配到两个独立的声道,从而达到了很好的声音定位效果
这种技术在音乐欣赏中显得尤为有用,听众可以清晰地分辨出各种乐器来自的方向
从而使音乐更富想象力,更加接近于临场感受。
但是人们的欲望是无止境的,立体声虽然满足了人们对左右声道位置感体验的要求
但是随着技术的进一步发展,大家逐渐发现双声道已经越来越不能满足我们的需求
就出现了一个新的概念:三维音效
三维音效 是个什么东西呢?
它的主旨是:
为人们带来一个虚拟的声音环境,营造一个趋于真实的声场,从而获得更好的观影、游戏听觉效果和声场定位
而要达到这种效果,就出现了下面几种高级的声道系统:- 5.1 声道 :
5.1 声道 系统 它有6个发音点:
中置音箱、前置左音箱、前置右音箱、侧环绕左音箱、侧环绕右音箱,再加上一个低音炮(以加强对低频信号的回放处理)
构成了一个环绕包围式的这么一个声道系统
而听众呢 则被包围在这中间
可以让听众体验来自多个不同方向的声音环绕,可以获得身临各种不同环境的听觉感受那你想过没有1.0 声道是一个发音点,2.0 声道是两个发音点,5.1 声道有六个发音点
那它为什么不叫 6.0 而是叫 5.1 呢?那是因为它把低音炮这个发音点给踢掉了
在这里说一下它们的分区概念:5.1声道系统 其中的五个声道音箱还原的声音信息是全频段的(20Hz-2WHz)
而这个点1的 低音炮音箱 它只负责还原 20Hz-120Hz 的声音,只是用来加强对低频信号的回放处理
它不负责还原全频段的声音,所以当然不能把它看成 6.0
其实 5.1 之前还有一个 5.0,它没有低音炮,这个咱们不说了 - 7.1 声道 :
5.1 声道系统往后走,就出现了更牛的 7.1 声道系统
这个 7.1 声道,它是在 5.1 声道的基础上,又新增了两个后环绕音箱:
后环绕左音箱、后环绕右音箱那它新增的这两个音响有啥作用吗
也就是说 7.1 比 5.1 具体好在哪?其实还是涉及到一个更加真实听觉体验
可以看一下 5.1 的声场音箱的排布,
假如说 电影中有一个子弹,从你的耳边这么嗖的一下飞过
模拟一下它的发声轨迹是:前置左 -> 侧环绕左 -> 你的左耳朵 -> 侧环绕右 -> 前置右 这样的一个方向感
如图所示:那么就会造成一个声场上的一些掩盖,或者声场运动的不连贯性 那么环绕的音效体验就会有所丢失
所以,这个时候,7.1 在你后边又新增了两个后环绕音箱
那这个运动轨迹就会变成:前置左 -> 侧环绕左 -> 后环绕左 -> 后环绕右 -> 侧环绕右 -> 前置右这样的轨迹就把用户完完全全包围住了,声音的连贯性会好很多 - 杜比全景声、DTSX
首先这个 杜比全景声 你可以理解成是一个新的概念,它不单单指某一个声道
像 5.1.2、5.1.4、7.1.2、7.1.4 等声道系统,它都是杜比全景声
这个概念先放一边,咱们马上就说到它
先来看下这些个声道系统
你可以看到它们的命名规则又都发生改变了
后面又加了一个小数点
拿 5.1.2 杜比全景声来说,其中的 5.1 跟咱们上面介绍的一模一样,五个声道 + 一个低音炮
后面的点2呢?
它其实也是两条声道,即两个音响
但是它又放在哪呢
来看下它们的分布图吧:可以看到,它们在用户两侧的天花板上,所以,它俩叫 顶置音箱
在我们的认知里,声音是来自四面八方的
有前后方向,有左右方向,当然也少不了上下方向
就这种声道系统,你可以想象一下坐在中间被
同理,5.1.4、7.1.2、7.1.4 等声道系统的分布图如下:
看到了吗,后面的小数点均是指代天花板上面的音箱,叫顶置声道!
什么叫全景?
那肯定是把用户整个的都包围进去,身临其境嘛!大家来思考一下:
这些 几点几点几 的杜比全景声道系统,只是在天花板上按了几个音箱而已嘛?
不是!绝对不是!
这就是咱们前面提到的:
它是一个突破传统,全新的一个概念,一个全新的音频平台
为什么这么说呢?你可以想象一下,现在有了 7.1,那以后,技术肯定是越来越发展的
而这个声道数肯定也会越来越多,那么到了那个时候
按照传统的处理声道的方法来进行 混音 制作的这种技术肯定会满足不了电影工业的严苛要求1.1.5 科普篇
这里就牵涉到混音的概念了
这里简单说一下这个混音吧,有兴趣的呢 可以搜一下这方面的详细资料
你如果把一个声音文件,导入到专业的音频软件上(像Adobe Audition), 比如说 5.1 声道的声音文件
你就会发现,它就会有 1 2 3 4 5 6 这六条音轨显示在软件上面
也很好理解:五个声道音轨 + 一个低音炮音轨
那 7.1 声道就会有 1 2 3 4 5 6 7 8 八条音轨的
它们就是按照这种方式来进行混音的贴几张图展示一下
因为我在网上没找到5.1的测试音频文件,下载了一些打开一看也都是骗人的,
所以就新建了个5.1的空白音频文件,大家凑合看:
以后的技术发展肯定越来越牛逼,声道数也肯定会越来越多
那你还是按照这种方式来进行混音:
7.1.4 12条音轨,你就需要分别混音12条音轨
9.1.6 16条音轨,你就需要分别混16条音轨
后面再出现20点几 50点几 甚至多达到上百多条音轨,这个成本就指数上涨了
那如果真是这样的话,个人感觉以后拍电影,音频这方面的钱比明星片酬和特效都高!于是呢,杜比这家公司,就做了一次非常大的革新
它把这个传统的按照声道数量录制混音的方式
改为基于声音对象来进行混音!
Android同学都对这个不陌生吧!
JAVA的面向对象嘛!
传统是按照一条条的音轨进行混音,这是啥?面向过程嘛!
后来为了图方便,改为面向对象!
我现在就怀疑杜比公司发明这个东西的那伙人,之前是干JAVA出身的基于声音对象来进行混音
这个是个什么意思呢?
大体意思就是:
你不再需要去考虑你该为这个电影设计多少声道了
你现在需要考虑的就是
比如说一只小鸟从你的左边飞到右边的时候
它是一个什么样的状态,是一条什么样的运动轨迹
你就可以把这个声音对象记录在这个音轨里面
那至于你要怎么去还原这一个记录的对象所发出的声音
那就是完完全全的由你的AV解码器去做的事了
比如你家里配置的是一个简单的5.1声道系统,那么在你播放这个杜比全景声的时候,
AV解码器就会自动对声音对象进行解码,它就会给你解码出对应的5.1声道系统的音轨
假如你是7.1声道,它就会给你解码出对应的7.1声道的音轨
假如你是全景声5.1.2、5.1.4、7.1.2、7.1.4,或者往后更多的100多,200多的那种多声道
你都不再需要重新去进行混音制作了
就一条杜比全景声音轨用到死
只需要在这个AV解码器上面来进行配置就好了
你配置什么它就解码出什么
它是非常的灵活的
它突破了传统的按照声道数来进行混音录制的方法
这一项技术绝对是一项革命性的进步
非常的好!而这个 DTSX 呢?其实是一样的!
杜比 和 DTS 是两家美国公司,这俩家公司垄断了所有电影的音轨制作,巨型的巨头公司!
而 杜比 推出了这种基于对象混音的全景声技术之后,进行了革命性的突破之后!
那你说这个 DTS公司 它还能坐得住吗?
那肯定坐不住了呀!
所以一年半之后,DTS 推出了DTSX音轨技术,类似于杜比全景声,也是基于对象混音的结合自身你可以想一下
现在基本上都说
“哎你看 杜比全景声这那…”
很少很少能听到 DTSX 的名号
我不知道你们哈,反正我在查资料之前根本不知道这个DTSX是个啥玩意
就是因为啥?
就是因为这一年半的时间差,这市场份额被杜比抢的差不多了2. 编码:
编码 是整个直播过程中的第二个环节
原始直播的数据编码涉及两方面:音频编码 和 图像编码说完了声音的采集咱们趁热打铁 接着来说下声音的编码,图像的采集咱们先放一下2.1 声音的编码
自然界中的声音是多种多样的,波形也是极其复杂
而如果我们要把声波数据存储记录下来
就要采用 脉冲编码调制编码,即 PCM编码
它会通过抽样、量化、编码等步骤
将连续变化的声波模拟信号转换为数字信号,即二进制序列,也就是数字音频信号
这个就是 PCM音频数据2.1.1 PCM音频数据
PCM音频数据是未经任何压缩过的音频采样数据裸流,是声音最原始的数据格式
它是由模拟信号经过采样、量化、编码转换出来的标准数字音频数据
也是一种用数字表示采样模拟信号的方法
它的优点就是:未经压缩,完全无损
缺点也很明显:就是体积过大
咱们来简单了解下PCM数据的结构:
PCM数据只包含负载,声音的数据均存储在负载信息中
来简单看一下负载信息的结构:
如果是单声道的文件,采样数据按时间的先后顺序依次存入
如果是双声道的文件,采样数据按时间的先后顺序交叉存入 LRLRLRLR…但网上有一些文章,也有在说“PCM数据可以只包含负载,也可以包含头信息+负载”
这明显胡扯呢!
有头部信息的那是WAV,PCM的一种编码格式,而PCM则只包含负载信息,它是不会经过任何压缩和编码的
也正是因为体积过于庞大
所以PCM音频数据是不利于存储和网络传输的,必须要对它进行编码压缩
把它压缩成为音频码流,从而降低音频的数据量,便于存储和传输
而编码压缩采用的方式不同就先后诞生了一系列的音频格式
这些音频格式运用不同的方法对音频数据进行压缩
而在整体上可以分为 有损压缩 和 无损压缩 两类2.1.2 科普篇
有损压缩就是通过删除一些已有数据中不太重要的数据来达到压缩目的
无损压缩就是通过优化排列方式来达到压缩目的大概可以这样去理解:
有损压缩就像我们在一篇文章中删除一些不重要的语气助词,达到目的。
但是解压缩后,已删除的内容就无法恢复;
而无损则是通过排版方式达到的,解压缩之后,还能获得完整的 PCM音频数据
无损压缩方式:
ALAC、APE、FLAC
有损压缩方式:
MP3、AAC、OGG、WMA2.1.3 常用音频编码格式
以下的编码格式大家简单了解下即可,有兴趣的可以深入研究
咱们只需要知道一点就是:
直播系统几乎(90%以上)都是采用AAC来进行音频压缩
AAC编解码质量非常高,可以做到音频高保真- WAV
WAV 编码的一种实现就是在 PCM 数据格式的前面加上 44 字节(WAV编码有多种方式,但是都不会进行压缩操作)
分别用来描述 PCM 的采样率、声道数、数据格式等信息
特点 | 适用场合 |
---|
音质非常好,大量软件都支持 | 多媒体开发的中间文件、保存音乐和音效素材 |
这个就是上文中提到的有头部信息的PCM编码格式,它不会对PCM进行压缩,只是给它添加了个头
头部信息(44个字节):
- MP3(有损)
MP3 具有不错的压缩比
使用 LAME 编码(MP3 编码格式的一种实现)的中高码率的 MP3 文件
听感上非常接近源WAV文件
当然在不同的应用场景下,应该调整合适的参数以达到最好的效果
特点 | 适用场合 |
---|
音质在 128Kbit/s 以上表现还不错压缩比比较高大量软件和硬件都支持,兼容性好 | 高比特率下对兼容性有要求的音乐欣赏 |
- AAC(有损)
AAC 是新一代的音频有损压缩技术,它通过一些附加的编码技术(比如 PS、SBR 等)
衍生出了 LC-AAC、HE-AAC、HE-AAC v2 三种主要的编码格式:
LC-AAC 是比较传统的 AAC,相对而言,其主要应用于中高码率场景的编码(≥80Kbit/s)
HE-AAC 相当于AAC+SBR,主要应用于中低码率场景的编码(≤80Kbit/s)
HE-AAC v2 相当于AAC+SBR+PS,主要应用于低码率场景的编码(≤48Kbit/s)
事实上大部分编码器都设置为 ≤48Kbit/s 自动启用 PS 技术
而 >48Kbit/s 则不加PS,相当于普通的 HE-AAC
特点 | 适用场合 |
---|
在小于 128Kbit/s 的码率下表现优异并且多用于视频中的音频编码 | 128Kbit/s 以下的音频编码多用于视频中音频轨的编码 |
- Ogg(有损)
Ogg 是一种非常有潜力的编码,在各种码率下都有比较优秀的表现,尤其是在中低码率场景下
Ogg 除了音质好之外,还是完全免费的,这为 Ogg 获得更多的支持打好了基础
Ogg 有着非常出色的算法,可以用更小的码率达到更好的音质
128Kbit/s 的 Ogg 比 192Kbit/s 甚至更高码率的 MP3 还要出色
但目前因为还没有媒体服务软件的支持,因此基于 Ogg 的数字广播还无法实现
Ogg 目前受支持的情况还不够好,无论是软件上的还是硬件上的支持,都无法和 MP3 相提并论
特点 | 适用场合 |
---|
可以用比 MP3 更小的码率实现比 MP3 更好的音质高中低码率下均有良好的表现兼容性不够好,流媒体特性不支持 | 语音聊天的音频消息场景 |
- APE(无损)
APE 是流行的数字音乐无损压缩格式之一,因出现较早,在全世界特别是中国大陆有着广泛的用户群
与 MP3 这类有损压缩格式不可逆转地删除数据以缩减源文件体积不同,APE 这类无损压缩格式
是以更精炼的记录方式来缩减体积,还原后数据与源文件一样,从而保证了文件的完整性
相较同类文件格式 FLAC,APE 有查错能力但不提供纠错功能,以保证文件的无损和纯正
其另一个特色是压缩率约为 55%,比 FLAC 高,体积大概为原 CD 的一半,便于存储
APE 作为一种无损压缩音频格式
通过 Monkey’s Audio 这个软件可以将庞大的 WAV 音频文件压缩为 APE
体积虽然变小了,但音质和原来一样
解压缩还原以后得到的 WAV 文件可以做到与压缩前的源文件完全一致
所以 APE 被誉为“无损音频压缩格式”
简单来讲,APE 压缩与 WinZip 或 WinRAR 这类专业数据压缩软件压缩原理类似
只是 APE 等无损压缩数字音乐之后的 APE 音频文件是可以直接被播放的
APE 的压缩速率是动态的,压缩时只压缩可被压缩部分,不能被压缩的部分还是会保留下来FLAC(无损)
FLAC 中文可解释为无损音频压缩编码。
FLAC 是一套著名的自由音频压缩编码,其特点是无损压缩
不同于其他有损压缩编码如 MP3 及 AAC,它不会破坏任何原有的音频资讯
所以可以还原音乐光盘音质
2012 年以来它已被很多软件及硬件音频产品(如 CD 等)所支持
FLAC 与 MP3 不同,MP3 是音频压缩编码
但 FLAC 是无损压缩,也就是说音频以 FLAC 编码压缩后不会丢失任何信息
将 FLAC 件还原为 WAV 文件后,与压缩前的 WAV 文件内容相同
这种压缩与 ZIP 的方式类似,但 FLAC 的压缩比率大于 ZIP 和 RAR
因为 FLAC 是专门针对 PCM 音频的特点设计的压缩方式
而且可以使用播放器直接播放 FLAC 压缩的文件
就象通常播放你的 MP3 文件一样