Raspberry Pi 5 drops codec hardware acceleration except for HEVC decode

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • jellyfin-ffmpeg

    FFmpeg for Jellyfin

  • Maybe my expectations for RPi 5 are too high, but it’s hard to imagine that an SBC manufacturer known as the industry standard removed the H.264 decoder & encoder from their latest product instead of adding VP9 and AV1, causing users to go crazy when YouTube playback dropped frames. Not to mention serving up transcoded content as a media server.

    Good news is that I've been playing around with its competing products. For those users who want a normal media server experience in 2023, Jellyfin will support RK3588 full hardware accelerated transcoding, includes AV1 decode, subtitle burn-in and HDR tone-mapping. (WIP https://github.com/jellyfin/jellyfin-ffmpeg/issues/34#issuec...)

  • pinymotion

    Python implementation of a motion detecting H.264 camera for Raspberry Pi

  • On the other hand you could get cool stuff from the video encoding hardware, such as access to motion vectors on the cheap: https://github.com/osmaa/pinymotion

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • raspberry-pi-pcie-devices

    Raspberry Pi PCI Express device compatibility database

  • https://pipci.jeffgeerling.com honestly I'd get a home server and run HA through docker, it's gotten me into home servers.

  • enable-chromium-hevc-hardware-decoding

    A guide that teach you enable hardware HEVC decoding & encoding for Chrome / Edge, or build a custom version of Chromium / Electron that supports hardware & software HEVC decoding and hardware HEVC encoding.

  • Most devices can indeed most likely handle software decode of more common resolutions, codecs and bitrates. But I'd really hope they'd pick the one that won't suck up all the battery, so H264. This line of thought is supported by the fact that YouTube still provides an H264 option with most if not all videos.

    With higher bitrate things, HEVC seems to grow in popularity but even software decode support is not everywhere. Netflix for example requires the installation of HEVC support on Windows to play 4K content.

    Actually hardware-accelerated video decode is even spottier and more unreliable across most platforms. The JS API for codec support (canPlayType) literally returns "maybe" and "probably". It's quite bad.

    So far the best compatibility I've seen has been Edge with flags on Windows (MPEG-2, H264, HEVC, AV1, VP8, VP9 with most also supporting accelerated encode). It still fails with some content (Dolby Vision P5 colors are incorrect, HEVC Rext doesn't play - more info about HEVC is available here https://github.com/StaZhu/enable-chromium-hevc-hardware-deco...). Chrome on macOS is a close second in terms of codec support.

    The worst in terms of HW acceleration being all the browsers on desktop Linux-s, few and fragile combinations that offer limited and janky support. But it's slowly improving. This combined with the not-the-latest hardware many use, means things like VP9 or AV1 tend to stutter.

    I'd love to see some more generic stats, but considering the APIs aren't sufficient to determine actual support, these might be difficult to gather.

  • Most devices can indeed most likely handle software decode of more common resolutions, codecs and bitrates. But I'd really hope they'd pick the one that won't suck up all the battery, so H264. This line of thought is supported by the fact that YouTube still provides an H264 option with most if not all videos.

    With higher bitrate things, HEVC seems to grow in popularity but even software decode support is not everywhere. Netflix for example requires the installation of HEVC support on Windows to play 4K content.

    Actually hardware-accelerated video decode is even spottier and more unreliable across most platforms. The JS API for codec support (canPlayType) literally returns "maybe" and "probably". It's quite bad.

    So far the best compatibility I've seen has been Edge with flags on Windows (MPEG-2, H264, HEVC, AV1, VP8, VP9 with most also supporting accelerated encode). It still fails with some content (Dolby Vision P5 colors are incorrect, HEVC Rext doesn't play - more info about HEVC is available here https://github.com/StaZhu/enable-chromium-hevc-hardware-deco...). Chrome on macOS is a close second in terms of codec support.

    The worst in terms of HW acceleration being all the browsers on desktop Linux-s, few and fragile combinations that offer limited and janky support. But it's slowly improving. This combined with the not-the-latest hardware many use, means things like VP9 or AV1 tend to stutter.

    I'd love to see some more generic stats, but considering the APIs aren't sufficient to determine actual support, these might be difficult to gather.

  • DietPi

    Lightweight justice for your single-board computer!

  • The thing you are looking for can be achieved by buying something on the DietPi hardware compatibility list. https://dietpi.com/ I personally have had good luck with NanoPi boards from that list.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts