Я могу преобразовать 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 уже указан расширением файла.
Пример преобразования 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
... выходной файлffmpeg -f s16le -ar 8000 -ac 2 -i out.pcm -ar 44100 -ac 2 out.wav
Будьте осторожны с форматом данных 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