音视频开发,到底开发个啥-从一部羞羞小电影说起
目录
音视频开发,到底开发个啥——从一部羞羞小电影说起
突如其来的疫情让在线会议和在线教育一下子进入了大众的视野,原本默默耕耘的一些To D类公司,直接在风口飞了起来,一直飞到了纳斯达克,比如声网。随着而来的就是音视频开发领域的火爆,那音视频开发到底开发个啥呢? 让我们先从一部小电影说起。
遥想当年,大学宿舍,美好的周末,室友们都相约和女朋友去学校周边的肮脏小旅馆探究人体的奥秘,留下你一个人在宿舍里寂寞,你打开电脑,找到隐藏在N个文件下的 一个mp4 文件,双击之后,一股东京的热浪,迎面扑来。其中既有苍老师舞动的身姿,也有苍老师甜美的声音,还可能有类似“亚麻跌”的字幕出现在屏幕下方。 从你双击文件的那一刻开始,到听到和看到你热爱的苍老师之前,这期间发生了什么呢?
- 解封装:mp4 是封装格式,相当于一个盒子。盒子里边既有音频(苍老师声音),也有视频(苍老师画面),还可能字幕(亚麻跌)。播放器首先会解封装,将音频,视频,字幕数据解析出来。
- 解码:解析出来的数据,无法直接使用,要进行解码,为什么解码呢,因为原始数据是经过编码处理的,那为什么原始数据要编码呢?直接保存不行么,其实主要是为了减小文件的大小,便于传输和保存。如果不经过编解码处理,那一部几分钟的电影可能就要几个G大小。那么大的文件,想象一下你在偷偷拷贝的时候,是多么的焦虑。
- 音视频同步:解码后的音频、视频、字幕数据是单独的,根据时间将他们同步后,分别交给视频驱动(显卡->显示器)和音频驱(扬声器)动后,就可以看到和听到了。
现在思考第二个问题,文件怎么来的?首先要有苍老师在那婀娜多姿,其次要有一个人扛着摄像机和麦克风在旁边围观。其实这个过程就是上述过程的一个逆向操作。
- 采样:摄像机将一张一张图片,进行采集,一秒可能采集30张图片,专业术语叫30 帧,也就是帧率30 fps。人耳能够听到的频率范围是20Hz~20kHz,所以声音的采样频率一般为44.1kHz,这样就可以保证采样声音达到20kHz也能被数字化,从而使得经过数字化处理之后,人耳听到的声音质量不会被降低,而所谓的44.1kHz就是代表1秒会采样44100次。
- 编码:声音和视频的数据特别大,并且重复数据很多。为了传输和存储,需要将冗余数据去掉,这就需要编码。什么h264,h265说的就是编码的算法。
- 封装:将编码后的视频和音频数据,进行封装,打包成一个文件。比如mp4,flv 等。
知道了文件怎么产生的,文件怎么播放的,现在思考思考最后一个问题,文件哪里来的?从隔壁老王用U盘拷贝过来的,还是从迅雷下载来的。其实还一种传输路径,也就是现在的直播或者视频会议了,相当于一端在实时的在生成文件,然后通过互联网同步的传到你的电脑上进行播放。延时大的就叫直播,延时小的就叫RTC,区别就是所用的传输协议不一样,产生的带宽不一样,费用也不同。具体用哪个 就看具体使用场景了。
总结一下,音视频开发,就是解决 苍老师怎么展现在你眼前问题。 专业点说就是:
- 采集:数据从哪里来。
- 处理:数据怎么加工。编解码
- 传输:数据怎么共享。直播,实时音视频
- 渲染:数据怎么展现。播放器
关注有惊喜: