能否FFmpeg的转换音频从原材料PCM为WAV?(Can ffmpeg convert audio

2019-06-27 02:21发布

我可以转换WAV文件为PCM

ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm

我怎样才能恢复这个操作?

Answer 1:

所述WAV容器只是增加了一个简单包头加到原始PCM数据。 标题包括格式,采样率,和通道的数量。 由于原始PCM数据不包括这一信息,你需要指定它的命令行上。 选项它们适用于该文件之前被指定,所以输入文件之前选择可被用来指定输入文件的格式,并且输入文件之后和输出文件之前选择可被用于指定输出的所希望的格式文件。 如果你想在同一比特/采样,采样率,并且在输出文件,那么你就不需要在这种情况下,任何输出选项通道数; wav的容器格式已经被文件扩展名表示。

例如,以原始的PCM转换成WAV:

ffmpeg -f s16le -ar 44.1k -ac 2 -i file.pcm file.wav
  • -f s16le ...符号16位小端样品
  • -ar 44.1k ...采样率44.1
  • -ac 2 ... 2通道(立体声)
  • -i file.pcm ...输入文件
  • file.wav ...输出文件


Answer 2:

ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav


Answer 3:

小心RAW数据格式

-f U8是无符号的8位S16签署以防万一还有其他

 $ ffmpeg -formats | grep PCM
 DE alaw            PCM A-law
 DE f32be           PCM 32-bit floating-point big-endian
 DE f32le           PCM 32-bit floating-point little-endian
 DE f64be           PCM 64-bit floating-point big-endian
 DE f64le           PCM 64-bit floating-point little-endian
 DE mulaw           PCM mu-law
 DE s16be           PCM signed 16-bit big-endian
 DE s16le           PCM signed 16-bit little-endian
 DE s24be           PCM signed 24-bit big-endian
 DE s24le           PCM signed 24-bit little-endian
 DE s32be           PCM signed 32-bit big-endian
 DE s32le           PCM signed 32-bit little-endian
 DE s8              PCM signed 8-bit
 DE u16be           PCM unsigned 16-bit big-endian
 DE u16le           PCM unsigned 16-bit little-endian
 DE u24be           PCM unsigned 24-bit big-endian
 DE u24le           PCM unsigned 24-bit little-endian
 DE u32be           PCM unsigned 32-bit big-endian
 DE u32le           PCM unsigned 32-bit little-endian
 DE u8              PCM unsigned 8-bit


Answer 4:

下面的代码应该工作:

ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav


文章来源: Can ffmpeg convert audio from raw PCM to WAV?