2

У меня есть система Ubuntu 16.04.3 LTS с

  • звуковая карта ASUS Xonar DGX и
  • универсальная звуковая карта USB.

В нашей церкви мы хотим иметь возможность транслировать службу, а также записывать ее в виде файла WAV. Для этого у меня есть 3,5 мм выходной аудиокабель от звуковой платы, подключенный к сплиттеру, так что есть два кабеля для подключения к разъему "Line In" на каждой звуковой карте.

Затем я использую "arecord" для записи звука на одну карту и "darkice" для создания потока MP3 на другой.

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

2 ответа2

1

Да, это легко возможно. Вы действительно используете только ALSA или Pulseaudio (по умолчанию практически во всех дистрибутивах в течение многих лет)?

С Pulseaudio это должно работать из коробки.

С ALSA убедитесь, что вы используете имя устройства plughw (которое внутренне добавляет dsnoop dsnoop) вместо имени устройства hw . Плагин dsnoop разделит входной поток на несколько потоков для разных приложений.

редактировать

Как я уже сказал, вместо -D hw:0 и т.д. (Измените для вашего аппаратного адреса), просто используйте -D plughw:0 для arecord и аналогично для имени устройства в darkice .

Условие состоит в том, что никакая другая программа не использует hw:0 напрямую. Все они должны использовать plughw:0 .

Вам не нужно знать подробности о dsnoop , ALSA сделает это автоматически для вас. (Но вы можете прочитать подробности на странице плагина, на которую я ссылался).

Вам не нужно настраивать собственный ~/.asoundrc , вам не нужно изменять какие-либо файлы конфигурации.

0

Я принял ответ Диркта, который дал мне большую часть пути туда. Оказывается, мне нужно было создать интерфейс dsnoop :

/etc/asound.conf

pcm.custom_snoop_card {
    type dsnoop
    ipc_key 420042
    ipc_key_add_uid 1
    slave {
        pcm "hw:0,0"   # the actual device
        format S16_LE
        channels 2
        rate 44100
    }
}

Теперь я могу указать device = custom_snoop_card в моей конфигурации darkice и одновременно сделать запись WAV с помощью arecord -D custom_snoop_card -f S16_LE -c2 -r 44100 -vv myfile.wav

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