amr是3gpp开发的语音编码规范,初衷是用在3g语音通信,但没想到3g是如此的昙花一现。不过amr被2g、4g都采用并发扬光大,高压缩比下提供清晰的语音,令amr傲视其他的编码格式。不仅如此,应运而生的amr语音文件,也为录音和网络语音传输提供了很低的payload。一直很好奇这个语音文件的格式是啥样滴。于是收集网络信息,发现原来amr文件的组织来如此简单,

文件头
语音帧 1
语音帧 2
…

而对于单声道的文件头只是#!AMR\n的ASCII码,宽带的是#!AMR-WB\n。然后每帧有一个简单的帧头。复杂一点的是amr数据比特的排布,细节都在参考文档rfc4867的5. AMR and AMR-WB Storage Format章节有详细描述,

只要记住

  1. 话音帧遵守octet对齐,
  2. octet内遵守 big endian(最高位存最前面的比特),
  3. 核心codec遵守3gpp的标准,

这三个原则,amr文件格式的阅读就没有困难了。

参考文档

3gpp ts26.101:
rfc4867:RTP Payload Format and File Storage Format for the Adaptive Multi-Rate (AMR) and Adaptive Multi-Rate Wideband (AMR-WB) Audio Codecs
AMR文件格式的解释
Conversion between AMR (Adaptive Multi-rate Codec) file formats

AMR文件怎么存储的相关推荐

  1. 网页上播放微信录音amr文件方案

    在最近的H5项目中,遇到了个棘手的问题. 项目中需要使用微信录音的JSSDK接口,录完音后上传到自己的服务器上.流程如图: 整个流程非常清晰,也十分顺利.但下载到网站服务器上的文件时amr格式的音频文 ...

  2. 「微信帐号amp;语音文件」结构分析-amr文件

    1.关于微信账号 这里提到的微信内部账号(UIN)有三种可能的结构:9位数.10位数.1个负号拼接10位数. UIN记录在/data/data/com.tencent.mm/shared_prefs/ ...

  3. js html保存json,如何在json文件中存储jQuery或javascript变量?

    我可以知道有没有机会将jquery变量保存在json文件中?提前致谢.如何在json文件中存储jQuery或javascript变量? 我: var image='/test/test.png'; 我 ...

  4. Android 文件的存储和加载

    Android 文件的存储和加载,主要用于请求网络中json文件的缓存,引入了一个简单的过期时间,供大家参考学习! 文件存储 1 private void saveLocal(String json, ...

  5. php长传文件到数据库,php上传文件并存储到mysql数据库的简单示例

    这篇文章主要为大家详细介绍了php上传文件并存储到mysql数据库的简单示例,具有一定的参考价值,可以用来参考一下. 对php上传文件并存储到mysql数据库感兴趣的小伙伴,下面一起跟随512笔记的小 ...

  6. 文件 云存储服务器配置,文件和存储服务器配置

    文件和存储服务器配置 内容精选 换一换 本课程主要针对openEuler操作系统工程师在基础运维工作,以文件共享服务器的搭建和运维为案例,讲解openEuler操作系统的基础知识,并培养基础运维操作能 ...

  7. 修改mysql文件的存储路径

    使用本地数据库时,常常会发生磁盘爆满变红的情况,特别是C盘,这时候我们希望将mysql本地数据库存储的文件移动到D盘或者E盘,下面是手动调整的办法: 1.关闭mysql服务: 左下角开始处输入&quo ...

  8. java 安卓下载文件_GitHub - Charay/downloadfile: 使用Retrofit2+Rxjava+Rxandroid+okhttp的方式下载文件并存储到sd卡指定目录...

    downloadfile 使用Retrofit2+Rxjava+Rxandroid+okhttp的方式下载文件并存储到sd卡指定目录 使用: gradle Step 1.在工程build.gradle ...

  9. 导入开源的文件云存储平台-Seafile

    1 理论基础 1.1 简介 Seafile 是一个开源的文件云存储平台,更注重于隐私保护和对团队文件协作的支持. Seafile 通过"资料库"来分类管理文件,每个资料库可单独同步 ...

  10. python文件、存储、压缩

    python文件.存储.压缩  回忆:在第九章又强调了"保留分隔符"这样的核心笔记,其实在上章已经解释了.其实就是为了不同系统之间文件结束符的统一性.就是\n\r, \n或者其他系 ...

最新文章

  1. linux基础篇-02,linux时间管理date hwclock cal 简述
  2. Swift反射API及其用法
  3. factorytalkview 卡 86_徕卡M党的街拍小贴士
  4. 用户画像标签维度_神策数据钟秉哲:一文了解用户标签画像,从洞察到突破
  5. C#中'??'符的使用
  6. python数据处理框架_python 最快 web 框架 Sanci 快速入门
  7. 本田与索尼宣布将成立合资企业 计划2025年开始销售电动汽车
  8. myelclipse Servers视图报错
  9. 如何部署WAR到tomcat?
  10. plc secs半导体通讯协议 PLC 与MES的SECS/GEM通讯方案
  11. web测试,APP测试和小程序测试特点
  12. 怎么删除服务器的ibd文件,mysql数据库ibd文件
  13. C# Word控件 文档保护
  14. [AHK]新浪实时股票数据接口
  15. 光滑曲线_光滑曲线可求长定理证明
  16. 【数字图像处理】特征提取轮廓特征对黑色素瘤恶性/良性分类
  17. [Golang]写文件的权限定义perm
  18. 邓号用计算机怎么输入,电脑上顿号怎么打出来
  19. Silverlight技术是什么
  20. 【末日时在做什么?有没有空?可以来拯救吗?】Scarborough Fair

热门文章

  1. 梯形公式预测校正matlab_鲁棒预测控制(Robust MPC)
  2. Nessus访问报错(Corrupt Database A corrupt database has been detected which prevents Nessus from........)
  3. Android resource compilation failed 一定能搞定的办法
  4. 守卫工厂智能 当SDN遇上智能制造
  5. 赛扬n5095处理器怎么样 英特尔n5095核显相当于什么水平
  6. androidStudio连接不上模拟器(夜神模拟器)
  7. 特斯拉model3中控屏怎么关_特斯拉Model 3为什么取消仪表盘?
  8. 阿里云网站备案基础知识-什么是网站备案
  9. AcWing 303 运输小猫
  10. 大道至简:数据库的终极未来