Digital Signage Video Format Support by Player
Safe default for any fleet: MP4, H.264 High profile, 8-bit yuv420p, 1920×1080 at 30 fps, 8 to 12 Mbps, AAC audio or none. Use H.265/HEVC for 4K and for Raspberry Pi 5, which decodes HEVC in hardware at 4Kp60 but has no H.264 hardware decoder: H.264 runs in software on its CPU. The Pi 4 decodes H.264 only up to 1080p60. VP9 is a browser codec, and AV1 is decoded in hardware only by recent chips (Amlogic S905X4, Rockchip RK3588, Intel Arc and Core Ultra, Apple M3 and A17 Pro and later), so neither is a safe default yet.
This page is the codec-by-device matrix and the export recipe. The broader reference, with containers, image and audio formats and a failure table, is Video Codec and File Format Support by Signage Player; the full encoding workflow is in the video encoding guide.
The matrix: codecs by player hardware
"HW" means a published hardware decoder. "SW" means the CPU decodes it, which works for light loads but costs heat and headroom and can drop frames at high bitrates. Chip support varies by model and firmware, so verify on the exact device before rolling out a fleet.
| Player hardware | H.264 (AVC) | H.265 (HEVC) | VP9 | AV1 |
|---|---|---|---|---|
| Raspberry Pi 4 | HW up to 1080p60 | HW up to 4Kp60 | SW only | No hardware decoder |
| Raspberry Pi 5 | SW only (no H.264 decoder) | HW up to 4Kp60 | SW only | No hardware decoder |
| Android TV box, Amlogic S905X4 class | HW up to 4K30 | HW up to 4K75 (10-bit) | HW up to 4K75 | HW up to 4K120 |
| Android box, Rockchip RK3588 class | HW (listed by Rockchip; check the resolution limit) | HW up to 8K60 | Check the board vendor | HW up to 8K60 |
| Older or budget Android boxes | HW, usually 1080p to 4K | HW on most | HW on many | Usually none |
| Windows mini PC, Intel graphics | HW | HW: 8-bit from 6th Gen Core, 10-bit from 7th Gen; Windows needs the HEVC Video Extension | HW from 6th Gen Core (8-bit) | HW on Intel Arc and Core Ultra; check older chips |
| Chromebox / ChromeOS Flex | HW | Depends on the chip; Chrome plays HEVC only where hardware supports it | HW on most Intel and AMD chips | Recent chips only |
| iPad | HW | HW | Limited; avoid | HW on M3, M4 and A17 Pro class chips and later |
| Web browser | All major browsers | Safari yes; Chrome and Edge when the hardware decodes it; Firefox partial | Chrome, Edge, Firefox | Chrome, Edge, Firefox; Safari on hardware with an AV1 decoder |
What the matrix says in practice:
- H.264 is the only codec decoded everywhere, but not at 4K everywhere: the Pi 4 stops at 1080p60 and the S905X4 at 4K30.
- H.265 is the 4K codec. Every 4K-capable player in the table decodes it in hardware, with one software caveat: Windows needs Microsoft's HEVC extension, and Chrome relies on the device's hardware decoder.
- The Raspberry Pi 5 is the exception that flips the default. Its only hardware video decoder is HEVC.
The Raspberry Pi 5 case in numbers
Raspberry Pi's own documentation for the BCM2712 chip in the Pi 5 lists "4Kp60 HEVC hardware decode" and gives the software cost of H.264:
| Raspberry Pi 5, H.264 software decode | Approximate CPU load |
|---|---|
| 1080p24 | about 10 to 20 percent |
| 1080p60 | about 50 to 60 percent |
So 1080p30 H.264 is playable on a Pi 5, but it spends CPU that a multi-zone layout, a web widget or a ticker also wants, and it adds heat. For a Pi 5 fleet, export HEVC. For a mixed Pi 4 and Pi 5 fleet, HEVC is hardware-decoded on both. If H.264 must stay, keep 1080p files at moderate bitrates (under about 10 Mbps) and 30 fps. The Raspberry Pi platform page covers cooling and the rest of the Pi setup.
Recommended export settings
Settings consistent with our codec reference and encoding guide. Bitrates are ranges because talking-head footage needs far less than fast sports or confetti.
| Resolution and frame rate | H.264 bitrate | H.265 bitrate | Notes |
|---|---|---|---|
| 1280×720, 30 fps | 4 to 6 Mbps | 2 to 4 Mbps | Small screens, shelf displays |
| 1920×1080, 30 fps | 8 to 12 Mbps | 4 to 7 Mbps | Default for most screens |
| 1920×1080, 60 fps | 10 to 15 Mbps | 6 to 10 Mbps | Only for fast motion; 30 fps halves decode load |
| 3840×2160, 30 fps | Avoid on Pi and S905X4 class | 15 to 25 Mbps | Up to about 35 Mbps for fast motion |
| 3840×2160, 60 fps | Avoid | 25 to 35 Mbps | Check the player's 4K60 decode limit |
Settings that apply to every row:
| Setting | Value | Why |
|---|---|---|
| Container | MP4 | Universal; remux MOV or MKV to MP4 without re-encoding |
| H.264 profile and level | High, Level 4.2 for 1080p, 5.1 for 4K | Level 4.2 covers 1080p60 |
| H.265 profile | Main (8-bit) unless every player supports Main 10 | 8-bit decodes on more hardware |
| Pixel format | yuv420p (8-bit 4:2:0) | 4:2:2 and 4:4:4 fail on many hardware decoders |
| Resolution | The screen's native resolution | Scaling wastes bitrate and decode work |
| Keyframe interval | 2 seconds | Clean loop points and quick start |
| Rate control | VBR with a cap about 1.5 times the target | Quality where needed, no spikes |
| Audio | AAC 128 to 192 kbps, or no audio track | Most signage is muted |
| Rotation | Export portrait video already rotated | Do not rely on rotation metadata |
File size check
Bitrate decides how much each file costs in storage and download time on every player:
File size (MB) = bitrate (Mbps) × duration (seconds) ÷ 8
30-second 1080p H.264 at 10 Mbps: 10 × 30 ÷ 8 = 37.5 MB
30-second 4K H.265 at 20 Mbps: 20 × 30 ÷ 8 = 75 MB
Multiply by screens to see the download for a content update. The network bandwidth requirements page turns that into update windows.
The safe default recipe
For a fleet you do not fully know, one ffmpeg command produces a file that plays on every player in the matrix:
ffmpeg -i input.mov \
-c:v libx264 -profile:v high -level 4.2 -pix_fmt yuv420p \
-vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" \
-r 30 -b:v 10M -maxrate 15M -bufsize 20M -g 60 \
-c:a aac -b:a 160k -movflags +faststart \
output_1080p_h264.mp4
And the 4K or Raspberry Pi 5 version in HEVC:
ffmpeg -i input.mov \
-c:v libx265 -profile:v main -pix_fmt yuv420p -tag:v hvc1 \
-vf "scale=3840:2160:force_original_aspect_ratio=decrease,pad=3840:2160:(ow-iw)/2:(oh-ih)/2" \
-r 30 -b:v 20M -maxrate 30M -bufsize 40M -x265-params keyint=60 \
-c:a aac -b:a 160k -movflags +faststart \
output_2160p_hevc.mp4
Use -an in place of the audio options to drop audio entirely. The hvc1 tag helps Apple devices recognise HEVC in MP4.
Choosing in four questions
- Is any screen 4K? Use H.265 for those files.
- Is any player a Raspberry Pi 5? Use H.265, or keep H.264 at 1080p30 and moderate bitrate.
- Is the fleet unknown or mixed with older Android boxes? Use the H.264 safe default.
- Is it browser-only on hardware you control? VP9 or AV1 can work, but H.264 is still the least effort.
DigitalSignage.com's SignPlayer runs on Windows, Mac, Android and Android TV, Chrome OS, Raspberry Pi, iPad and modern web browsers. Whatever player app you use, the hardware decoder in the device sets the codec limits above, so test one file on the exact model before converting a whole library.
Sources
Checked on 2026-10-05:
- Raspberry Pi documentation, Processors (BCM2712): "4Kp60 HEVC hardware decode"; H.264 decoded in software, 1080p24 about 10 to 20 percent and 1080p60 about 50 to 60 percent of CPU. raspberrypi.com
- Raspberry Pi 5 product page: "4Kp60 HEVC decoder". raspberrypi.com
- Raspberry Pi 4 Model B specifications: "H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode)". raspberrypi.com
- Rockchip RK3588 product page: H.265, H.264 and AV1 multi-format decoder up to 8K at 60 fps. rock-chips.com
- Amlogic S905X4 decode specifications as published by CNX Software: AV1 4K120, HEVC Main 10 4K75, VP9 4K75, H.264 4K30. cnx-software.com
- Intel media-driver decode capability tables (HEVC 8-bit from Skylake, 10-bit from Kaby Lake, VP9 from Skylake, AV1 on DG2/Arc, Meteor Lake and later). github.com/intel/media-driver
- Apple Newsroom, M3 announcement (October 2023): the media engine supports AV1 decoding for the first time. apple.com
- Can I use, HEVC/H.265: Safari supported, Chrome and Edge partial (hardware-dependent), Firefox partial. caniuse.com
Frequently asked questions
What video format should I use for digital signage?
MP4 with H.264 video, High profile, 8-bit yuv420p, AAC audio or no audio, at the screen's native resolution and 30 fps, around 8 to 12 Mbps for 1080p. It plays on essentially every signage player. Use H.265/HEVC instead for 4K and for Raspberry Pi 5 fleets.
Does the Raspberry Pi 5 decode H.264 in hardware?
No. The Raspberry Pi 5 has a 4Kp60 HEVC hardware decoder but no H.264 hardware decoder, so H.264 is decoded in software on the CPU. Raspberry Pi's documentation puts 1080p24 H.264 at about 10 to 20 percent of CPU and 1080p60 at about 50 to 60 percent. Encode for a Pi 5 in H.265.
Does the Raspberry Pi 4 play 4K video?
Yes in H.265. Raspberry Pi specifies the Pi 4 at H.265 4Kp60 decode and H.264 1080p60 decode, so 4K content must be HEVC. Use H.264 only up to 1080p on a Pi 4.
Should I use H.265/HEVC or H.264 for signage?
Use H.264 for 1080p on a mixed or unknown fleet, because every player decodes it. Use H.265 for 4K, for Raspberry Pi 5 and mixed Pi 4 and Pi 5 fleets, and when storage or bandwidth is tight, since HEVC needs roughly 30 to 50 percent less bitrate for similar quality. On Windows, HEVC playback needs Microsoft's HEVC extension.
Can signage players play AV1?
Only recent hardware decodes AV1. Examples with published AV1 decode include the Amlogic S905X4 (up to 4K 120 fps), the Rockchip RK3588, Intel Arc and Core Ultra graphics, and Apple M3 and A17 Pro chips and later. Raspberry Pi 4 and 5 have no AV1 hardware decoder. For a general fleet, AV1 is not yet a safe default.
Is VP9 a good choice for digital signage?
Only for browser-based playback on hardware you control. Chrome, Edge and Firefox play VP9, and many Intel and Android chips decode it in hardware, but Raspberry Pi has no VP9 hardware decoder and Apple support is limited. H.264 or H.265 in MP4 is simpler and more widely decoded.
What bitrate should I use for 1080p and 4K signage video?
For H.264, about 8 to 12 Mbps at 1080p30 and 4 to 6 Mbps at 720p. For H.265, about 4 to 7 Mbps at 1080p30 and 15 to 25 Mbps at 4K30, up to about 35 Mbps for fast motion. Keep 1080p H.264 under about 10 Mbps if Raspberry Pi 5 players must decode it in software.
Why does my video play on my laptop but not on the signage player?
Usually because the file uses a profile, bit depth or pixel format the player's hardware decoder does not support, such as 10-bit or 4:2:2 from an editing application, or 4K H.264 on a player limited to 1080p H.264. Re-export as H.264 High profile, 8-bit yuv420p, MP4, at the screen's resolution.
Related guides
- Video Codec and File Format Support (reference) - containers, images, audio, failure table
- Video encoding guide - the full encoding workflow
- Raspberry Pi digital signage - the Pi 4 and Pi 5 in signage use
- Digital signage brightness guide - how many nits each location needs
- Digital signage power consumption and running cost - watts and cost per screen
- Typography and viewing distance - text size by distance
- Screen size and viewing distance - picking the display size
- Digital signage cost in 2026 - players, screens, software and power
Try it on your own screens, free
DigitalSignage.com, which publishes this guide, runs a permanent free plan: the first 3 screens are free forever (no credit card, no ads, no watermark, no time limit), then from $3 per screen per month with volume pricing via a public calculator. The free SignPlayer runs on Windows, Mac, Android and Android TV, Chrome OS, Raspberry Pi, iPad or any modern web browser, so you can test a codec on the exact hardware you plan to deploy before converting a library. Start free · 2026 pricing · How 11 vendors compare on price
This guide is maintained by MediaSignage, pioneers of digital signage technology since 2006.