Siduction Forum

Siduction Forum => Software - Support => Topic started by: orinoco on 2024/06/20, 16:53:12

Title: Audiostream in n Dateien aufzeichnen (englisch translation inside)
Post by: orinoco on 2024/06/20, 16:53:12
Hallo,

bisher verwende ich das Tool pw-record und bin um seine Einfachheit und des Ergebnisses total begeistert. In der Shell einfach
$ pw-record --verbose --target Firefox /path/to/my_audio_recording.flac
eingeben. Das Tool wartet dann brav, bis der Stream im Firefox gestartet wird und beginnt punktgenau mit der Aufzeichnung. Ist der Stream beendet, nimmt pw-Record auch nicht mehr auf und wartet, bis der Stream weiter läuft. Alternativ kann pw-record mit Strg-c abgebrochen werden und die Flac-Datei enthält den gesamten Stream zur weiteren Verarbeitung

Jetzt gibt es aber Streams, die in einzelne Stücke geteilt ist und diese Stückelung würde ich gerne beibehalten. D.h. wenn der Stream auf Pause geht (zwischen zwei Abschnitten) sollte eine neue Datei erzeugt werden. Gerne mit automatischer Nummerierung. Gibt es es was in dieser Richtung? Gerne auch so schön einfach, wie pw-record es ist.



Hello,

so far I use the tool pw-record and I am totally enthusiastic about its simplicity and the result. In the shell simply
$ pw-record --verbose --target Firefox /path/to/my_audio_recording.flac
and enter it. The tool then waits dutifully until the stream is started in Firefox and begins recording at exactly the right time. Once the stream has ended, pw-record stops recording and waits until the stream continues. Alternatively, pw-record can be canceled with Ctrl-c and the Flac file contains the entire stream for further processing

Now, however, there are streams that are divided into individual pieces and I would like to retain this division. This means that when the stream is paused (between two sections), a new file should be created. Preferably with automatic numbering. Is there anything like this? I would also like it to be as simple as pw-record is.

Translated with DeepL.com (free version)
Title: Re: Audiostream in n Dateien aufzeichnen (englisch translation inside)
Post by: edlin on 2024/06/21, 10:40:27
Entstehen denn zwischen den Stücken signifikante Pausen (Stille), die man auswerten könnte? Ich denke da an mp3splt bzw. mp3splt-gtk. Damit wäre zumindest eine nachträgliche Teilung der Audiodatei möglich.

edlin

Title: Re: Audiostream in n Dateien aufzeichnen (englisch translation inside)
Post by: pit on 2024/06/21, 11:24:42
Quotepw-record --verbose --target Firefox /path/to/my_audio_recording.flac

Interessant, kannte ich noch nicht. Ich hätte erwartet, dass dieser Programmaufruf sich auf den Output beschränkt, dessen Quelle die via --target genannte Anwendung ist und nur dann aufgenommen wird, wenn ein Signal anliegt. Ein Test ergab jedoch, dass auch Mikrofon-Input aufgenommen wurde. Klar, kann ich zuvor stummschalten - aber hier geht's ja u.a. um Bequemlichkeit. Hast du (@orinoco) einen Tipp für mich?

Zu deiner Frage ...

Quotewenn der Stream auf Pause geht (zwischen zwei Abschnitten) sollte eine neue Datei erzeugt werden.

... hatte ich mir vor langer Zeit mal folgendes notiert:

