专业做网站设计哪家好,做网站常规语言,v2ex wordpress,浙江建设网站1. 前言
本文是音视频工程师系列的第一篇文章。
学习音视频的过程中发现#xff0c;网络上高质量的音视频技术博客不是很多。具有代表性的是
雷神的 雷霄骅的CSDN博客
因为笔者是一名普通的软件开发人员#xff0c;一向不喜欢高高在上或者晦涩难懂的理论#xff0c;我们…1. 前言
本文是音视频工程师系列的第一篇文章。
学习音视频的过程中发现网络上高质量的音视频技术博客不是很多。具有代表性的是
雷神的 雷霄骅的CSDN博客
因为笔者是一名普通的软件开发人员一向不喜欢高高在上或者晦涩难懂的理论我们向来喜欢通俗易懂的东西。我认为知识的本身也应该是通俗易懂的东西。知识用晦涩难懂的东西描述出来是对人类进步的阻碍是知识垄断。
音视频的很多标准都是国外制定的而且很多音视频开发基础库也是国外的国内外技术差距是存在的。
笔者希望此系列教程能够以工程实现为出发点和落脚点简化理论知识化繁为简地解析音视频技术为音视频技术的发展为各位读者成长为音视频工程师贡献一点微不足道的力量。
2. 音视频数据内容信息分类
音视频数据内容从本质上讲分为两种
音视频数据存储音视频本身想要传达的信息即声音和图像。音视频参数存储音视频的控制参数。例如采样率帧率等信息是处理音视频数据时必不可少的信息。
3. 格式
封装格式容器
音视频内容包含了音视频数据和音视频参数两种信息这两种信息打包放在一个文件中采用的格式就叫做封装格式也叫容器。个人觉得叫封装格式更容易理解。
目前人们已经发明了很多种视频文件格式。当然发明这些格式并不是一拍大腿想起来的而是在特定的使用场景下对应的视频格式可以更高效地存储和处理音视频数据。
由于封装格式在开发中基本上都是由库来处理不需要我们自己封装和解析所以可以先不做细致了解。在初学阶段的首要任务是把握音视频的整体工作框架某些技术细节可以先放一放后面再研究。这也是笔者建议的学习方法学习精力分配要遵循二八定律大部分领域中只有大约20%的知识最重要在这20%上面我们要花80%的时间剩下80%不是那么重要的只需要花20%的时间即可。
编码格式压缩
不经过压缩的音视频数据是很大的。例如 1920x1080的RGB24图像1秒25帧不压缩1小时的视频总大小约为 1920 * 1080 * 3 * 25 * 60 * 60 521G。 这种情况下500G的电脑硬盘最多只能存1个小时的电影刷小视频会变得很卡百度网盘128KB/s的速度下载一部电影需要一两个月… 所以音视频 必须被压缩后存储或者传输。
采用某种编码格式即压缩格式对音视频数据进行压缩压缩后的音视频数据和音视频参数一起按照某种封装格式被打包放入到音视频文件中这样就生成了视频文件。
4. 音视频数据基本单位
4.1 采样/抽样
首先要明白采样/抽样的概念。 视频采样是指以某一速度对物体连续拍照不断记录物体在某一瞬间的画面。 音频采样是指以某一速度连续记录声音在某一瞬间的震动幅度。 采样是对原事物的一种反映手段。对于采样后的音视频数据计算机可以进行播放和加工处理。
4.2 视频帧
每一个时刻拍的那张照片就叫视频帧它是视频的基本数据单位。
4.3 PCM音频采样点
每一个时刻获取到的声音振幅就叫PCM采样点它是音频的基本数据单位。
了解这些基本够用了不需要深入地去研究过多的细节。最主要的是要了解通过采样可以将现实世界的事物反映到计算机中变成可处理的数据。
5. 音视频参数
既然音视频数据是经过采样得到的那么我们想要播放音视频数据就必须用到采样过程中使用到的一些参数这样音视频数据才能正确的反应原事物的状态。
5.1 音频参数
5.1.1 基本参数
音频有三个基本参数 采样位数表示每个采样使用多少个比特位来保存一般为4、8、16、32位bit。采样位数为8 bit时每个采样点可以表示256个不同的采样值而采样位数为16 bit时每个采样点可以表示65536个不同的采样值。采样位数的大小影响声音的质量采样位数越多量化后的波形越接近原始声音声音的质量越高但是需要的存储空间也越多位数越少声音的质量越低需要的存储空间越少。通常CD音质的采样位数是16 bit移动通信是8 bit。 采样频率Sampling Rate表示一秒钟采样多少次常用的采样频率有4410044.1k以及4480044.8k。采样频率必须至少是人可以听到的频率的2倍这是由奈奎斯特采样定理得到的采样频率再低的话原声音中的频率就会丢失。奈奎斯特采样定理是信号与系统这门课中的不懂的话没关系不需要做过多了解。 声道数声道数是指有多少个录音麦克风放在音源的周围录音。声道间是独立、同时进行采样的。大部分音乐是双声道的播放时用耳机听会有一定的立体感。
上面三个是最基本的三个参数只要知道了这三个参数就可以将声音记录下来而且可以播放出来。
这三个参数怎么记忆呢按照从小到大、从少到多的逻辑记忆即可
先从单个采样点开始存储一个点所用位数叫采样位数一秒钟采样得到的采样点的个数叫采样频率同时进行的采样任务的个数叫声道数。
5.1.2 网络参数
为什么要说网络参数呢由于互联网的发展音视频成为一种服务逐渐出现在互联网上。在线看电影刷短视频上网课等等都已经成为了一种新的生活方式。把音视频搬到网络上必然会有一些和网络相关的技术参数来实现对音视频服务的控制。有如下几种
码率单位是 比特每秒英文是bpsbit per second。此参数表示播放某音频需要占用多少网络带宽。因为码率是网络环境下的参数所以要结合网络来理解。网络带宽就是网络速度单位是bps。咱们家里办的宽带一般都是百兆千兆的带宽听着似乎很快但是由于它的单位是bps实际上转换成字节Byte要除以8百兆不过12.5MB/s千兆不过125MB/s每秒。因为文件是以字节为单位衡量的所以这个速度实际上并不是像听起来那么快。所以码率是衡量音频在网络上传输时对网络带宽占用量的一个参数。当网络带宽比较小时可以选择降低音视频码率这可以通过降低音频质量来实现当网络带宽比较大时可以选择提高音频码率传输更高质量的音视频。
5.2 视频参数
5.2.1 基本参数
视频有三个基本参数
像素格式像素用来保存某一点的颜色这个颜色可以采用不同的格式存储。常见的有RGB、YUV、HSV等。学习这些格式需要一定的数学运算我们后面将单独写一篇文章讲解并计划写一个工具来实现他们之间的转换。画面分辨率分辨率是指一帧画面的长宽各有多少像素一般的写法是宽 * 高如1920 * 1080。分辨率越高画面越细腻。帧率帧率是指1秒钟播放的帧的个数帧率越高画面越流畅帧率越低画面越卡顿。
对视频基本参数也可以采用从小到大的逻辑记忆
先从最基本的像素开始存储某颜色的格式叫像素格式。n个像素构成一帧画面帧的长宽叫做分辨率。n个帧连续播放才能形成视频帧率是指1秒中播放的帧的个数。
5.2.2 网络参数
视频的网络参数和音频类似主要有
码率解释同音频的码率。需要提及的是视频的码率等级比音频多一些因为视频的数据相对于音频数据大了不止一点点所以视频码率等级分的也更多。
结语
本文主要是梳理了一下音视频中的必须了解的基本知识。笔者本系列文章的定位是既要精简又要通俗易懂。现代社会每个人都很忙尽量降低学习成本才是一个优秀的教程应该做的事情而不是把简单的东西用一些专业术语和公式把它复杂化。后面的文章会陆续在公众号及网站更新希望大家多多关注。 附录及参考链接
雷神博客链接视音频数据处理入门PCM音频采样数据处理PCM百度百科https://baike.baidu.com/item/PCM/1568054音频基础知识—PCM浅析cloud.tencent.com/developer/article/1802685 本文原创发布于微信公众号Qt未来工程师。