Verbessere die Waschtl-Antwort dieses Threads, damit du den App-Sound BEIDE HÖREN UND AUFZEICHNEN kannst :
Zuerst suchen wir nach unserer Standardausgabe und geben den Namen der Senke ein $DEFAULT_OUTPUT
:
$ pacmd list-sinks | grep -A1 "* index"
* index: 1
name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
$ DEFAULT_OUTPUT=$(pacmd list-sinks | grep -A1 "* index" | grep -oP "<\K[^ >]+")
$ echo $DEFAULT_OUTPUT
alsa_output.pci-0000_00_1b.0.analog-stereo
Dann erstellen wir eine kombinierte Senke mit nur einem Slave: $ DEFAULT_OUTPUT . Der von der App (Quelle) erzeugte Ton wird an die Slave-Senke (dh an die reale Ausgabe) weitergeleitet, und wir zeichnen ihn auch auf. Es unterscheidet sich von einer Null-Senke, bei der der Quellensound nicht weitergeleitet wird.
$ pactl load-module module-combine-sink \
sink_name=record-n-play slaves=$DEFAULT_OUTPUT \
sink_properties=device.description="Record-and-Play"
sink_properties
ist optional und kann Fehler verursachen, wenn Sie Leerzeichen im Beschreibungsnamen verwenden.
Dann könnten wir den pactl move-sink-input ...
Befehl Waschtl-Antwort verwenden (mit Record-n-Play anstelle von Steam ), aber die GUI pavucontrol
ist einfacher (und ideal für die Überprüfung / Fehlerbehebung):
$ sudo apt-get install pavucontrol
$ pavucontrol &
Dann spielen wir einen Sound in der App, die wir aufnehmen möchten. In der pavucontrol
PlaybackRegisterkarte wählen wir in der App-Dropdown-Liste: "Record-and-Play" .
Endlich ist es gut, gleichzeitig aufzunehmen und zu hören! ( lahm mp3 Beispiel im Vordergrund laufen)
$ parec --format=s16le -d record-n-play.monitor | \
lame -r --quiet -q 3 --lowpass 17 --abr 192 - "temp.mp3"
Oder wir können im Hintergrund aufnehmen und jederzeit anhalten:
$ parec --format=s16le -d record-n-play.monitor | \
lame -r --quiet -q 3 --lowpass 17 --abr 192 - "temp.mp3" \
> /dev/null &1>/dev/null
$ killall -q parec lame
NB:
- So nehmen Sie alle Messwerte zurück oder wiederholen den Vorgang: Löschen Sie die Senken oder setzen Sie sie zurück, indem Sie diese Antwort verwenden .
pulseaudio -k
Funktioniert hervorragend, um alle Einstellungen auf die Standardeinstellungen der Sitzung zurückzusetzen.
- Wenn wir die Standardausgabe in den System-Sound-Einstellungen ändern, wird die Wiedergabeeinstellung der benutzerdefinierten App überschrieben und wir müssen in pavucontrol zurückkehren, um sie auf die kombinierte Benutzeroberfläche zurückzusetzen.
- Um den Ton von mehreren "echten" Schnittstellen (z. B. Kopfhörer, HDMI-Ausgang usw.) wiedergeben zu können, sollten wir alle "echten" Ausgänge, die wir zum Hören verwenden können, als Slink-Slaves für Aufnahme und Wiedergabe einschließen , wie:
pactl load-module module-combine-sink sink_name=record-n-play slaves=real-output-1,real-output-2
.
BEARBEITEN: Achtung, seit Ubuntu 18 (vielleicht auch 17) wird die kombinierte Senke eher zum Standard-Systemausgabegerät als zum echten Ausgabegerät. Wenn Sie also die Lautstärke mithilfe des Sound-Symbols in der Taskleiste ändern, wirkt sich dies auf Ihren Aufnahmeklang aus. Problemumgehung: Öffnen Sie nach dem Erstellen der kombinierten Senke die pavucontrol
Registerkarte Ausgabe. Wählen Sie "Ansicht: Virtuelle Ausgabegeräte" und setzen Sie die Lautstärke der kombinierten Senke auf 100% zurück. Wählen Sie dann "Ansicht: Hardware-Ausgabegeräte" und drücken Sie das grüne Symbol "Als Alternative definieren" auf dem realen Ausgabegerät.