QuoteNur dann aufnehmen, wenn Stille für mindestens eine halbe Sekunde unterbrochen wird. Alles in EINE Datei (für neue Datei statt ": restart" eingeben: ":newfile : restart"

rec filename.wav silence 1 0.5 1% 1 1:00 1% : restart
Title: Re: Audiostream in n Dateien aufzeichnen (englisch translation inside)
Post by: orinoco on 2024/06/21, 23:06:46
Vielen Dank für die Rückmeldungen.

Also wenn man pw-record auf geschwätzige Ausgabe stellt, kann man beim Trackwechsel folgende Ausgabe beobachten:
stream time: now:760759037333 rate:1/48000 ticks:5756928 delay:0 queued:0 buffered:0 buffers:2 avail:0 size:2048
stream state changed streaming -> paused
stream param change: Spa:Enum:ParamId:Tag
stream param change: Spa:Enum:ParamId:Latency
stream param change: Spa:Enum:ParamId:Latency
stream state changed paused -> streaming
stream node 65
stream time: now:761228357699 rate:1/48000 ticks:5779456 delay:2080 queued:0 buffered:0 buffers:2 avail:0 size:2048
stream time: now:761228357699 rate:1/48000 ticks:5779456 delay:2080 queued:0 buffered:0 buffers:2 avail:0 size:2048
stream time: now:761228357699 rate:1/48000 ticks:5779456 delay:2080 queued:0 buffered:0 buffers:2 avail:0 size:2048
stream time: now:761228357699 rate:1/48000 ticks:5779456 delay:2080 queued:0 buffered:0 buffers:2 avail:0 size:2048
stream param change: Spa:Enum:ParamId:Latency
stream state changed streaming -> paused
stream param change: Spa:Enum:ParamId:Tag
stream state changed paused -> streaming
stream node 65
stream time: now:761228357699 rate:1/48000 ticks:5779456 delay:0 queued:0 buffered:0 buffers:2 avail:0 size:2048
stream state changed streaming -> paused
stream state changed paused -> streaming
stream node 65
stream time: now:761228357699 rate:1/48000 ticks:5779456 delay:0 queued:0 buffered:0 buffers:2 avail:0 size:2048
stream param change: Spa:Enum:ParamId:Tag
stream time: now:765874520818 rate:1/48000 ticks:5826560 delay:0 queued:0 buffered:0 buffers:2 avail:0 size:2048


Die erste und drittletzte Zeile sind jeweils das Ende von Track 1 und der Beginn von Track 2. Dazwischen lädt der Player der Website den nächsten Track der Playlist. Ob das generell so ist oder von dieser einen Implementierung des Webplayers abhängt, kann ich nicht sagen.

Anhand der Ausgaben erkennt pw-record offensichtlich, das keine Ausgaben aus der Quelle Firefox mehr kommen und geht automatisch auf Pause.
stream state changed streaming -> paused
Das kurze Toggeln kann ich mir nicht erklären. Jedenfalls macht der Player kurz was. Dann liegt der neue Track an und die Quelle Firefox wird wieder mitgeschnitten.
stream state changed paused -> streaming

Jetzt ein Parameter --split, der bei jedem "stream state changed paused -> streaming" eine neue Datei anlegt...

@pit
rec entstammt dem SoX-Paket? Mit SoX hab ich schon viel Lebenszeit "verschwendet".  8)

Muss ich mir mal wieder anschauen. Hab ich mir bestimmt seit 15 Jahren nicht mehr angetan. An welcher Stelle zapft es den die Audio-Streams ab? Bestimmt nicht auf Applikationslevel wie pw-record, oder?
Title: Re: Audiostream in n Dateien aufzeichnen (englisch translation inside)
Post by: orinoco on 2024/06/21, 23:22:15
Quote from: pit on 2024/06/21, 11:24:42
Quotepw-record --verbose --target Firefox /path/to/my_audio_recording.flac

Interessant, kannte ich noch nicht. Ich hätte erwartet, dass dieser Programmaufruf sich auf den Output beschränkt, dessen Quelle die via --target genannte Anwendung ist und nur dann aufgenommen wird, wenn ein Signal anliegt. Ein Test ergab jedoch, dass auch Mikrofon-Input aufgenommen wurde. Klar, kann ich zuvor stummschalten - aber hier geht's ja u.a. um Bequemlichkeit. Hast du (@orinoco) einen Tipp für mich?

Ich habe gerade kein Mikrofon, aber wenn ich z.B. mit VLC ein Musikstück laufen lasse, wartet pw-record brav auf Firefox. Da wird bei mir nix parallel mitgeschnitten. Oder hab ich dich vielleicht falsch verstanden?

Mit
wpctl status
kann du sehen, welche Ton-Quellen Pipewire gegenwärtig bekannt sind.

Schuss aus der Hüfte: Darf Firefox bei dir ungefragt das Mikrofon nutzen?