音视频开发基础知识

视频解码

  1. 解复用(Demux):解复用也可叫解封装。这里有一个概念叫封装格式,封装格式指的是音视频的组合格式,常见的有 mp4、flv、mkv 等。通俗来讲,封装是将音频流、视频流、字幕流以及其他附件按一定规则组合成一个封装的产物。而解封装起着与封装相反的作用,将一个流媒体文件拆解成音频数据和视频数据等。此时拆分后数据是经过压缩编码的,常见的视频压缩数据格式有 h264。
  1. 解码(Decode):简单来说,就是对压缩的编码数据解压成原始的视频像素数据,常用的原始视频像素数据格式有 yuv。
  1. 色彩空间转换(Color Space Convert):通常对于图像显示器来说,它是通过 RGB 模型来显示图像的,但在传输图像数据时使用 YUV 模型可以节省带宽。因此在显示图像时就需要将 yuv 像素格式的数据转换成 rgb 的像素格式后再进行渲染。
  2. 渲染(Render):将前面已经解码和进行色彩空间转换的每一个视频帧的数据发送给显卡以绘制在屏幕画面上。
 

音频

码率计算:

  • 采样大小:一个采样用多少bit存放,常用的是16bit
  • 采样率:采样频率,常用:8k、16k、32k、44.1k、48k
  • 声道数:单声道、双声道、多声道
  • PCM音频流的码率 = 采样率*采样大小*声道数
  • eg:采样率为44.1kHz,采样大小为16bit,双声道的PCM编码的WAV文件,码率为44.1k*16*2=1411.2kb/s
  • wav格式:音频原始数据格式pcm + wav头部,可认为wav也是音频原始数据,just对pcm做了简单的封装

音频压缩基本概念:

  • 音频压缩技术是在保证信号在听觉方面不产生失真的前提下,对音频数据信号进行尽可能大的压缩
  • 压缩的主要办法是去除采集到的音频冗余信息。所谓冗余信息包括人耳听觉范围外的音频信号<人耳听觉范围:20hz~20000hz>以及被遮蔽掉的音频信号。
  • 信号的遮蔽可以分为频域遮蔽和时域遮蔽

常见的编码器介绍:

  • 常见的音频编码器包括OPUS、AAC、Ogg、Speex、iLBC、AMR、G.711等
  • 其中,AAC在直播系统中应用的比较广泛;OPUS是较新的音频编码器,WebRtc默认使用OPUS
  • 网上测评结果:OPUS > AAC > Ogg
TODO :音频编码具体是怎么做的、MP3是怎么做的封装
 

音频重采样:

 
posted @ 2024-07-12 18:16  lepeCoder  阅读(11)  评论(0编辑  收藏  举报