LINUX.ORG.RU

Как в linux захватить звук с системного микшера?

 ,


1

3

Допустим, беру с вебки видео+звук

ffmpeg -f alsa -ac 1 -i hw:1 -i /dev/video2 out.mp4

hw:1 это микр вебки, hw:0 это системный микр оранж пая, но он по каким то причинам недоступен, да и фиг с ним. Интересует звук общего микшера на выходе. Как с него захватить?

★★★★★
Ответ на: комментарий от burato

Для того, что тебе надо, уж лучше поставить пульсу или джек, чем упражняться с конфигами альсы и ядрёными лупбэками. Там, вот, по ссылке Анона есть про весёлые route и multi плагины. А самое интересное начнётся, когда у тебя количество каналов источника будет отличаться от двух. Помнится, у меня так и не получилось что-то толковое сделать.

anonymous
()
Ответ на: комментарий от burato

А то я не знаю. Ты учти, что может быть так, что, например, в браузере не все кодеки будут воспроизводиться с малыми значениями буфера. Или не все программы для захвата смогут записывать из устройства. У твоей карты и лупбэка должны быть одинаковые настройки буферов. И сначала ты заворачиваешь устройства в dmix/dsnoop, а потом уже в multi и plug. Но это, повторюсь, будет работать только со стерео, ну может ещё моно, не помню уже. Если не жалко времени, то дерзай.

Но вот в пульсе, например, человеческие лупбэк-устройства присутствуют по умолчанию и нужно только выбрать одно при записи; а ещё ты можешь записывать из какой-то конкретной программы или даже выбирать программу, с которой писать звук, прямо во время записи. А если нужна минимальная задержка, то ставь джек, в котором хоть чёрта лысого можно скоммутировать. И времени для настройки эти программы практически не отнимают. Ну пробежишь глазами пару манов, написанных людьми для людей, в отличие от скудной «справки» по конфигу и плагинам альсы, где только на то, чтобы понять принципы, как оно всё устроено, у тебя прилично времени уйдёт.

На всякий случай сообщу, что пульса — это просто демон, который не обязательно будет захватывать полностью твою карту, ты можешь ей дать то же plug устройство, что и другим программам. На диске она, вместе со своими опциональными модулями и справкой занимает всего 6 МБ, ну там, плюс ещё какие-то зависимости, может. Прямой зависимости от системд нет, а её наличие через другие пакеты зависит от дистра.

anonymous
()

Спасибо анону, разобрался, сделал всё чистой альсой, без пшульсы. Вкратце:

modprobe snd-aloop pcm_substreams=1

а потом в конфиг внести:

# .asoundrc
pcm.!default { type plug slave.pcm "hw:Loopback,0,0" }
Далее:
ffmpeg -f alsa -channels 2 -sample_rate 44100 -i hw:Loopback,1,0 out.wav
Пишет с того, что на выходе.

burato ★★★★★
() автор топика
Ответ на: комментарий от burato

-i hw:Loopback,1,0

Чтобы каждый раз не дёргать -channels и -sample_rate можно писать -i plughw:Loopback,1,0.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.