Как записать звук с микрофона с помощью FFmpeg? Для использования этого метода надо установить по умолчанию (default) ту звуковую карту к которой подключен микрофон.

 


Способ с минимумом настроек (параметров, ключей)

Войди в папку куда хочешь сохранить записываемый аудио файл и выполни там следующую команду.

ffmpeg -f alsa -i default microfon-zvuk.mp3

Для остановки записи нажми клавишу q. Это команда запишет одно-канальный звук (типа моно) если ничего не меняли в других местах. Я думаю, что по умолчанию он пишет столько каналов, сколько придет.

Формат аудио файла .mp3 .wav .ogg

Указываешь просто нужный формат, например я .ogg использовал, но можно .mp3, .wav и т.п.


Указать длительность записи

Ключ -t и число после него это указание времени записи в секундах. По истечении времени запись остановиться автоматически.

ffmpeg -f alsa -i default -t 30 microfon-zvuk.mp3


Запись двухканального (стерео), одно-канального (моно) звука

Микрофоны на USB картах дают обычно один канал звука (наверное особенность микрофонов). Для двухканального звука (не знаю насколько это стерео) можно указать явно несколько каналов. Используем ключ -ac (audio chanel типа) и число, например 2. Если имеется программа Cadence, то можно открыть Catia и в ней направить микрофон на левый и правый вход сразу, тогда ключи можно не указывать (я так и делал раньше).

ffmpeg -f alsa -ac 2 -i default microfon-zvuk.mp3

Явно записать голос (или что еще на микрофон пишут) в один канал можно командой с ключом -ac 1

ffmpeg -f alsa -ac 1 -i default microfon-zvuk.mp3


Указание частоты дискретизации

Особо крутые звукозашисывальщики могут указать частоту дискретизации с помощью ключа -ar и далее число (значение частоты, например 41000). По умолчанию (по моим наблюдениям через программу MediaInfo) FFmpeg пишет звук с микрофона с частотой 48000Hz.

ffmpeg -f alsa -ac 2 -ar 44100 -i default microfon-zvuk.mp3


Установить звуковую карту по умолчанию (default)

Простой способ записать звук с микрофона c FFmpeg это использовать ключевое слово default. Оно указывает, что надо взять звуковую карту по умолчанию. Иначе нужно знать название карты или ее номер и т.д. Поэтому если задача просто тупо записать в один файл звук с микрофона то это простая команда самое лучшее решение для тех, кто пока, что не разбирается хорошо в звуковой системе Linux (или Windows, Mac, Android) и в программе FFmpeg.

Через графические программы настройки звука

Использовать для этого программы с графических интерфейсом GUI типа микшера или программы Cadence если это KXStudio или она была установлена. В общем какая то звуковая карта (аудио интерфейс) обычно установлен по умолчанию.

Через терминал

Выбрать звуковую карту по умолчанию можно через терминал, но я пока не знаю как и мне лень и боюсь накосячить в системе.


Исходная ситуация

Есть USB звуковая карта Focusrite Scarlett (2i4, 2i2) и микрофон (типа Scarlett Studio CM25) подключенные к ноутбуку Acer на операционной системе семейства Linux (Ubuntu) дистрибутив для музыкантов KXStudio.

Записываю видеуроки, скринкасты, видео с экрана. Звук нужно писать с микрофона в отдельную дорожку при помощи команды в FFmpeg. А звук приложений нужно писать в отдельные дорожки, желательно тоже с помощью простых команд FFmpeg. Потом в аудиоредакторе или видеоредакторе это все сводиться.

Подобным способом можно писать звук акустической гитары на микрофон или голоса например при сочинении или баловстве. А можно вместо микрофона подать на вход гитару.


Ссылки

https://trac.ffmpeg.org/wiki/Capture/