实例分析

1.  在网上下载wav的音频文件,使用mediainfo显示该音频文件的详细信息。

root@test:~$ mediainfo ~/Download/test.wav

General

Complete name : /home/test/Download/test.wav

Format : Wave

File size : 44.2 MiB

Duration : 4mn 22s

Overall bit rate mode : Constant

Overall bit rate : 1 411 Kbps

Audio

ID : 0

Format : PCM

Format settings, Endianness : Little

Codec ID : 1

Duration : 4mn 22s

Bit rate mode : Constant

Bit rate : 1 411.2 Kbps

Channel(s) : 2 channels

Sampling rate : 44.1 KHz

Bit depth : 16 bits

Stream size : 44.2 MiB (100%)2.  使用vim使用十六进制打开该文件

1 0000000: 5249 4646 741d c302 5741 5645 666d 7420 RIFFt...WAVEfmt

2 0000010: 1000 0000 0100 0200 44ac 0000 10b1 0200 ........D.......

3 0000020: 0400 1000 6461 7461 501d c302 0100 0000 ....dataP.......

4 0000030: ffff 0000 0000 0000 0000 0100 0000 ffff ................

5 0000040: 0000 0100 0000 ffff 0000 0000 ffff 0100 ................

6 0000050: 0200 ffff fdff 0100 0300 ffff ffff 0200 ................

7 0000060: 0000 feff 0100 0200 ffff feff 0100 0200 ................

8 0000070: ffff ffff 0100 0000 ffff 0100 0000 ffff ................3.   分析上述的数据

"

52 49 46 46"     对应的Ascii码字符为"RIFF"。

"

74 1d c3 02"     对应的就是ChunkSize,对应的十六进制是:0x2c31d74=46341492。那整个wav文件的大小就为:  46341492+8=46341500。将此值转化为MB位单位: 44.2MB,可以验证上述使用mediainfo的信息。

"

57 41 56 45"     对应的Ascii码字符为"WAVE"。

"

66 6d 74 20"     对应的Ascii码字符为"fmt"。

"

10 00 00 00"     四字节对应的是该音频的编码方式,通常为16,代表PCM编码方式。也就是十六进制0x10。

"

01 00"               对应为1,代表PCM编码方式。

"

02 00"               通道个数,通道数为2,验证上述mediainfo的信息。

"

44 ac 00 00"     采用频率,转化为十六进制为:  0xac44=44100=44.1KHz

"

10 b1 02 00"     每秒所需的字节数,转化为十六进制为:  0x2b110=176400。通过此值可以计算该音频的时长:  46341500/17600=4.37。0.37*60=22.2,则该音频的时长为4mn22s。

"

04 00"               数据对齐单位。

"

10 00"               采样位数,等于0x10=16。

"

64 61 74 61"     对应的Ascill码字符为"data"。

"

50 1d c3 02"     对应该音频的raw数据的大小,转化为十六进制为0x2c31d50=46341456,此值等于wav_size-44=46341500-44。

linux 音频文件格式,Linux音频驱动-WAV文件格式分析相关推荐

  1. C语言解析wav文件格式

    目录 C语言解析wav文件 1.wav文件的二进制格式解析 1.1 RIFF chunk(资源互换文件格式块) 1.2 第一个子块fmt(描述数据子块中声音信息的格式) 1.3 第二个子块data(附 ...

  2. AVI文件格式简介与WAV文件分析

    AVI文件格式简介与WAV文件分析 AVI文件格式(回答问题) 所有AVI文件至少包含2个必须的LIST Chunk和一个索引Chunk Chunk: LIST Chunk: 小端:数据的低位保存在内 ...

  3. 音频wav文件格式分析

    一.音频文件 ​ /usr/share/sounds/deepin/stereo/desktop-login.wav 二.文件信息 syli@syli-PC:~/work/repo/Demo/pa$ ...

  4. linux音频自动转码,使用SoundConverter在Linux系统下批量音频转码的方法

    以下教你在 Linux 操作系统下批量音频转码,只需要下载并安装 SoundConverter 即可,它的使用方法非常的简单,下面会做一说明. 背景 时下最流行的音频压缩格式当然是 MP3 了,目前主 ...

  5. Linux 使用ffmpeg修改和压缩视频文件格式

    Linux 使用ffmpeg修改和压缩视频文件格式 1.安装 ffmpeg 2. 使用ffmpeg修改和压缩视频文件格式 这里使用的ffmpeg是使用命令行进行修改和压缩视频文件格式. 我们使用的操作 ...

  6. linux alsa 音频管理,在Linux上的高级音频控制

    Linux音频控制与Linux音频系统结构一样混乱. 长篇小说,经过多年的发展,默认的声音控制工具看起来像这样: 设置音量级别的默认和唯一选项可能对于大多数用户来说是足够的,但是当您想要设置特定音频级 ...

  7. linux的静态编译elf无法调试,[翻译]自己动手编写一个Linux调试器系列之4 ELF文件格式与DWARF调试格式 by lantie@15PB...

    自己动手编写一个Linux调试器系列之4 ELF文件格式与DWARF调试格式 by lantie@15PB 在上一节中,你已经听说了DWARF调试格式,它是程序的调试信息,是一种可以更好理解源码的方式 ...

  8. Linux下优秀的音频编辑软件

    不论您是一个音乐爱好者或只是一个要记录您导师的讲话的学生,您都需要录制音频和编辑音频.长久以来这样的工作都要靠Macintosh,如今那个时代已经过去,现在Linux也可以胜任这些工作了.简而言之,这 ...

  9. android 录音amr格式转换,android – 以AMR文件格式录制音频

    我想以AMR文件格式录制音频.我目前正在使用波纹管代码来录制音频: outputFile = Environment.getExternalStorageDirectory().getAbsolute ...

最新文章

  1. ansys大变形开关要不要打开_ANSYS不收敛问题的解决办法
  2. 通过容器提交镜像(docker commit)以及推送镜像(docker push)笔记
  3. python3-Python3 数字(Number)
  4. css布局左右2边固定,中间自适应
  5. 原创-互联网技术图谱
  6. C语言程序程序设计—数组
  7. IOS15给UICollection添加测试数字
  8. 关于计算机的英语作文九年级,实用的九年级英语作文合集6篇
  9. php恒等符,php学习笔记(三)操作符与控制结构
  10. source:读取文件 “/etc/profile” 时发生错误解决办法
  11. 关于瑞萨RH850中断的异常处理函数地址Exception Handler Address的理解
  12. 等价类划分法设计用例(超详细)
  13. STM32F401标准固件库配置
  14. java事件监听学习——通过键盘方向键控制小球移动
  15. 电机开环控制与闭环控制
  16. 海尔全球十一连冠背后: 生态时代的无限游戏
  17. 爬取腾讯视频评论——以《三生三世,十里桃花》为例
  18. 【再学Tensorflow2】TensorFlow2的建模流程:Titanic生存预测
  19. Exchange2003一些基础问题(转)
  20. 将word试卷匹配转换为结构化表格

热门文章

  1. 13 服务:愿意为您效劳
  2. 押对信息流,百度站上全新起点
  3. winhex改宽高和伪加密
  4. 移动直播app软件直播平台怎么创建
  5. 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛L
  6. kalibr标定realsense鱼眼相机
  7. Curl学习日记2 - 在Windows CMD命令行中使用Curl
  8. Error:Execution failed for task ':xst:process开发环境DebugResources'.
  9. MTK 开发流程和开发环境
  10. http proxy 代理