ffmpeg可以将音频从原始PCM转换为WAV吗?

xXx*_*xXx 32 audio ffmpeg wav pcm

我可以将wav文件转换为pcm

ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm
Run Code Online (Sandbox Code Playgroud)

我该如何恢复此操作?

mar*_*k4o 59

wav容器只是为原始PCM数据添加了一个简单的标题.标题包括格式,采样率和通道数.由于原始PCM数据不包含此信息,因此您需要在命令行中指定它.选项在它们应用的文件之前指定,因此输入文件之前的选项可用于指定输入文件的格式,输入文件之后和输出文件之前的选项可用于指定所需的输出格式文件.如果您想要输出文件中相同的位/采样,采样率和通道数,那么在这种情况下您不需要任何输出选项; wav容器格式已由文件扩展名指示.

将原始PCM转换为WAV的示例:

ffmpeg -f s16le -ar 44.1k -ac 2 -i file.pcm file.wav
Run Code Online (Sandbox Code Playgroud)
  • -f s16le ...签名的16位小端序样本
  • -ar 44.1k ...采样率44.1kHz
  • -ac 2 ... 2声道(立体声)
  • -i file.pcm … 输入文件
  • file.wav … 输出文件

  • @ mustafa.yavuz:这*是PCM-to-WAV操作. (3认同)
  • 反向(PCM到WAV)操作怎么样? (2认同)
  • @bos,我猜@ mustafa.yavuz正在反向询问(WAV到PCM).然后没有什么特别的,只需`ffmpeg -i file.wav file.pcm`即可,因为进行转换所需的所有信息都在wav文件的标题中. (2认同)

小智 6

ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav
Run Code Online (Sandbox Code Playgroud)


bar*_*ney 5

注意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
Run Code Online (Sandbox Code Playgroud)