2011-01-31 2 views
39

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

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

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

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

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

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

Unknown input or output format: raw 

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

ответ

67

Дайте этот выстрел:

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

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

ffmpeg -formats 

См https://trac.ffmpeg.org/wiki/audio%20types подробности

+0

Это билет, спасибо! –

+15

для подписчиков, ffmpeg -i lame1.mp3 -acodec pcm_s16le yo.wav преобразует его в wav * с * заголовками WAV. – rogerdpack

+0

Для тех, кто застрял на 'Невозможно найти подходящий формат вывода для 'output.raw'', обратите внимание, что порядок аргументов является значимым для FFmpeg, и поэтому вы должны оставить здесь аргумент -i' в качестве первого аргумента. –

1

конвертировать mp4 файл в РСМ

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

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

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

ключевых пунктов означает:

-f s16le … signed 16-bit little endian samples 

-ac 1 … 1 channels (stereo) 

-ar 16000 … sample rate 16000Hz