ffmpeg能否将原始PCM音频转换为WAV格式?

51

我可以将wav文件转换为pcm格式

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

我该如何撤销这个操作?


你应该能够使用-acodec copy,对吧? - rogerdpack
4个回答

105

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.1kHz
  • -ac 2 … 表示音频通道数为2(立体声)
  • -i file.pcm … 表示输入文件为file.pcm
  • file.wav … 表示输出文件为file.wav

2
反向操作(PCM转WAV)怎么样? - mustafa.yavuz
7
这就是 PCM 转 WAV 的操作。 - bos
3
@bos,我猜@mustafa.yavuz是在询问WAV转PCM的反向过程。那么很简单,只需要运行命令ffmpeg -i file.wav file.pcm就可以了,因为进行转换所需的所有信息都在WAV文件头中。 - neevek
我在-f参数上遇到了问题。尝试使用来自ffmpeg -sample_fmts的一个值。正确的值如barney的答案所述。 - Pablo H

15

注意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

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

-2

以下代码应该可以正常工作:

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

7
这个回答是@olegog在上面的回答的完全复制。 - M.T

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