关注IOS、Android网络、音视频编解码、特效、Neon算法优化,DSP

(1)音频格式:典型WAV

封装格式是每个音频文件必不可少的组成部分之一,它给我们提供了以下参考信息。音频文件类型、编解码方法、单双声道、采样深度、采样率、量化位数、音频文件大小、长度。下面首先来分析一下经典的wav音频的封装格式。个人精力有限不可能把每种音视频格式都一一解析,所以这里分别挑选了音频:Wav,视频Mp4两种多媒体文件格式介绍:

下面我们对每一个字段进行详细的分析。

整个音频文件包括三个主要部分:

(1)文件头描述字段

(2)数据头字段

(3)数据字段

(1)文件头描述字段:

1.1 Chunk ID:“RIFF”标志位。占用4个字节。数据类型char,偏移地址0x00。存储方式:大端模式

我们任意打开一个wav音频文件:

利用十六进制到ASCII转换工具:

刚好是RIFF

1.2 Chunk Size:文件大小 。占用4个字节。数据类型long int,偏移地址0x04。存储方式:小端模式

首先要把大小端调整一下:

0035E024. 将其转换为十进制:3530788

总文件大小=3530788+4(RIFF4个字节)+4(Chunk Size) 4个字节。

总文件大小=3530796 Byte

我们对比一下:

1.3 Format:文件标志位。占用4个字节。数据类型char,偏移地址0x08。存储方式:大端模式。

对应的英文字母:WAVE

(2)数据头字段

2.1 Subchunk1 ID:“FMT”标志位。占用4个字节。数据类型char,偏移地址0x0c。存储方式:大端模式。

2.2Subchunk1 Size:过渡字节。占用4个字节。数据类型int,偏移地址0x10。存储方式:小端模式。

2.3Audio Format:声音格式。占用2个字节。数据类型int,偏移地址0x14。存储方式:小端模式.

01表示pcm格式。当然,模拟信号转化为数字信号可以有不同的格式。比如常用的PCM、ACM、LAW

2.4Num Channels:声道个数。占用2个字节。数据类型int,偏移地址0x16。存储方式:小端模式。02 00 。对应的2个通道

2.5 Sample Rate:采样率。占用4个字节。数据类型int,偏移地址0x18。存储方式:小端模式.

0000AC44-》44100 采样速率。

2.6 Byte Rate:音频传输速率。占用4个字节。数据类型long int,偏移地址0x1c。存储方式:小端模式

音频传输速率:176000 176KB

其实这个根据上面的参数是能计算出来的。

音频传输速率(每秒传输的字节数)=采样率(每秒采样个数)*通道个数*每个采样点的字节数(每个采样点16位,占2个字节)

这个参数什么作用呢?它直接决定播放这种音频文件需要多大的带宽。

带宽:带宽指单位时间能通过链路的数据量。通常以bps来表示

所以,如果播放这个音频,大约需要 1.375M 带宽以上,才能直播音频。否则只能缓冲来播放了。实际上一般不用WAV,都用AAC等压缩率高的音频文件格式。

2.7 Block Align:数据块调整。占用2个字节。数据类型int,偏移地址0x20。存储方式:小端模式

2.8 Bits perSample:每个样本中数据位数。占用2个字节。数据类型int,偏移地址0x22。存储方式:小端模式

10 00这个是啥意思呢?通俗理解就是每个采样点所占的位数。这里是十六。说明44100的采样点,每个点是16个bit的。

(3)数据字段

3.1 Subchunk2 ID:“data”标识符。占用4个字节。数据类型char,偏移地址0x24。存储方式:大端模式

3.1 Subchunk2 Size:音频文件长度。占用4个字节。数据类型long int,偏移地址0x28。存储方式:小端模式

尝到你和你在一起的快乐,你是唯一能让我尝到酸甜苦辣的人。

关注IOS、Android网络、音视频编解码、特效、Neon算法优化,DSP

相关文章:

你感兴趣的文章:

标签云: