19

Я пытаюсь захватить вывод звуковой карты и закодировать его в формате Vorbis ogg, используя следующую команду:

arecord -f cd -t raw | oggenc - -r -o file.ogg

Однако записывается микрофонный вход компьютера, а не выход звуковой карты.

Выходные данные команды arecord -l :

**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

Вывод команды arecord -L содержится в этой записи пастбина.

Страница man arecord указывает, что устройство ввода можно выбрать с помощью флага -D , но не дает синтаксических примеров.

Я хотел бы знать, как изменить вход для arecord с микрофона на звуковую карту. Меня не интересуют альтернативы на основе графического интерфейса, такие как Audacity. Благодарю.

Редактировать: я использую Debian 7.0 (стабильный) с версией arecord 1.0.25, vorbis-tools версии 1.4.0 и ALSA версии 1.0.24.

6 ответов6

5

Я бы предложил использовать драйвер петли ALSA. Чтобы загрузить это:

sudo modprobe snd-aloop

Это должно добавить новое устройство захвата к выходу из arecord -L .

Если у вас есть только одна физическая звуковая карта на вашем компьютере, вы можете сделать петлевую звуковую карту по умолчанию для всех приложений, создав файл .asoundrc в вашей домашней папке со следующим содержимым:

pcm.!default {
    type hw
    card 1
    device 0
}

Пока этот файл находится на месте, любой звук, выводимый из всех приложений, должен идти к адаптеру обратной связи, а не к фактическим динамикам. Просто укажите правильное устройство в вашей команде arecord и, как только вы закончите, удалите файл .asoundrc чтобы вернуться в нормальное состояние.

4

У меня была такая же проблема, и я нашел другое решение здесь. Основная идея заключается в использовании pacat . Для меня это работает так:

1) найти монитор устройства:

$ pacmd list | grep "\.monitor"
name: <alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor>
name: <alsa_output.pci-0000_00_1b.0.analog-stereo.monitor>
        alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor/#0: Monitor of HDA NVidia Digital Stereo (HDMI)
        alsa_output.pci-0000_00_1b.0.analog-stereo.monitor/#2: Monitor of Built-in Audio Analog Stereo

2) Захват аудио в файл:

$ pacat --record -d alsa_output.pci-0000_00_1b.0.analog-stereo.monitor > dump.raw

3) конвертировать файл в wav:

sox -t raw -r 44100 -e signed-integer -L -b 16 -c 2 dump.raw output.wav

Это оно!

3

Ваше оборудование не поддерживает захват его вывода; как только данные поступают в реальное устройство воспроизведения, они исчезают.

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

Я бы предложил использовать PulseAudio; там вы можете просто выбрать один из его выходов в качестве источника захвата:мониторинг выходов pavucontrol

2

Спустя годы борьба продолжается ... как указать записывающее устройство, о чудо

➜  ~ arecord -l                                                              
**** List of CAPTURE Hardware Devices ****                                   
card 0: PCH [HDA Intel PCH], device 0: CX20590 Analog [CX20590 Analog]       
  Subdevices: 1/1                                                            
  Subdevice #0: subdevice #0                                                 
card 1: Device [USB PnP Sound Device], device 0: USB Audio [USB Audio]       
  Subdevices: 1/1                                                            
  Subdevice #0: subdevice #0     

➜  ~ arecord -f S16_LE -r 44100 --device="hw:1,0" plik.wav                   
Recording WAVE 'plik.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Mono 
^C
Aborted by signal Interrupt...  

Таким образом, формат строки устройства:hw:<card>,<device>

формат идентификатора устройства

1
  1. Перейдите в PulseAudio Регулятор громкости -> вкладка Устройства ввода. Внизу выберите "ВСЕ устройства ввода". Проверьте, не отключен ли "Монитор внутреннего аналогового стереозвука" и не увеличивается ли громкость при воспроизведении звука !!

  2. Используйте Audio Recorder для записи Audio Source = Internal Audio Analog Stereo (Аудио вход). Смотрите скриншот ниже.

0

Я только что установил аудио-рекордер: https://launchpad.net/audio-recorder, который в своих настройках показывает, что вам нужно ...

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .