[✔️]音视频基础知识

简介: [✔️]音视频基础知识
int av_samples_alloc_array_and_samples(
    uint8_t ***audio_data, // 通道,data[0]代表左声道,data[1]代表右声道
    int *linesize, // 采样个数的最大大小字节空间
    int nb_channels,
    int nb_samples,
    enum AVSampleFormat sample_fmt, int align
);


采样频率 nb_samples


采样频率是指计算机单位时间内能够采集多少个信号样本,比如对于波形记录而言,此时采样频率可以是描述波形的质量标准。


采样频率越高,即采样的间隔时间越短,则在单位时间内计算机得到的样本数据就越多,对信号波形的表示也越精确。


Hz 是频率的单位,频率是指电脉冲,交流电波形,电磁波,声波和机械的振动周期循环时,1秒钟重复的次数。1Hz代表每秒钟周期震动1次,60Hz代表每秒周期震动60次。


对于一帧音频的采样个数,AAC固定一帧采样1024个,MP3格式则为1152。


采样位数


通常使用16bit(2字节),也就是2的16次方,共有65536个不同的度量值,这样采样位数越高,音频度量化的就越精细,音质同样也就越高


声道数量:channels


声道格式:channel_layout


对音频的声道格式进行转换的处理,例如立体声转换为单声道


声道指的是声音在录制时,在不同的空间位置采集的音频信号,一个声道就是一个音频信号。


声道 解释
单声道 只记录了一个音频信号
双声道 记录了2个音频信号
立体声 记录了左右2个音频信号,带有空间位置的双声道

如果只有一个麦克风在录制声音,但选择了立体声道,听起来还是单声道的效果,因为两个声道的数据是一样的,只有使用双传声器的麦克风或者2个麦克风同时录制,出来的效果才是立体声,


轨道


声音信号在磁盘上的存储空间,轨道数量≠声道数量


通道


用来描述信号的路径,声道一般针对音频,通道一般针对视频


采用精度


声音的范围


1 一帧音频的大小(字节)  = 通道数 x 采样个数 x 采样位数


音频帧是FLTP格式的PCM数据,


那么就是aac,所以一帧中包含1024个采样个数,并且是双声道的话,那么该音频帧包含的数据量是 2 x 1024 x 4 = 8192字节。


音频帧是AV_SAMPLE_FMT的PCM数据 那么采样位数是64位8字节,数据量为 2 x 1024 x 8 = 16384字节。


目录
相关文章
|
Unix Java Linux
[✔️]theora视频解码器
[✔️]theora视频解码器
126 0
|
openCL Go 图形学
[✔️]gDebugger使用心得
[✔️]gDebugger使用心得
245 0
|
API
[✔️]FFMpeg与视频的基础知识
[✔️]FFMpeg与视频的基础知识
102 0
|
缓存 API Android开发
[✔️]FFMpeg的音频处理
[✔️]FFMpeg的音频处理
165 0
|
Go 图形学
[✔️]使用renderdoc调试游戏
[✔️]使用renderdoc调试游戏
366 0
|
存储 内存技术
[✔️]FFMpeg视频处理
[✔️]FFMpeg视频处理
99 0
|
存储 编解码 Unix
[✔️]在cocos2dx中播放视频方案调研
[✔️]在cocos2dx中播放视频方案调研
158 0
|
存储 缓存 Android开发
[✔️]cocos2dx的CCFileUtils深度理解
[✔️]cocos2dx的CCFileUtils深度理解
207 0
|
编解码 IDE 编译器
[✔️]Qt的学习踩坑笔记
[✔️]Qt的学习踩坑笔记
139 0
|
编解码 Ubuntu Unix
[✔️]VLC编译
[✔️]VLC编译
187 0