Greetings!
I've been banging my head against this wall for a while now, and would really appreciate some pointers.
I can no longer record Google Meet meetings using RecordRTC (https://www.webrtc-experiment.com/RecordRTC/). This promptly became a problem once I upgraded from F33 to F35. I'm fairly certain this has therefore something to do with PipeWire. The problem occurs on every browser I've tried, including Chrome and Firefox. The symptoms is that though my audio comes through clearly to other meeting participants, my recording of my own voice is at the minimum chopped off, and at worst is mostly silence with occasional blips of syllable fragments. The audio coming from other participants is recorded correctly.
I can see that once RecordRTC starts recording, the browser opens another recording channel to the Pulse socket (which is serviced by PW, but all these browsers only speak Pulse). I assume that the data sent over this second recording channel is mangled.
Now, both PA and PW support parallel recording from the same source. I've observed: * Recording a stream by another application (parec, vokoscreenNG) during an ongoing meeting is fine * Simply recording two streams in parallel from the same application works fine, the recorded data is identical. This is with both using "simple" API (https://pastebin.com/vTVzQgpX), or multiple connections per context (https://pastebin.com/EEX99VDJ).
I'd like to understand how to dig deeper into this. There are a couple of things that would help: 1. What's an "easy" way to trace an application, and save the output of any data that passes through a FD? Besides using strace, and then converting the relevant lines into binaries using some script. 2. What is a good way to get details about connections between an app and PA socket? I've been relying on 'pactl list` and whatever KDE settings show about the connections. But 'pactl' shows clients, not streams, and I can't see any streams or their characteristics. There are a lot of configuration options on PA streams. 3. Has anybody else seen this? I'd like to find out if it's a known problem, before I bury myself in Chromium/FF sources to see if I can get a better handle on where this turns south. 4. Any clues what can this be related to? Considering that multi-channel recording generally works fine, are there flags/settings that maybe meddle with the priority, forces buffers being shared or cleaned up, attempts to acquire an exclusive recording?
Thank you!
On Sun, 2 Jan 2022 02:00:34 +0100 Pawel Veselov pawel.veselov@gmail.com wrote:
Greetings!
I've been banging my head against this wall for a while now, and would really appreciate some pointers.
I can no longer record Google Meet meetings using RecordRTC (https://www.webrtc-experiment.com/RecordRTC/). This promptly became a problem once I upgraded from F33 to F35. I'm fairly certain this has therefore something to do with PipeWire. The problem occurs on every browser I've tried, including Chrome and Firefox. The symptoms is that though my audio comes through clearly to other meeting participants, my recording of my own voice is at the minimum chopped off, and at worst is mostly silence with occasional blips of syllable fragments. The audio coming from other participants is recorded correctly.
I have very little understanding of pipewire and no understanding of RecordRTC. But I have a couple of suggetions you could try.
You could try installing wireplumber, if it isn't already installed, to see if it fixes the issue.
You could try using obs-studio (available from rpmfusion) to record the session instead of RecordRTC (not sure how that fits with your workflow).
On Sun, Jan 2, 2022 at 7:33 PM stan via devel devel@lists.fedoraproject.org wrote:
On Sun, 2 Jan 2022 02:00:34 +0100 Pawel Veselov pawel.veselov@gmail.com wrote:
Greetings! I've been banging my head against this wall for a while now, and would really appreciate some pointers.
I can no longer record Google Meet meetings using RecordRTC (https://www.webrtc-experiment.com/RecordRTC/). This promptly became a problem once I upgraded from F33 to F35. I'm fairly certain this has therefore something to do with PipeWire. The problem occurs on every browser I've tried, including Chrome and Firefox. The symptoms is that though my audio comes through clearly to other meeting participants, my recording of my own voice is at the minimum chopped off, and at worst is mostly silence with occasional blips of syllable fragments. The audio coming from other participants is recorded correctly.
I have very little understanding of pipewire and no understanding of RecordRTC. But I have a couple of suggetions you could try.
You could try installing wireplumber, if it isn't already installed, to see if it fixes the issue.
Yeah, that didn't help.
You could try using obs-studio (available from rpmfusion) to record the session instead of RecordRTC (not sure how that fits with your workflow).
Thank you. First, I figured if I'm to use a native recorder, I can use vokoscreenNG. However, when I tried a full test - with the mic and the audio monitor, I ran into exactly the same problem - the "monitor" stream is recorded fine, but the mic stream is practically missing. Which is good, because then this problem seems to be about recording from more than one source at the same time, and I can debug this with vokoscreenNG, rather than with Chrome, and with a much simpler reproduction path.
However, I also did try obs-studio, and yes, it's a lot more complicated than what I need from it at the moment, but amazingly it works. So great, now I can also try to understand how come it does when others don't.
RecordRTC is best suited for what I want since it lets me capture the contents of a tab, at least in Chrome, but I can limp on obs-studio until I figured this out.