手记

【金秋打卡】第5天 音视频处理流程

课程名称音视频基础+ffmpeg原理 入门音视频技术开发
课程章节:音频基础知识
课程讲师李超

课程内容

对于一个娱乐直播系统来说,直播客户端可以分为共享端和观看端。

  • 在共享端主要完成两个工作:音视频采集和音视频编码;
  • 在观看端也要完成两个工作:音视频的解码和音视频的渲染。

1.音视频采集

音频采集一般我们只需要简单调用一下api就能实现,每个操作系统都提供了相对于的api, 只是对于不同的平台各不相同。如Android端有audioRecord, mediaRecord等,我们什么时候使用audioRecord,什么时候使用MediaRecord,这个我们需要非常清楚它的应用场景。同样在IOS 端有苹果提供的AVFoundation框架提供了很多音视频采集的方法,其中有很常用的底层方法AudioUnit。

2.音视频编码

我们采集到音视频之后并不能直接传输,因为这个数据太大了,超出了我们网路的设备的负载。如果我们直接传输这么大量的数据,很容易出现各种问题,因此我们必须对这些数据进行压缩后再进行传输,这个压缩的过程就是对音视频的编码处理。编码后的数据就是非常小的数据了。编码分为有损编码和无损编码。

3.音视频传输

编码时候,我们就需要把数据传输到对端,这个传输的过程也是非常复杂的。

4.音视频的解码

对端收到传输的数据后,需要对编码的数据进行解码,把压缩的数据还原后才能进行播放渲染。解码这块是跟编码相对应的,用什么方式编码,就需要用对应的方式解码。

5.音视频渲染

解码后的音视频通过调用相关的 API,完成对硬件设备的驱动,最终完成音视频的播放。

6.音频数据流转

完整的音频数据流从采集到最终的渲染,大致要经历以下几个步骤:

  • pcm(完整的数字信号)
  • aac/mp3 (压缩后的数据)
  • mp4/flv/mov(套一层马甲作为可识别的多媒体文件)
  • 解码器解封(aac/mp3)
  • 还原pcm去播放

0人推荐
随时随地看视频
慕课网APP