| Version 4 (modified by , 11 years ago) ( diff ) |
|---|
Raw audio in FFmpeg can take several different "forms"
for instance:
- pcm_s16le PCM means "traditional wave like format" (raw bytes, basically). 16 means 16 bits per sample, "le" means "little endian", s means "signed", u would mean "unsigned"
You can see a list, by running a command like this on your own local box:
$ ffmpeg -formats | grep PCM ffmpeg version N-44123-g5d55830 Copyright (c) 2000-2012 the FFmpeg developers 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
Basically these represent all the raw audio type combination possibilities.
FFmpeg can take input of raw audio types by specifying the type on the command line. For instance, to convert a "raw" audio type to a ".wav" file:
ffmpeg -f pcm_s32le input_filename.raw output.wav
You can specify number of channels, etc. as well, ex:
ffmpeg -f u16le -ar 44100 -ac 1 -i input.raw output.wav
The default for encoding .wav files it uses is pcm_s16le, you can change it by specifying an "acodec" and using the .wav file extension:
ffmpeg -i input -acodec pcm_s32le output.wav
Which will create a .wav file containing audio with that codec (not a raw file) (there are also other containers that can contain raw audio packets, like pcm_bluray). If you want to create a raw file, don't use the ".wav" ending:
ffmpeg -i input -f s16le -acodec pcm_s16le output.raw


