问题标签 [amr]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1249 浏览

java - 从 3GP 文件中提取 AMR 数据

我在从.3gp文件中提取原始 AMR 音频帧时遇到了一些问题。我点击了链接:“ http://android.amberfog.com/?p=181 ”,但不是“mdat”框类型,而是“moov”。我在某处读到“moov”框和“mdat”框位置因设备而异。有谁知道如何正确跳过.3gp标题并提取原始 AMR 数据?下面是一个代码片段:

0 投票
1 回答
2089 浏览

android - Android MediaCodec 3gpp 编码器输出缓冲区包含不正确的字节

我正在尝试将来自 MIC 的音频流编码为 3gpp (AMR-NB)。问题是输出缓冲区包含奇怪的数据。代码和输出如下:

创建媒体编码器:

来自 MIC 的 PCM 数据似乎是正确的(存储到文件中,用 Audacity 收听)

读取编码字节(缓冲区,在线程中运行):

输出是:

我用谷歌搜索并没有找到任何帮助。关于 MediaCodec 使用的 Android 文档也不是很好 - 在 outputbuffer 上下文中使用 ByteBuffer.clear() 进行了大量试验和错误。

最好的问候,阿赫蒂。

0 投票
1 回答
4968 浏览

php - 流式传输为 html5 音频或将 .amr 转换为 .ogg

我想在我的服务器上流式传输 .amr 音频文件。经过几个小时的研究,我很清楚在 html5 音频的当前状态下这是不可行的。在这个令人失望的发现之后,我又花了几个小时寻找一种将 .amr 文件转换为 .ogg 的简单方法,结果同样令人失望。

我很震惊,经过 10 多年的使用,没有简单的方法可以播放/转换在此标准下编码的文件,但是有人可以帮我找到一个可用的解决方案吗?最接近的可行选项似乎是soxffmpeg。理想情况下,我正在寻找一组简洁的指令,用于直接从 php 将 .amr 转换为 .ogg,但使用命令行就可以了。

我即将深入研究使用这两个库的细节,但我想我会在这里发帖,希望一些善良的灵魂可以帮助启发其他人,因为时间有限,所以不想花一个下午来解开用例细节什么应该是一个简单的任务。如果其他人不发帖,我会自己回答问题。

以下是我发现的一些其他“答案”,这些“答案”让我在这里发帖:

如果您打算将此标记为“离题”或出于其他原因关闭问题,请考虑以下事项:

https://superuser.com/search?q=convert+.amr+to+.ogg上进行搜索,至少在上述链接之一中作为该问题的适当论坛进行了说明,(截至今天)结果为 4帖子,其中没有一个甚至远程解决了这个问题。

在我看来, SO Posting Guidelines完全符合这类问题。我很困惑为什么有人会关闭我搜索中出现的问题。我是一位非常有经验的开发人员,提出了一个与我正在做的开发工作直接相关的问题,并且被一个问题所阻止,我想提供一个解决方案来帮助其他开发人员被类似问题所困扰。

事实上,在我的搜索中没有任何结果可以让我免于进行数小时的研究,这一事实让我认为这是一个值得 SO 的问题。请帮助恢复我对这个网站的情绪,这是一个宝贵的资源,但由于许多此类毫无意义且看似不分青红皂白的帖子关闭,让我感到寒冷。

谢谢...

0 投票
1 回答
3461 浏览

wireshark - 使用 DTX 将 PCAP 转换为 AMR

我正在尝试将包含带有八位字节对齐的 AMR-WB 有效负载的 RTP 有效负载的 PCAP 转换为可播放的 AMR 文件。

关于https://www.rfc-editor.org/rfc/rfc4867#section-4中描述的 AMR 存储格式,SID 帧之间需要插入 NO_DATA (0x7C) 帧。这在使用 DTX(不连续传输)模式时尤其重要。

AMR Raw Output from Wireshark not play in player 中的问题描述了一种将单个 PCAP UDP 数据包转换为 AMR 的方法,但不考虑需要连接数据包或需要在 DTX 中的 SID 帧之后插入 NO_DATA 帧的整个数据包流模式。

