web-dev-qa-db-ja.com

ffmpegはオーディオを生のPCMからWAVに変換できますか?

Wavファイルをpcmに変換できます

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

この操作を元に戻すにはどうすればよいですか?

32

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…出力ファイル
57
mark4o
ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav
6
olegog

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
5
barney

以下のコードが動作するはずです:

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