Skip to main content

Digital Signage Video Format Support by Player

Quick answer

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 hardwareH.264 (AVC)H.265 (HEVC)VP9AV1
Raspberry Pi 4HW up to 1080p60HW up to 4Kp60SW onlyNo hardware decoder
Raspberry Pi 5SW only (no H.264 decoder)HW up to 4Kp60SW onlyNo hardware decoder
Android TV box, Amlogic S905X4 classHW up to 4K30HW up to 4K75 (10-bit)HW up to 4K75HW up to 4K120
Android box, Rockchip RK3588 classHW (listed by Rockchip; check the resolution limit)HW up to 8K60Check the board vendorHW up to 8K60
Older or budget Android boxesHW, usually 1080p to 4KHW on mostHW on manyUsually none
Windows mini PC, Intel graphicsHWHW: 8-bit from 6th Gen Core, 10-bit from 7th Gen; Windows needs the HEVC Video ExtensionHW from 6th Gen Core (8-bit)HW on Intel Arc and Core Ultra; check older chips
Chromebox / ChromeOS FlexHWDepends on the chip; Chrome plays HEVC only where hardware supports itHW on most Intel and AMD chipsRecent chips only
iPadHWHWLimited; avoidHW on M3, M4 and A17 Pro class chips and later
Web browserAll major browsersSafari yes; Chrome and Edge when the hardware decodes it; Firefox partialChrome, Edge, FirefoxChrome, 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 decodeApproximate CPU load
1080p24about 10 to 20 percent
1080p60about 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.

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 rateH.264 bitrateH.265 bitrateNotes
1280×720, 30 fps4 to 6 Mbps2 to 4 MbpsSmall screens, shelf displays
1920×1080, 30 fps8 to 12 Mbps4 to 7 MbpsDefault for most screens
1920×1080, 60 fps10 to 15 Mbps6 to 10 MbpsOnly for fast motion; 30 fps halves decode load
3840×2160, 30 fpsAvoid on Pi and S905X4 class15 to 25 MbpsUp to about 35 Mbps for fast motion
3840×2160, 60 fpsAvoid25 to 35 MbpsCheck the player's 4K60 decode limit

Settings that apply to every row:

SettingValueWhy
ContainerMP4Universal; remux MOV or MKV to MP4 without re-encoding
H.264 profile and levelHigh, Level 4.2 for 1080p, 5.1 for 4KLevel 4.2 covers 1080p60
H.265 profileMain (8-bit) unless every player supports Main 108-bit decodes on more hardware
Pixel formatyuv420p (8-bit 4:2:0)4:2:2 and 4:4:4 fail on many hardware decoders
ResolutionThe screen's native resolutionScaling wastes bitrate and decode work
Keyframe interval2 secondsClean loop points and quick start
Rate controlVBR with a cap about 1.5 times the targetQuality where needed, no spikes
AudioAAC 128 to 192 kbps, or no audio trackMost signage is muted
RotationExport portrait video already rotatedDo 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​

  1. Is any screen 4K? Use H.265 for those files.
  2. Is any player a Raspberry Pi 5? Use H.265, or keep H.264 at 1080p30 and moderate bitrate.
  3. Is the fleet unknown or mixed with older Android boxes? Use the H.264 safe default.
  4. 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.

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.