将音频转换为 8 位签名 PCM

Posted

技术标签:

【中文标题】将音频转换为 8 位签名 PCM【英文标题】:Convert audio to 8-bit signed PCM 【发布时间】:2015-03-07 02:06:24 【问题描述】:

我有一个 .mp4 音频文件,我想使用 TMRpcm 库将其转换为 Arduino Uno 的 8-bit unsigned PCM 格式。

它也可以是一个.wav 文件。无论如何,我尝试了很多事情都无济于事。我得到的最接近的是使用 NIST Sphere 编解码器的 Audacity。我试图用FFmpeg 来做这件事,但它只支持demuxing NIST Sphere 文件。如何在 Mac OS X (10.10.2) 上将音频转换为这种格式?

【问题讨论】:

您想要的采样率是多少?位深和采样率是决定信息密度的两个主要因素 【参考方案1】:

avconv 是 ffmpeg 的一个分支……所以如果你愿意,可以使用 ffmpeg

avconv -i input.mp4 -ar 8000 -acodec pcm_u8 -ac 1 output.wav

WAV 是 PCM 编解码器的容器格式,因此如果您必须拥有 PCM,则进入二进制文件编辑器(wxHexEditor 是一个不错的编辑器)并删除前 44 个字节(其标题)那个WAV文件

所以上面给你每秒 8000 个样本和 8 位的位深度和单声道。

使用验证这一点

avprobe some_video_audio_file.wav

see bit depth listing available using avconv here

【讨论】:

【参考方案2】:

我意识到我正在尝试转换损坏的音频文件。 Audacity 正确转换了一个有效文件。

【讨论】:

以上是关于将音频转换为 8 位签名 PCM的主要内容,如果未能解决你的问题,请参考以下文章

在 C/C+ 中从 16 位线性 PCM 音频转换为 32 位浮点的最佳方法?

签名的 16 位 PCM 转换不起作用。为啥?

使用脚本将 RAW 音频数据转换为 WAV

怎么将8位的WAV声音文件转换为16位?

如何将 PCM 音频流转换为在线播放

如何将 PCM 音频样本流转换为音量?