Repository navigation
[Bug]: H.264 recordings contain invalid access units and Preview is unavailable #615
Description
Search existing issues
- I have searched the existing issues
Describe the bug
When recording the screen on Arch Linux using OpenScreen under a GNOME Wayland session, the recording is created successfully as an MP4 file, but the built-in Preview is unavailable.
The generated MP4 file contains a valid H.264 video stream and can be played/re-encoded with FFmpeg, but FFmpeg reports invalid H.264 access units when decoding the original recording:
[h264 @ ...] missing picture in access unit with size 241
[h264 @ ...] no frame!
[vist#0:0/h264 @ ...] [dec:h264 @ ...] Decoding error: Invalid data found when processing input
OpenScreen itself reports:
Avcodec_send_packet: -1094995529
Preview unavailable in this machine
The issue persists when launching OpenScreen with --disable-gpu.
Expected behavior
When recording the screen on Arch Linux using OpenScreen under a GNOME Wayland session, the recording is created successfully as an MP4 file, but the built-in Preview is unavailable.
The generated MP4 file contains a valid H.264 video stream and can be played/re-encoded with FFmpeg, but FFmpeg reports invalid H.264 access units when decoding the original recording:
[h264 @ ...] missing picture in access unit with size 241
[h264 @ ...] no frame!
[vist#0:0/h264 @ ...] [dec:h264 @ ...] Decoding error: Invalid data found when processing input
OpenScreen itself reports:
Avcodec_send_packet: -1094995529
Preview unavailable in this machine
The issue persists when launching OpenScreen with --disable-gpu.
To Reproduce
-
Start a GNOME Wayland session on Arch Linux.
-
Launch OpenScreen.
-
Start a screen recording.
-
Stop the recording after a short period.
-
Open the generated recording in OpenScreen.
-
Observe that the Preview is unavailable.
-
Check the generated MP4 with FFmpeg:
ffmpeg -v error -i recording.mp4 -f null - -
FFmpeg reports H.264 decoding errors such as:
missing picture in access unit with size 241no frame!Decoding error: Invalid data found when processing input
Screenshots
OS
Linux
OS Version
Arch Linux 7.2.2-arch1-1
Other OS
No response
Browser
Other
Browser Version
Brave Browser 152.1.94.117
Other Browser
Brave
Device Type
Laptop
Other Device
No response
Additional context
System
- OS: Arch Linux
- Desktop: GNOME
- Session: Wayland
- GPU: AMD Radeon HD 8400 / R3 Series
- GPU architecture: Kabini
- Kernel: 7.2.2-arch1-1
- Mesa: 26.2.2-arch1.1
- VA-API: libva 2.24.0
- OpenScreen: [version]
PipeWire
PipeWire, pipewire-pulse and WirePlumber are running normally.
VA-API
vainfo reports H.264 High profile support:
- H264 High VLD
- H264 High EncSlice
Generated recording
The generated MP4 is approximately:
- Duration: 49.68 seconds
- Video: H.264 High
- Resolution: 1366x736
- Framerate: ~60 FPS
- Bitrate: ~4.9 Mbps
The MP4 is not empty and can be re-encoded successfully with FFmpeg. However, decoding the original file directly produces H.264 errors:
missing picture in access unit with size 241
no frame!
Decoding error: Invalid data found when processing inputLaunching OpenScreen with:
openscreen --disable-gpudoes not resolve the Preview problem.
This suggests that the recording pipeline is producing an MP4 which is mostly valid/playable but contains at least one malformed H.264 access unit, and OpenScreen's preview decoder fails when processing it.
FFmpeg
ffmpeg -hwaccels reports VA-API support, and vainfo confirms H.264 encoding/decoding capabilities on the AMD GPU.
I have not yet determined whether the malformed H.264 packet is produced by the capture pipeline, encoder, or muxing stage.
Activity
EtienneLescot commentedon Sep 14, 2026
Thanks for the detailed report, it pins this down well.
Preview unavailable. In every published release, the decoder's invalid-packet guard compared against the wrong error code, so the first bad packet after a seek aborted the whole preview. That is fixed on main by #551, merged after v1.11.0, and will ship in the next release. It should let the preview open files like this one, although a long run of bad packets could still fail.
The invalid packet. "missing picture in access unit with size 241" means one packet holds H.264 headers but no picture. The capture helper only writes what the encoder returns, so we suspect the VA-API encoder on your GPU. To confirm it, could you send:
[capture-linux]:openscreen 2>&1 | grep capture-linuxffprobe -v error -select_streams v:0 -show_entries packet=pts_time,size,flags -of csv recording.mp4 | awk -F, '$3 < 300 {print NR": "$0}'OPENSCREEN_LINUX_ENCODER=software openscreen, then check the file withffmpeg -v error -i recording.mp4 -f null -. If the error is gone, that also works as a workaround for now.EtienneLescot commentedon Sep 27, 2026
The preview fix (#551) is in the current release, 1.13.0. Could you retry with it?
If the recordings still contain the empty access units, the details from my last comment would help (version,
[capture-linux]lines, the small-packetffprobeoutput). Recording withOPENSCREEN_LINUX_ENCODER=software openscreenboth tells us whether the VA-API encoder is the cause and works around it.EtienneLescot commentedon Oct 10, 2026
Fixed by #551 (guard against invalid access units), shipped in 1.13.0. Please reopen if you still see it on the current release.