2012-08-16 13 views

cevap

42

Wav kapsayıcısı, ham PCM verilerine basit bir başlık ekler. Başlık, biçimi, örnek oranını ve kanal sayısını içerir. Ham PCM verileri bu bilgiyi içermediğinden, komut satırında belirtmeniz gerekecektir. Seçenekler, uygulandıkları dosyadan önce belirtilir, böylece giriş dosyasından önceki seçenekler, girdi dosyasının biçimini belirtmek için kullanılabilir ve giriş dosyasından sonraki seçenekler ve çıktı dosyasının istenen çıktı biçimini belirtmek için kullanılabilir. dosya. Aynı bit/numune, örnek oranı ve çıktı dosyasındaki kanal sayısını istiyorsanız, bu durumda herhangi bir çıkış seçeneğine ihtiyacınız yoktur; wav konteyner formatı dosya uzantısı tarafından zaten belirtilmiştir.

Örnek WAV ham PCM dönüştürmek için:

ffmpeg -f s16le -ar 44.1k -ac 2 -i file.pcm file.wav 
  • -f s16le ... 16 bit küçük endian numuneleri
  • -ar 44.1k
  • imzalı ... örnek oranı 44,1
  • -ac 2 ... 2 kanallı (stereo)
  • -i file.pcm… giriş dosyası
  • file.wav ... çıkış dosyası
+1

Ters (PCM'den WAV'a) işlem nedir? –

+2

@ mustafa.yavuz: Bu * PCM'den WAV'a işlemidir. – bos

+1

@bos, sanırım @ mustafa.yavuz tersini soruyordu (WAV'dan PCM'ye). O zaman özel bir şey değil, sadece 'ffmpeg -i file.wav file.pcm' dönüşümü yapmak için gerekli olan tüm bilgiler wav dosyasının başlığındadır. – neevek

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

RAW veri formatı ile dikkat

-f U8 8 bit, s16 imzalanması imzasız olduğu durumda sadece başkaları da vardır

$ 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

Aşağıdaki kod çalışmalıdır:

ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav 
İlgili konular