Может ли ffmpeg конвертировать аудио из raw PCM в WAV?
Я могу конвертировать wav-файл в pcm
ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm
Как я могу отменить эту операцию?
4 ответов
контейнер wav просто добавляет простой заголовок к необработанным данным PCM. Заголовок включает формат, частоту дискретизации и количество каналов. Поскольку необработанные данные PCM не включают эту информацию, ее необходимо указать в командной строке. Параметры задаются перед файлом, к которому они применяются, поэтому параметры перед входным файлом могут использоваться для указания формата входного файла, а параметры после входного файла и перед выходным файлом могут использоваться для указания желаемого формата выходной файл. Если вам нужны те же бит/образец, частота дискретизации и количество каналов в выходном файле, то в этом случае вам не нужны никакие параметры вывода; формат контейнера wav уже указан расширением файла.
пример преобразования raw PCM в WAV:
ffmpeg -f s16le -ar 44.1k -ac 2 -i file.pcm file.wav
-
-f s16le
... 16-разрядный маленькие образцы прямым -
-ar 44.1k
... частота дискретизации 44,1 кГц -
-ac 2
... 2 канала (стерео) -
-i file.pcm
... входного файла -
file.wav
... выходной файл
будьте осторожны с форматом необработанных данных
- 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