ffmpeg可以将音频转换为原始PCM格式吗?如果可以,怎么做?

89

目前我正在使用ffmpeg成功地将FLV/Speex转换为WAV/pcm_s16le,但现在我需要输出格式为RAW,即PCM有符号的16位小端字节序,没有WAV头部。我尝试了以下命令:

ffmpeg -y -i input.flv -vn -acodec pcm_s16le output.raw

但是 ffmpeg 的响应是:

Unable to find a suitable output format for 'output.raw'

我还尝试使用output.pcmoutput作为输出文件名,但结果相同。

我也尝试了-f标志来指定原始格式,但结果是:

Unknown input or output format: raw

使用FFmpeg能实现这个吗?如果可以,具体怎么做呢?

2个回答

130

试试这个:

ffmpeg -i input.flv -f s16le -acodec pcm_s16le output.raw

您可以通过运行以下命令来获取这些选项:

ffmpeg -formats

有关详细信息,请参见https://trac.ffmpeg.org/wiki/audio%20types


23
对于跟随者,使用以下命令:ffmpeg -i lame1.mp3 -acodec pcm_s16le yo.wav 可以将文件转换成带有WAV头部的wav格式。 - rogerdpack
2
对于那些卡在“无法找到适合 'output.raw' 的输出格式”的人,请注意,对于FFmpeg来说,参数的顺序非常重要,因此您必须将 -i 参数保留在此处作为第一个参数。 - Arto Bendiken
1
对我来说,在编解码器后面加上“-f s16le”是有效的。 - Hashim Aziz
1
如果我添加-map 0:a以从输入编码所有音频并将其更改为mkv,则会出现错误...编码所有音轨从输入到pcm的命令是什么? - Freedo

43

mp4文件转换为pcm

ffmpeg -y  -i input.mp4  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.pcm

您也可以使用它将 mp3 转换为 pcm

ffmpeg -y  -i input.mp3  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.pcm

关键参数的意思是:

-f s16le … PCM signed 16-bit little-endian samples

-ac 1 … 1 channel (mono)

-ar 16000 … sample rate 16000Hz

1
如何将mp3、m4a、aac文件转换为WAV A-law、8000Hz、64Kbps、单声道? - Kiquenet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接