Screen recording freezes once entering a full-screen program
FlameSniper opened this issue · 7 comments
Affected version
-
io.github.seadve.Kooha 2.2.4
-
Flatpak: true
-
Experimental: false
-
Language: es_EC.UTF-8, es_EC, es.UTF-8, es, C
-
Distribution: GNOME 45 (Flatpak runtime)
-
Desktop Session: gnome
-
Display Server: wayland
-
GTK 4.12.4
-
Libadwaita 1.4.2
-
GStreamer 1.22.5
-
Pipewire 0.3.83
I was using Matroska and recording at 30 FPS.
Bug summary
Screen recording freezes once you enter a full-screen program. It also tries to sporadically work again, as it manages to record like half a second of footage before freezing again.
I tried to record Minecraft and Touhou, both failed. But recording Celluloid on full screen and windowed programs (including those two games) worked perfectly.
It might be related to XWayland and full-screen, as both games were running under it and Celluloid was running natively on Wayland. I checked using "xwininfo" to know that Minecraft and Touhou were running on XWayland
Steps to reproduce
Launch Minecraft 1.8.9 or Touhou 6 to 19 and try to record in full-screen.
Expected behavior
That everything is captured perfectly
Relevant logs, screenshots, screencasts, etc.
Video encoded using Handbrake as GitHub doesn't support MKV.
Debug text is the one produced by the video attached.
Kooha-Debug-Pepi.txt
Kooha-2024-01-18-15-39-59.mp4
Thanks for reporting! I actually can reproduce this too. As a workaround, I record the window of the app directly, instead of the monitor. I am not sure if the bug is coming from pipewire
or mutter
.
This is one of the hardest bugs to fix, it is like a schrodinger bug: it is there until you observe it. Specifically, it is only reproducible when recording the video directly to a file, replacing filesink
with decodebin ! xvimagesink
makes the bug cease to exist.
Here are two videos recorded with exactly the same pipeline (the muxer output from the main pipeline is tee-d to a decoder + xvimagesink
and the other end is to a filesink
whose output is these videos).
The first video is where the xvimagesink
window is visible. Everything is smooth, no freezes.
xvimagesink-visible.webm
But if the xvimagesink
window is not visible. The game in fullscreen freezes.
xvimagesink-not-visible.webm
I just experienced this whilst ironically trying to take a video to demonstrate another bug (in Kicad). It is not full screen but it uses accelerated graphics, so maybe your issue is more to do with that. I previously had the same issue when trying to take a screen recording of virt-manager displaying a SPICE session. that said I believe this screen recording stops before kicad displays any accelerated graphics and before I even mouse over into it (see the location of the text cursor on the last recorded frame)
Hyprland v0.38