Aufnahme der Wiedergabe

  Ralf Hersel   Lesezeit: 5 Minuten  🗪 11 Kommentare

In diesem Artikel stellen wir zwei Möglichkeiten vor, um das lokale Audiosignal aufzunehmen. Das funktioniert im Terminal und mit einer Anwendung.

aufnahme der wiedergabe

Obwohl meine Artikel in letzter Zeit ein wenig Audio-lastig sind, habe ich noch einen in dieser Richtung. Die Anforderung ist, ein Audiosignal, welches auf eurem Computer wiedergegeben wird (interne Lautsprecher oder eingestöpselte Kopfhörer) mitzuschneiden. Ihr möchtet das aktuell Gehörte in einer Audio-Datei speichern. Wie geht das?

Die Anforderung klingt trivial, ist sie aber nicht. Was kommt euch als Erstes in den Sinn? Vermutlich VNC oder Audacity. Ja, mit beiden Anwendungen ist eine Monitor-Aufnahme möglich, jedoch nicht ohne Gefrickel. Als fortgeschrittene Linux-Anwender:in möchte man diese einfache Aufgabe am liebsten mit einem Befehl im Terminal erledigen.

Hier steht, wie das geht. Die Voraussetzung dafür ist, dass euer System Pipewire im Audiostack verwendet. Das sollte bei allen aktuellen GNU/Linux-Distributionen der Fall sein. Falls ihr euch nicht sicher seid, könnt ihr das mit diesem Befehl im Terminal überprüfen:

ps -e | grep pipewire

1778 ?        00:00:01 pipewire
1780 ?        00:00:01 pipewire-pulse

Pipewire bietet den Befehl pw-record an, um Audio aufzunehmen. pw-record befindet sich im Paket pipewire-audio, was evtl. zuerst installiert werden muss. Ob das nötig ist, seht ihr, indem ihr diesen Befehl ausführt:

pw-record --help

pw-record [options] [<file>|-]
  -h, --help                            Show this help
      --version                         Show version
  -v, --verbose                         Enable verbose operations
...

Bevor man pw-record ausführt, sollte man wissen, von welcher Quelle (target) man aufnehmen möchte. Es genügt nicht zu sagen, dass man das aufnehmen möchte, was gerade abgespielt wird. Um die verfügbaren Targets zu erfahren, kann man diesen Befehl verwenden:

wpctl status

PipeWire 'pipewire-0' [1.0.3, ralf@ralf, cookie:591754417]
 └─ Clients:
        31. pipewire                            [1.0.3, ralf@ralf, pid:1780]
        41. GNOME Shell Volume Control          [1.0.3, ralf@ralf, pid:1294]
        68. Firefox                             [1.0.3, ralf@ralf, pid:2252]
        69. spotify                             [1.0.3, ralf@ralf, pid:6]

(unvollständige Ausgabe)

Dort seht ihr z. B. spotify als Client (target). Damit wisst ihr, wie der Aufnahme-Befehl aussehen kann:

pw-record --target spotify test.flac

Dieser Befehl erzeugt keine Ausgabe im Terminal über den Verlauf der Aufnahme. Sobald ihr Ctrl+c drückt, wird die Aufnahme beendet. Ihr findet die Datei (test.flac) im Verzeichnis, in dem ihr den Befehl ausgeführt habt. pw-record kennt weitere Optionen, die ihr hier findet.

Hier ist die Zusammenfassung:

  • Voraussetzungen: pipewire, pipewire-audio
  • Verfügbare Targets ermitteln: wpctl status
  • Aufnehmen: pw-record --target [Name des Targets] [Name der Audio-Datei]

Wer häufig die lokale Audiowiedergabe mitschneiden möchte, kann sich einen Alias für pw-record anlegen. Falls das Target und die Ziel-Datei gleich bleiben, könnte der Alias so aussehen:

alias record='pw-record --target Firefox aufnahme.flac'

Nun kann man durch Eingabe des Befehls record im Termin das aufnehmen, was Firefox gerade abspielt.

Nachtrag: Wie den Kommentaren zu entnehmen ist, funktioniert das nicht mit der Dateiendung mp3, wohl aber mit flac. Falls man mp3 als Dateiendung nimmt, wird kein MP3, sondern eine PCM-Datei aufgenommen.

Für alle, denen das zu kompliziert ist, gibt es die Flatpak-Anwendung Recorder. Diese macht genau das, was ich bisher beschrieben habe. Dabei muss man nicht einmal das Target auswählen. Die Anwendung ist selbsterklärend.

