Audio-Aufnahme eines Programms mit pulseaudio unter Debian bullseye |
Mittels pulseaudio ist es ein leichtes das was man am Computer hört aufzunehmen. Zuerst muß man den Kanal des entsprechenden Programms herausfinden. Hinweis: Dazu muß die Soundwiedergabe im entsprechenden Programm laufen! 1 sink input(s) available. index: 9 driver: <protocol-native.c> flags: START_CORKED state: RUNNING sink: 1 <alsa_output.pci-0000_0b_00.4.analog-stereo> volume: front-left: 65536 / 100% / 0,00 dB, front-right: 65536 / 100% / 0,00 dB balance 0,00 muted: no current latency: 124,99 ms requested latency: 75,01 ms sample spec: float32le 2ch 44100Hz channel map: front-left,front-right Stereo resample method: copy module: 9 client: 16 <Firefox> properties: media.name = "Lerne eine Sprache" application.name = "Firefox" native-protocol.peer = "UNIX socket client" native-protocol.version = "34" application.process.id = "29649" application.process.user = "user" application.process.host = "pc" application.process.binary = "firefox-bin" application.language = "de_DE.UTF-8" window.x11.display = ":0" application.process.machine_id = "e5678eaa74d94b34acaa60565cfda131" application.process.session_id = "3" module-stream-restore.id = "sink-input-by-application-name:Firefox" Anschließend kann mittels # parec --verbose --monitor-stream=<Index> --file-format=wav recording.wav die entsprechende Wiedergabe aufgenommen werden. Allerdings funktioniert das nur sehr schlecht bei kleinen Soundschnipseln in Firefox, da die Soundwiedergabe für die Aufnahme ja laufen muß. Noch dazu zählt Firefox jedesmal bei der Wiedergabe des Soundschnipsels einen Index höher. Eine andere Möglichkeit bietet ffmpeg: Mittels # pactl list short sources gibt man eine Liste der verfügbaren Audio-Hardware aus, z.B.: 1 alsa_output.pci-0000_0b_00.4.analog-stereo.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED 4 alsa_output.pci-0000_09_00.1.hdmi-stereo-extra2.monitor module-alsa-card.c s16le 2ch 44100Hz SUSPENDED Um nun eine Aufnahme mittels ffmpeg zu machen, gibt man folgenden Befehl ein: # ffmpeg -f pulse -i alsa_output.pci-0000_0b_00.4.analog-stereo.monitor -ac 2 recording.wav Noch ein kleiner Tipp für das Aufnehmen von sehr kurzen Audio Schnipseln: Wie schon erwähnt muß für Aufnahmen mittels pulseaudio die Audio-Wiedergabe laufen, da sonst nichts vorhanden ist zum Aufnehmen und die Aufnahme mit einer Fehlermeldung abbricht. Bei sehr kurzen Audio Schnipseln kann es daher passieren, daß man den Anfang abschneidet oder im schlimmsten Fall gar nichts aufnimmt, weil die Zeit einfach zu kurz ist, bis man die Aufnahme starten kann. Ich habe das Problem so gelöst, daß ich eine leere Wave-Datei von 2 Stunden Länge mittels eines Audio-Editors erzeugt habe. Wenn ich diese zusätzlich im Hintergrund laufen lasse, wird ständig etwas ausgegeben und der Ausgabe-Kanal bleibt somit ständig aktiv. Damit kann ich die Aufnahme vorher abstarten und somit die volle Länge des Audio-Schnipsels aufnehmen. |
Zurück zur Auswahl |