Applies to Raspberry Pi 4, Pi 400 and CM4 players on Raspberry Pi OS Trixie that were upgraded to piSignage 5.5.0 or later, or freshly installed after May 2026. Pi 3 and Pi 5 are not affected.
Upstream report: https://github.com/raspberrypi/trixie-feedback/issues/101 . Once a fixed Chromium ships, remove the workaround below; it is not needed on Chromium 145 and it costs CPU.
Symptoms
- When multiple videos are playing on the screen, a video plays normally, then freezes one second before its end and never advances
Workaround:
- Chose VLC under Group settings for video play
2. Workaround for Chromium (preferred): give the VideoCore more memory. Enter the following commands using piShell/ssh/terminal
echo "gpu_mem=128" | sudo tee -a /boot/firmware/config.txt sudo reboot
3. Choose software video decode in Chromium if weblink videos need to be played with the flag
`--disable-accelerated-video-decode`.
VLC keeps using the hardware decoder and is unaffected with this change, so on a plain video layout the cost is nil;on a layout with web video the Chromium renderer decodes in software and CPU use rises sharply (about 270 % of 400 % on a Pi 4 with a page of auto-playing 1080p clips).
Raspberry Pi OS reads Chromium flags from `/etc/chromium.d/`; every file there is sourced by the`/usr/bin/chromium` wrapper at each launch. Create one file (POSIX `sh` syntax, the wrapper runs under `/bin/sh`):
To create the flag workaround, execute the following command from piShell or ssh/terminal.
sudo tee /etc/chromium.d/zz-pisignage-video-decode.sh > /dev/null <<'EOF'
# piSignage: software video decode in Chromium 151+ on BCM2711 (Pi 4 family).
# The RPi 151 rpt1 V4L2 decoder rework hangs the VideoCore at decoder teardown.
# Chromium 145 and VLC are unaffected, so the gate is the installed Chromium
# major version, checked at every launch. Remove once a fixed Chromium ships.
if grep -qa bcm2711 /proc/device-tree/compatible 2>/dev/null; then
CHROMIUM_MAJOR=$(dpkg-query -W -f='${Version}' chromium 2>/dev/null | sed 's/^[0-9]*://; s/\..*//')
case "$CHROMIUM_MAJOR" in
''|*[!0-9]*) ;;
*)
if [ "$CHROMIUM_MAJOR" -ge 151 ]; then
CHROMIUM_FLAGS="$CHROMIUM_FLAGS --disable-accelerated-video-decode"
fi
;;
esac
fi
export CHROMIUM_FLAGS
EOF
sudo reboot
Comments
0 comments
Please sign in to leave a comment.