Der Mitschnitt der Audio-Ausgabe auf einem Linux-PC ist kein Hexenwerk. Sowohl über die Kommandozeile, als auch mit einer grafischen Anwendung kommt man schnell und unkompliziert zum Ziel.

Quellen:

https://flathub.org/apps/com.github.alexkdeveloper.recorder

https://linuxcommandlibrary.com/man/pw-record

Tags

PipeWire, aufnehmen, Aufnahme, Mitschnitt, Recorder

Horst
Geschrieben von Horst am 1. April 2024 um 19:45

> Tut es nicht auch der "Tonaufzeichner" des Gnome-Projekts?

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 2. April 2024 um 18:43

Was ist der "Tonaufzeichner des GNOME-Projekts"?

Horst
Geschrieben von Horst am 2. April 2024 um 19:24

> @Ralf:

> Was ist der "Tonaufzeichner des GNOME-Projekts"?

> Das Dingens heißt "gnome-sound-recorder".

> Die Software befindet sich im offiziellen Repository von Debian, so dass keine Fremdquelle benötigt wird.

> Ihre Oberfläche ist einfach wie funktional und funktioniert tadellos.

> Deine Arbeitsschritte sind imho zwar "interessant", aber umständlich und unnötig, wenn man den Tonaufzeichner von Gnome hat.

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 2. April 2024 um 20:36

Ich habe den mal installiert und ausprobiert. Der nimmt nur vom eingebauten Mikrofon auf. Die Quellen kann man nicht auswählen. Ausserdem ist die Entwicklung vor 3 Jahren stehengeblieben: https://gitlab.gnome.org/World/vocalis/-/releases Da ist Recorder doch die bessere Alternative zur Kommandozeile: https://flathub.org/apps/com.github.alexkdeveloper.recorder

Horst
Geschrieben von Horst am 2. April 2024 um 21:39

> Ich kann etwa unter Firefox ein Youtube-Video oder eine Mediathek-Aufzeichnung öffnen und den Ton dann mit dem Gnome-Sound-Recorder aufnehmen.

> Was bedeutet schon "ist die Entwicklung vor 3 Jahren stehengeblieben", wenn eine Software tadellos funktioniert?

> Soll man auch einer Giraffe ein fünftes Bein implantieren?

Horst
Geschrieben von Horst am 2. April 2024 um 21:49

> P.S.

> Du schreibst: "...Die Anforderung ist, ein Audiosignal, welches auf eurem Computer wiedergegeben wird (interne Lautsprecher oder eingestöpselte Kopfhörer) mitzuschneiden...".

> Mein PC hat kein Mikrofon. Der Gnome-Sound-Recorder nimmt bei meinem System (Debian-Stable / Gnome3 / Wayland) wie gefordert ein Audiosignal vom internen Lautsprecher oder Kopfhörer hervorragend auf.

> Bei Debian fahre ich mit der Stable-Version und dem offiziellen Repository produktiv nutzend sehr gut und frage mich, warum manche Leute sich mit Testing oder gar Sid herumplagen. Ich habe den Eindruck, dass es Mode wird, alles flatmäßige installieren zu wollen und zeitgeistmäßig immer das Neueste haben zu wollen, auch wenn man es eigentlich gar nicht braucht.

Horst
Geschrieben von Horst am 2. April 2024 um 22:01
orbit
Geschrieben von orbit am 1. April 2024 um 20:41

...interessante Sache. Nach dieser Anleitung wird bei mir dann aber ein pcm-Audio (mit einer mp3-Extension) abgelegt, nicht etwa ein mp3-Audio. Nachteil ist dann natürlich, daß die Datei zu groß wird, aber keine entsprechende Qualität gegenübersteht, weil das Ausgangsmaterial bereits komprimiert ist (hier mp3 mit vermutlich 160 kb/s einer Musik-Radio-Sendung aus der WDR-Audiothek als Test).

kamome
Geschrieben von kamome am 2. April 2024 um 17:16

Bei mir ebenfalls. Mit Angabe einer Datei auf .flac wurde es tatsächlich eine FLAC :) (sagt jeweils file)

Ralf Hersel Admin
Geschrieben von Ralf Hersel am 2. April 2024 um 18:58

Danke für eure Hinweise. Ich kann bestätigen, dass 'pw-record --target [Quelle] test.mp3' keine MP3-Datei aufnimmt, sondern PCM. Falls man flac als Dateiendung verwendet, funktioniert es: 'pw-record --target [Quelle] test.flac'

Michael
Geschrieben von Michael am 3. April 2024 um 09:33

Ich mag zu diesem Zweck Audio-Recorder https://aur.archlinux.org/packages/audio-recorder Das erlaubt auch zeitgeusterte Aufnahmen