Mic
Передача звука с микрофона по сети Оригинал
Потребовалось незаметно прослушать, что происходит в удалённом помещении в котором находился компьютер в Linux, с настроенным ssh и Web камерой.
Для чтения с устройства hw:2,0, с временем прерывания 5 секунд, в формате wav
нужно использовать команду:
arecord -F 5 -D hw:2,0 -t wav -f dat -c 1
имя устройства можно узнать так:
cat /proc/asound/pcm 01-00: SAA7134 PCM : SAA7134 PCM : capture 1 00-01: AD198x Digital : AD198x Digital : playback 1 00-00: AD198x Analog : AD198x Analog : playback 1 : capture 1 02-00: USB Audio : USB Audio : capture 1
cat /proc/asound/cards
0 [Intel ]: HDA-Intel - HDA Intel
HDA Intel at 0xe03a0000 irq 98
1 [U0x46d0x804 ]: USB-Audio - USB Device 0x46d:0x804
USB Device 0x46d:0x804 at usb-0000:00:1a.7-2, high speed
2 [Headset ]: USB-Audio - Logitech USB Headset
Logitech Logitech USB Headset at usb-0000:00:1a.1-2, full
Для преобразование в mp3 потока из stdin и выводе результата в stdout:
lame -
Для проигрывания mp3 потока с stdin
mpg123 -
В итоге команда для прослушивания выглядит так:
ssh user@host "arecord -F 5 -D hw:2,0 -t wav -f dat -c 1 | lame -" | mpg123 -
или
ssh user@host "arecord -F 5 -D hw:2,0 -t wav -f dat -c 1 | lame -" > listening.mp3
При подключение к host запускается команда записи с микрофона, конвертирования и записи потока "звука" в stdout который передаётся через ssh на локальный компьютер, на котором этот поток направляется в mp3 проигрыватель или файл
еще вероятно будет необходимость включить сам микрофон делается так
посмотреть какие карты установлены вывод уже рассматривался
ssh user@host cat /proc/asound/cards
получить информацию о карте 2
ssh user@host amixer -c 2 info
Card hw:1 'U0x46d0x804'/'USB Device 0x46d:0x804 at usb-0000:00:1a.7-2, high speed'
Mixer name : 'USB Mixer'
Components : 'USB046d:0804'
Controls : 2
Simple ctrls : 1
узнать какими переключателями можна управлять и их numid
ssh user@host amixer -c 2 controls numid=1,iface=MIXER,name='Mic Capture Switch' numid=2,iface=MIXER,name='Mic Capture Volume'
посмотреть состояние
ssh user@host amixer -c 2 cset numid=1
изменить состояние - включить микрофон
ssh user@host amixer -c 2 cset numid=1 on