之前很多文章都写到编解码里了,以后的FFmpeg相关文章会直接写到"FFmpeg"类别中;
更多文章,可以参考FFmpeg官方网站https://ffmpeg.org/,文档 和 https://trac.ffmpeg.org/wiki
这里先说音频解码:
如:ffmpeg -i input.flv -f s16le -acodec pcm_s16le output.raw
from:https://trac.ffmpeg.org/wiki/audio%20types
FFmpeg can read various raw audio types (sample formats) and demux or mux them into different containers (formats). For example, you can read and write raw PCM audio into a WAV container.
Raw audio in FFmpeg can take several different "forms", i.e. sample formats. For instance:
You can see a list of supported sample formats by inspecting the ffmpeg -formats output:
$ 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
These represent all the built-in raw audio sample formats.
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 muxing into WAV files is pcm_s16le. You can change it by specifying the audio codec and using the WAV file extension:
ffmpeg -i input -c:a 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 format, but the raw one (as seen in the table above), e.g. s16le, and the appropriate audio codec:
ffmpeg -i input -f s16le -c:a pcm_s16le output.raw