我设法将它转换为使用 PCAP.net 解析每个数据包,现在想知道我的输出是否正确。不过,我找不到任何关于哪个音频播放器在 DTX 模式下支持 AMR-WB 的信息。

VLC 播放器在语音暂停时正确播放,但显示文件的总时间错误,当将其转换为 *.wav(使用 VLC)时,将不再有语音暂停。

我想使用一个显示声音频谱的工具来分析我的语音数据。不幸的是,大胆在演讲停顿中显示出响亮的刘海(见图)。因此,我不知道 Audacity 是不支持 DTX 还是我的输出损坏了?

如果您能提供帮助,那就太好了。

语音暂停中的大胆爆炸(SID+NO_DATA 帧)

这里是输出声音文件(只需使用十六进制编辑器并将其命名为 *.amr):

所以,

  1. 这是一个 Audacity 问题,因为它不解释 DTX 帧吗?哪个玩家能够正确播放它?

  2. 我的 AMR 文件有问题吗?

问候

0 投票
0 回答
822 浏览

android - 录音 AMR

我需要从 MIC 获取 priodic 通知并获取采样幅度的 RMS,我目前正在使用 AudioRecord 将声音保存为 WAV 格式(如此)。但这在文件大小方面非常无效,是否可以将 pcm 数据保存为 amr 格式的文件?

参考将非常有用...

顺便说一句,我试着用 MediaRecorder 来做,但是当它被查询少于大约每秒 32 次时,getMaxAmplitude 似乎没有按预期工作(即使在嘈杂的房间里也会返回很多零)。有没有办法遇到这个?或者有没有办法从 AudioRecord 获取 priodic 通知并让 MediaRecorder 同时保存 amr 文件?

还有其他建议吗?

0 投票
2 回答
2536 浏览

c#-4.0 - 如何使用 c#.net 解码 amr 文件

我需要将 amr 格式解码为 pcm 格式,然后使用 c#.net 将其转换为 mp3。但我几乎找不到任何图书馆这样做。使用 NAudio 似乎是不可能的。是否有任何基于 c# 的开源库可用于解码此格式文件?目前我正在使用 Windows Server 2012(64 位)。

音频代码:

0 投票
1 回答
2813 浏览

c#-4.0 - 如何使用 C# 将 amr 文件转换为 mp3

我正在使用 NAudio MFT 将不同的音频格式转换为 MP3。现在我想使用 Naudio MFT 将 amr 文件转换为 MP3。但是,当我将 amr 文件作为 MFT 的输入时,它抛出了以下异常“来自 HRESULT 的异常:0xC00D36C4”。有什么办法可以做到这一点?

我的 C# 代码:

我正在使用 Windows Server 2012 64 位平台。

提前致谢。

0 投票
0 回答
267 浏览

codec - 如何将 AMRnb 编解码器添加到 pjsip 和 sipek?

我想将 AMR nb 编解码器添加到 pjsip。我在vs2012中从它的站点下载了pjsip项目,并且我在vs2012中有一个amrNB项目,但是如何将此项目添加到pjsip?

我需要 rtpmap=122 的 amrnb。当我按照步骤操作时,将 rtpmap=105 的 AMR 添加到我的项目中,但我需要 rtpmap=122。

0 投票
0 回答
231 浏览

c++ - 查找 AMR 静默数据包

我在一个实时项目中使用 opencoreamr 库。我看到该库具有一种 VAD 功能,可以使噪声数据包静音。我想区分噪声数据包和解码为静音数据包的语音数据包。我该怎么做这样做?如何区分 AMR 静默数据包(以便不处理它们)?

0 投票
0 回答
327 浏览

ruby-on-rails - 在 Ruby on Rails 中将 .amr 文件转换为 .mp3

如何将Base64编码字符串(基本上是从 android 应用程序发送的 .amr 媒体文件)转换为 ruby​​ 中的 .mp3 文件。