Создать устройство ALSA с 1 каналом из 2

1092
Svalorzen

Я пытаюсь использовать Linphone с моим микрофоном, но звук очень прерывистый. Немного поэкспериментировав arecord, я обнаружил, что, хотя звук на моем sysdefaultустройстве прерывистый, запись front:CARD=Genericработает лучше и с меньшим уровнем шума.

Однако, по- frontвидимому, может быть записано только с 2 активными каналами. Linphone вызывает моно на входе (теоретически он может использовать стерео, но, кажется, нет способа установить это в конфигурации), и поэтому выдает ошибку alsa, так как не может правильно установить каналы.

То же самое происходит, если я использую arecord1 канал для устройства:

$ arecord -f cd -d front:CARD=Generic,DEV=0 -c 1 -V stereo /tmp/file Recording WAVE '/tmp/file' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono arecord: set_params:1247: Channels count non available 

Таким образом, я пытаюсь создать устройство в ALSA, которое должно понижать частоту микрофона в один канал, но я не могу этого сделать (я новичок в ALSA). Я пытался использовать этот ответ, но он не работает:

pcm.front cards.pcm.front pcm.makemono {  type plug  slave.pcm {  type route  slave.pcm "pcm.front" slave.channels 2 ttable {  0.0 1  1.0 1 }  }  }  ...  $ arecord -f cd -d makemono -c1 -V stereo /tmp/file Recording WAVE '/tmp/file' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono arecord: set_params:1247: Channels count non available 

Как я могу это сделать?

0

1 ответ на вопрос

2
CL.

Вам нужен один программный канал с двумя аппаратными каналами, поэтому вы должны выполнить сопоставление в противоположном направлении:

... ttable { 0.0 1 0.1 1 } 

И вы должны использовать правильный параметр, чтобы указать устройство:

$ arecord --help | grep -i - ^ -d -D, --device = NAME выбрать PCM по имени -d, --duration = # прерывание через # секунд 
Кажется, не работает, к сожалению. Я все еще получаю ту же ошибку .. Svalorzen 7 лет назад 0
Это работает для меня на стерео оборудовании. CL. 7 лет назад 0
Может быть, по какой-то причине мое устройство просто не распознается или есть какая-то другая проблема (может быть, поле `slave.pcm`)? Если я поставлю `-d random_device_which_does_not_exist`, arecord не будет жаловаться на это. Есть ли способ проверить правильность анализа устройства? Svalorzen 7 лет назад 0
Вы на самом деле не указали устройство ... CL. 7 лет назад 0
Вы на 100% правы, спасибо! Svalorzen 7 лет назад 0

Похожие вопросы