Может ли ffmpeg конвертировать аудио в необработанный PCM? Если да, то как?

В настоящее время я использую ffmpeg для успешного преобразования FLV/Speex в WAV/pcm_s16le. Однако теперь мне нужно, чтобы выходной формат был RAW, то есть 16-битным прямым порядком байтов, подписанным PCM, без заголовка WAV. Я пробовал следующее:

ffmpeg -y -i input.flv -vn -acodec pcm_s16le output.raw

Но ffmpeg отвечает:

Unable to find a suitable output format for 'output.raw'

Я также попытался использовать output.pcm и output в качестве имен выходных файлов с тем же результатом.

Я также пробовал использовать флаг -f для указания необработанного формата, но это дает:

Unknown input or output format: raw

Возможно ли это с FFmpeg? Если да, то как?


person David van Geest    schedule 31.01.2011    source источник


Ответы (2)


Попробуйте это:

ffmpeg -i input.flv -f s16le -acodec pcm_s16le output.raw

Вы можете получить эти параметры, запустив:

ffmpeg -formats

Подробнее см. https://trac.ffmpeg.org/wiki/audio%20types.

person Chris Haas    schedule 31.01.2011
comment
для подписчиков: ffmpeg -i lame1.mp3 -acodec pcm_s16le yo.wav преобразует его в wav с заголовками WAV. - person rogerdpack; 16.08.2012
comment
Тем, кто застрял на Unable to find a suitable output format for 'output.raw', обратите внимание, что порядок аргументов важен для FFmpeg, и, следовательно, вы должны оставить здесь аргумент -i в качестве первого аргумента. - person Arto Bendiken; 30.11.2017
comment
Для меня это сработало, если поставить -f s16le после кодека. - person Hashim Aziz; 27.02.2019
comment
Если я добавлю -map 0:a для кодирования всех аудио с ввода и изменю его на mkv, это даст ошибку ... какой будет команда для кодирования всех аудиодорожек от ввода до pcm? - person Freedo; 03.06.2019

конвертировать mp4 файл в pcm

ffmpeg -y  -i input.mp4  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.pcm

вы также можете использовать его для преобразования mp3 в pcm

ffmpeg -y  -i input.mp3  -acodec pcm_s16le -f s16le -ac 1 -ar 16000 output.pcm

ключевые параметры означают:

-f s16le … PCM signed 16-bit little-endian samples

-ac 1 … 1 channel (mono)

-ar 16000 … sample rate 16000Hz
person Jayhello    schedule 07.12.2017
comment
Я ценю время, которое вы потратили на объяснение значений параметров. Это позволило мне делать то, что мне нужно. - person bballdave025; 01.09.2020