当前位置: 首页 > article >正文

音视频-WAV格式

1. WAV格式说明: 

2. 格式说明:

  • chunkId:通常是 “RIFF” 四个字节,用于标识文件类型。(wav文件格式表示)
  • chunkSize:表示整个文件除了chunkIdchunkSize这 8 个字节外的其余部分的大小。
  • Format:通常是 “WAVE” 四个字节,进一步标识是 WAVE 音频格式。
  • SubChunk1Id:一般是 “fmt”(注意最后有个空格),用于标识音频格式信息块。
  • SubChunk1Size:表示音频格式信息块的大小,常见值为 16 或 18 等 。
  • AudioFormat:音频格式类型,如 PCM 格式值为 1 。
  • NumChannels:声道数,单声道为 1,立体声为 2 。
  • SampleRate:采样率,如 44100Hz 表示每秒采样 44100 次。
  • ByteRate:每秒的数据字节数,ByteRate = SampleRate * NumChannels * (BitsPerSample / 8)
  • BlockAlign:每个采样点的字节数,BlockAlign = NumChannels * (BitsPerSample / 8)
  • BitsPerSample:每个采样点的位数,常见有 8 位、16 位等。(采样大小,位深)
  • subChunk2Id:通常是 “data”,标识音频数据块。
  • subChunk2Size:音频数据的大小。
  • data:存储实际的音频数据

3.为什么XXXId和Format使用的是大端字节序

在 WAV 文件格式中,xxxId(如chunkIdSubChunk1Id 、subChunk2Id )和Format采用大端字节序,主要有以下原因:

  • 兼容性与标准化:大端字节序也被称为网络字节序,在很多网络协议和跨平台的数据格式标准中广泛使用。WAV 作为一种较为通用的音频文件格式,这些标识性字段采用大端序便于不同系统和平台之间能以统一的方式识别文件的关键标识信息,保证兼容性。例如在网络传输音频文件时,不同设备可以快速准确识别文件类型标识。
  • 可读性与易解析:这些字段更多的是起到标识作用,采用大端序固定格式,开发者和解析工具能更容易、快速地判断文件结构和各部分的功能,提升文件解析的效率。

而其他描述音频具体参数(如 AudioFormat 、NumChannels 等)的子节序采用小端字节序,主要是考虑到与常见计算机硬件架构的匹配:

  • 硬件适配:在常见的 x86 等计算机硬件架构中,默认使用小端字节序。WAV 文件格式中这些参数数据采用小端序,在读取和处理音频参数时,能直接适配硬件的字节序,减少数据转换的开销,提高音频数据处理的速度和效率 。

http://www.kler.cn/a/569609.html

相关文章:

  • 【小羊肖恩】小羊杯 Round 2 C+K
  • 如何使用DeepSeek辅助准备面试
  • 第十三站:卷积神经网络(CNN)的优化
  • Elasticsearch 的分布式架构原理:通俗易懂版
  • Linux的OOM机制
  • Ubuntu 下 nginx-1.24.0 源码分析 - ngx_destroy_pool 函数
  • LSTM预测模型复现笔记和问题记录
  • 第10篇:文件IO与数据持久化(下)(JSON、二进制文件)
  • Junit框架缺点
  • 神经网络之词嵌入模型(基于torch api调用)
  • Vue3 中 defineOptions 学习指南
  • Docker-CE的部署、国内镜像加速
  • Redis(八):Redis分布式锁实现
  • 深入了解 K-Means 聚类算法:原理与应用
  • 介绍 torch-mlir 从 pytorch 生态到 mlir 生态
  • Android Binder 用法详解
  • 智能AI替代专家系统(ES)、决策支持系统(DSS)?
  • SpringDoc和Swagger使用
  • 深入理解并解析C++ stl::vector
  • MySQL 中如何查看 SQL 的执行计划?