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

Dav*_*est 62 flv ffmpeg pcm

我目前正在使用ffmpeg将FLV/Speex成功转换为WAV/pcm_s16le.但是,我现在需要输出格式为RAW,即PCM签名的16位小端,没有WAV头.我尝试了以下方法:

ffmpeg -y -i input.flv -vn -acodec pcm_s16le output.raw
Run Code Online (Sandbox Code Playgroud)

但ffmpeg回应:

Unable to find a suitable output format for 'output.raw'
Run Code Online (Sandbox Code Playgroud)

我也尝试使用'output.pcm'和'output'作为输出文件名,结果相同.

我也尝试了ffmpeg标志来指定原始格式,但这给出了:

Unknown input or output format: raw
Run Code Online (Sandbox Code Playgroud)

这可能与FFmpeg一起使用吗?如果是这样,怎么样?

Chr*_*aas 89

试一试:

ffmpeg -i input.flv -f s16le -acodec pcm_s16le output.raw
Run Code Online (Sandbox Code Playgroud)

您可以通过运行以下方式获取这些选

ffmpeg -formats
Run Code Online (Sandbox Code Playgroud)

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

  • 对于粉丝,ffmpeg -i lame1.mp3 -acodec pcm_s16le yo.wav将其转换为带有*WAV标题的wav*. (16认同)
  • 对于那些陷入“无法为 'output.raw' 找到合适的输出格式”的人,请注意,参数的顺序对于 FFmpeg 很重要,因此您必须将此处的“-i”参数保留为第一个参数。 (2认同)

Jay*_*llo 8

将mp4文件转换为pcm

ffmpeg -y  -i input.mp4  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.pcm
Run Code Online (Sandbox Code Playgroud)

你也可以用它来将mp3转换成pcm

ffmpeg -y  -i input.mp3  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.pcm
Run Code Online (Sandbox Code Playgroud)

关键的意思是:

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

-ac 1 … 1 channel (mono)

-ar 16000 … sample rate 16000Hz
Run Code Online (Sandbox Code Playgroud)

  • 我很感谢您花时间解释参数含义。它让我能够做我需要做的事情。 (6认同)