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.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