我可以转换WAV文件为PCM
ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm
我怎样才能恢复这个操作?
我可以转换WAV文件为PCM
ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm
我怎样才能恢复这个操作?
所述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
...输出文件 ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav
小心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
下面的代码应该工作:
ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav