Я могу преобразовать файл WAV в PCM
ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm
Как я могу отменить эту операцию?
Я могу преобразовать файл WAV в PCM
ffmpeg -i file.wav -f s16le -acodec pcm_s16le file.pcm
Как я могу отменить эту операцию?
Контейнер wav просто добавляет простой заголовок к необработанным данным PCM. Заголовок включает формат, частоту дискретизации и количество каналов. Поскольку необработанные данные PCM не включают эту информацию, вам нужно будет указать ее в командной строке. Параметры указываются перед файлом, к которому они применяются, поэтому параметры перед входным файлом могут использоваться для указания формата входного файла, а параметры после входного файла и перед выходным файлом могут использоваться для указания желаемого формата вывода. файл. Если вам нужны те же биты / выборка, частота дискретизации и количество каналов в выходном файле, то в этом случае вам не нужны никакие параметры вывода; формат контейнера wav уже обозначен расширением файла.
Пример преобразования необработанного 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
… выходной файлffmpeg -i file.wav file.pcm
, поскольку вся информация, необходимая для преобразования, находится в заголовке файла wav.
- person neevek; 13.04.2016
Будьте осторожны с форматом данных 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
Код ниже должен работать:
ffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav