ffmpeg可以将音频转换为原始PCM吗?如果是这样,怎么办?


71

我目前正在成功ffmpeg转换FLV/SpeexWAV/pcm_s16le。但是,我现在需要输出格式为RAW,即没有WAV标头的PCM有符号16位小字节序。我尝试了以下方法:

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有可能吗?如果是这样,怎么办?

Answers:


102

试一下:

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

您可以通过运行以下选项获得这些选项:

ffmpeg -formats

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


18
对于关注者,ffmpeg -i lame1.mp3 -acodec pcm_s16le yo.wav使用WAV标头将其转换为wav 。
rogerdpack 2012年

1
对于那些坚持不懈的人Unable to find a suitable output format for 'output.raw',请注意参数的顺序对于FFmpeg很重要,因此您必须在-i此处将参数保留为第一个参数。
Arto Bendiken

对我来说,放-f s16le编解码器是行之有效的。
Prometheus

如果我添加-map 0:a了对输入中所有音频进行编码并将其更改为mkv的操作,则会出现错误...将所有输入中的音频轨道编码为pcm的命令是什么?
Freedo

20

mp4文件转换为pcm

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

您也可以使用它来转换mp3pcm

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

4
感谢您花时间来解释参数的含义。它使我能够做我需要做的事情。
bballdave025 '20
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.