我可以轉換WAV文件爲PCMffmpeg可以將音頻從原始PCM轉換爲WAV嗎?
ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm
我怎樣才能恢復這個操作?
我可以轉換WAV文件爲PCMffmpeg可以將音頻從原始PCM轉換爲WAV嗎?
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.1kHz的-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
你應該可以使用-acodec copy right? – rogerdpack 2014-04-14 16:35:48