2012-08-16 62 views

答えて

42

wavコンテナは、単純なヘッダを生のPCMデータに追加するだけです。ヘッダーには、フォーマット、サンプルレート、およびチャンネル数が含まれます。未処理のPCMデータにはこの情報が含まれていないため、コマンドラインで指定する必要があります。オプションは適用するファイルの前に指定されているので、入力ファイルの前のオプションを使用して入力ファイルの形式を指定し、入力ファイルの後と出力ファイルの前のオプションを使用して、ファイル。この場合、出力ファイルに同じビット/サンプル、サンプルレート、およびチャンネル数が必要な場合は、出力オプションは必要ありません。 wavコンテナ形式は、ファイル拡張子によって既に示されています。

WAVに生PCMに変換する例:

ffmpeg -f s16le -ar 44.1k -ac 2 -i file.pcm file.wav 
  • -f s16leは... 2つのチャネル(ステレオ...サンプリングレート44.1kHzの
  • -ac 2 ... 16ビットリトルエンディアンサンプルを
  • -ar 44.1kを締結しました)
  • -i file.pcm ...入力ファイル
  • file.wav ...出力ファイル
+1

リバース(PCMからWAV)操作はどうですか? –

+2

@ mustafa.yavuz:これは* PCMからWAVへの操作です。 – bos

+1

@bos、私は@ mustafa.yavuzが逆(WAVからPCM)を求めていたと思う。変換を行うために必要なすべての情報がwavファイルのヘッダにあるので、特別なものはありません。単純に 'ffmpeg -i file.wav file.pcm'が行います。 – neevek

4
ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav 
3

は、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 
0

以下のコードは作業する必要があります:

ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav 
関連する問題