Ich habe ein Ubuntu 16.04.3 LTS System mit
- eine ASUS Xonar DGX-Soundkarte und
- eine generische USB-Soundkarte.
In unserer Kirche möchten wir einen Gottesdienst senden und als WAV-Datei aufzeichnen können. Um dies zu erreichen, habe ich das 3,5-mm-Audioausgangskabel von der Soundkarte an einen Splitter angeschlossen, sodass zwei Kabel an den "Line In" -Anschluss jeder Soundkarte angeschlossen werden können.
Dann benutze ich "arecord", um den Ton auf einer Karte aufzunehmen, und "darkice", um auf der anderen Karte einen MP3-Stream zu erstellen.
Im Idealfall möchte ich eine Soundkarte haben, die sowohl die Aufnahme als auch das Streaming gleichzeitig übernimmt. Ist so etwas möglich? Oder stecke ich mit zwei Soundkarten mit zwei Anwendungen fest?
echo hi | tee output.txt >> output2.txt
" oder "echo hi | tee output.txt | tee output2.txt
" oder "echo hi | tee output.txt output2.txt
"Antworten:
Ja, das ist leicht möglich. Laufen Sie wirklich nur mit ALSA oder auch mit Pulseaudio (der Standard für praktisch alle Distributionen seit vielen Jahren)?
Mit Pulseaudio sollte es sofort funktionieren.
Stellen Sie bei ALSA sicher, dass Sie anstelle des Gerätenamens den
plughw
Gerätenamen verwenden (der intern eindsnoop
Plug-In hinzufügt )hw
. Das dsnoop-Plugin teilt den Eingabestream in mehrere Streams für verschiedene Anwendungen auf.Bearbeiten
Wie gesagt, anstelle von
-D hw:0
usw. (ändern Sie für Ihre Hardware-Adresse), verwenden Sie einfach-D plughw:0
fürarecord
, und ähnliches für den Gerätenamen indarkice
.Voraussetzung ist, dass kein anderes Programm
hw:0
direkt verwendet. Alle von ihnen müssen verwendenplughw:0
.Sie müssen nicht wirklich Details wissen
dsnoop
, ALSA erledigt dies automatisch für Sie. (Details können Sie aber auf der von mir verlinkten Plugin-Seite nachlesen).Sie müssen keine eigenen Einstellungen
~/.asoundrc
vornehmen und keine Konfigurationsdateien ändern.quelle
/etc/modprobe.d/alsa-base.conf
, bin mir aber nicht sicher, wie ich das anwenden soll, was Sie in dieser Datei erwähnt haben.arecord -D plughw:0 -f S16_LE -c2 -r 44100 -vv foo.wav
und verwende auch eine Darkice-Konfiguration, die angibtdevice = plughw:0
, aber es scheint immer noch zu blockieren. Ein Programm kann starten, aber das andere stirbt mitDarkIce: DarkIce.cpp:1273: can't open connector [0]
oderarecord: main:722: audio open error: Device or resource busy
(je nachdem, welches ich als zweites gestartet habe). Was vermisse ich? Danke noch einmal.plughw
hinzufügtdsnoop
? Was bei mir funktioniert hat, war,arecord -D dsnoop:0,0
dass ich mehrere Listener gleichzeitig ausführen konnte, ohne die alsa-Konfiguration zu ändern.Ich akzeptierte dirkts Antwort, die mich den größten Teil des Weges dorthin brachte. Es stellte sich heraus, dass ich eine
dsnoop
Schnittstelle erstellen musste :/etc/asound.conf
Jetzt kann ich
device = custom_snoop_card
in meinerdarkice
Konfig angeben , und gleichzeitig eine WAV-Aufnahme mit machenarecord -D custom_snoop_card -f S16_LE -c2 -r 44100 -vv myfile.wav
quelle