Skip to main content

Video Encoding for Digital Signage

Video content dominates digital signage, but improper encoding leads to playback failures, poor quality, excessive bandwidth, and frustrated deployments. This comprehensive guide covers everything you need to know about encoding video for reliable digital signage playback.


Video Encoding Fundamentals

The Encoding Pipeline

Source Video → Decode → Process → Encode → Container → Distribute → Decode → Display

Key Decisions:
├── Codec: How video is compressed (H.264, HEVC, AV1)
├── Container: File format wrapper (MP4, MKV, MOV)
├── Resolution: Frame dimensions (1920×1080, 3840×2160)
├── Bitrate: Data rate (quality vs. file size)
├── Frame Rate: Frames per second (24, 30, 60 fps)
└── Profile/Level: Codec capability subset

Why Encoding Matters for Signage

Common Problems from Poor Encoding:

  • Playback stuttering or freezing
  • Audio/video sync issues
  • Player crashes
  • Excessive storage consumption
  • Network congestion
  • Display compatibility failures
  • Color/quality degradation

Properly Encoded Video Delivers:

  • Reliable 24/7 playback
  • Consistent quality across devices
  • Efficient bandwidth utilization
  • Reduced storage costs
  • Simplified content management

Video Codec Comparison

Major Codecs for Digital Signage

CodecAlso Known AsReleasedCompressionSupport Level
H.264AVC, MPEG-4 Part 102003GoodUniversal
H.265HEVC2013ExcellentGood
VP9-2013ExcellentGood
AV1-2018BestGrowing
MPEG-2H.2621995PoorLegacy
MPEG-4 Part 2DivX, Xvid1999PoorLegacy

Why H.264 Remains the Standard:

  • Universal hardware decode support
  • Mature, well-optimized encoders
  • Extensive player compatibility
  • Reasonable file sizes
  • Well-documented behavior

H.264 Profiles:

ProfileUse CaseFeatures
BaselineLegacy devices, mobileI and P frames, no CABAC
MainStandard signageB frames, CABAC
HighHD/4K content8×8 transform, additional tools
High 10HDR content10-bit color depth
High 4:2:2Broadcast, professional4:2:2 chroma

Recommended: High Profile for modern signage players

H.264 Levels:

LevelMax ResolutionMax BitrateUse Case
3.11280×72014 Mbps720p signage
4.02048×102420 Mbps1080p standard
4.12048×102450 Mbps1080p high quality
4.22048×108850 Mbps1080p 60fps
5.03840×2160135 Mbps4K 30fps
5.14096×2160240 Mbps4K 60fps

H.265/HEVC (For 4K and Advanced Deployments)

Advantages:

  • 40-50% better compression than H.264
  • Essential for 4K content
  • HDR/WCG support
  • Growing hardware support

Considerations:

  • Requires modern hardware decode
  • Licensing complexity
  • Slower encoding
  • Not universal yet

HEVC Profiles:

ProfileFeaturesUse Case
Main8-bit, 4:2:0Standard 4K signage
Main 1010-bit, 4:2:0HDR content
Main 4:2:2 1010-bit, 4:2:2Professional/broadcast

Player Support Matrix:

PlatformHEVC Hardware Decode
Windows (Intel 6th gen+)Yes
Windows (AMD 2016+)Yes
Windows (NVIDIA 900+)Yes
Android (2016+)Most devices
Raspberry Pi 4/5Yes
BrightSign (HD/XD/XT)Yes
Chrome OSVaries by device
Smart TVs (2017+)Most models

AV1 (Future Standard)

Advantages:

  • 30% better than HEVC
  • Royalty-free
  • Growing hardware support
  • Best for 4K/8K

Current Limitations:

  • Limited hardware decode (2020+ devices)
  • Slower encoding
  • Not yet universal
  • Player support varies

AV1 Timeline:

  • 2024-2025: Growing hardware support
  • 2026+: Becoming mainstream option

VP9 (Alternative for Specific Platforms)

Use Cases:

  • YouTube/Google ecosystem
  • Web-based players
  • Chrome devices
  • Android primary

Limitations:

  • Less universal than H.264
  • Fewer hardware decoders
  • Google-centric ecosystem

Codec Selection Guide

Decision Matrix

Select Your Codec:

Need universal compatibility?
├── Yes → H.264 High Profile
└── No ↓

Is 4K content primary?
├── Yes → HEVC (verify player support)
└── No ↓

Bandwidth severely limited?
├── Yes → HEVC or AV1 (if supported)
└── No ↓

Web-based player only?
├── Yes → H.264 or VP9
└── No ↓

Default recommendation → H.264 High Profile

Platform-Specific Recommendations

PlatformPrimary CodecSecondaryAvoid
Windows PlayersH.264HEVCMPEG-2
BrightSignH.264HEVCVP9
Android/SoCH.264HEVCAV1 (older)
Raspberry Pi 4+H.264HEVCVP9
Chrome OSH.264VP9HEVC (some)
Samsung TizenH.264HEVCVP9
LG webOSH.264HEVCAV1
Web PlayersH.264VP9HEVC

Resolution and Frame Rate

Resolution Guidelines

Display ResolutionSource ResolutionNotes
1920×1080 (FHD)1920×1080Native 1:1
3840×2160 (4K)3840×2160Native 1:1
1080×1920 (Portrait FHD)1080×1920Encode portrait
2160×3840 (Portrait 4K)2160×3840Encode portrait
Video Wall (custom)Match total pixelsOr per-screen segments

Resolution Best Practices:

  • Match source to display native resolution
  • Never upscale source content
  • Encode in display orientation (portrait/landscape)
  • Video walls: Encode at total wall resolution

Frame Rate Selection

Content TypeRecommended FPSNotes
Static/text heavy24-30 fpsLower = smaller files
General signage30 fpsGood balance
Smooth motion60 fpsSports, smooth scroll
Cinematic content24 fpsFilm look
Animation30 fpsSufficient fluidity

Frame Rate Rules:

  • Match source frame rate (don't convert 24 → 30)
  • Use constant frame rate (not variable)
  • 60 fps only when motion requires it
  • Higher fps = larger files, more processing

Aspect Ratio Handling

ScenarioApproach
16:9 content → 16:9 displayDirect playback
4:3 content → 16:9 displayPillarbox or crop
16:9 content → 9:16 portraitLetterbox, crop, or re-edit
Non-standard → StandardEncode to target with padding

Bitrate Optimization

Understanding Bitrate

Bitrate = File Size / Duration

  • Higher bitrate = better quality, larger files
  • Lower bitrate = smaller files, potential quality loss
  • Balance: Sufficient quality with efficient file size

H.264 Bitrate Guidelines:

ResolutionLow MotionMedium MotionHigh Motion
720p (30fps)2-4 Mbps4-6 Mbps6-8 Mbps
1080p (30fps)4-6 Mbps6-10 Mbps10-15 Mbps
1080p (60fps)6-10 Mbps10-15 Mbps15-20 Mbps
4K (30fps)15-20 Mbps20-35 Mbps35-50 Mbps
4K (60fps)25-35 Mbps35-50 Mbps50-80 Mbps

HEVC Bitrate Guidelines (30-40% lower than H.264):

ResolutionLow MotionMedium MotionHigh Motion
1080p (30fps)3-4 Mbps4-7 Mbps7-10 Mbps
4K (30fps)10-15 Mbps15-25 Mbps25-35 Mbps
4K (60fps)18-25 Mbps25-35 Mbps35-55 Mbps

VBR vs. CBR

Constant Bitrate (CBR):

  • Fixed data rate throughout
  • Predictable file sizes
  • Predictable bandwidth
  • Quality varies with content complexity

Variable Bitrate (VBR):

  • Adapts to content complexity
  • Better quality per bit
  • Less predictable file sizes
  • More efficient overall

Recommendation: VBR with constrained maximum (capped VBR)

Encoding Settings:

Constrained VBR Example:
- Target bitrate: 8 Mbps
- Maximum bitrate: 12 Mbps
- VBV buffer: 1.5× target = 12 Mbit

Result: Quality adapts to content, never exceeds 12 Mbps

Calculating Storage Requirements

File Size (GB) = (Bitrate in Mbps × Duration in seconds) / 8 / 1024

Example:
- 8 Mbps video
- 60 seconds
- Size = (8 × 60) / 8 / 1024 = 0.059 GB ≈ 60 MB

Daily Loop (8 hours, various content):
- Average 6 Mbps
- 28,800 seconds
- Size = (6 × 28800) / 8 / 1024 = 21.1 GB

Container Formats

Containers vs. Codecs

Container = File format (packaging) Codec = Compression method (content)

Example: video.mp4

Container: MP4 (MPEG-4 Part 14)
├── Video track: H.264 codec
├── Audio track: AAC codec
└── Metadata: Duration, chapters, etc.

Container Comparison

ContainerExtensionH.264HEVCAV1Signage Use
MP4.mp4Recommended
MOV.movMac-origin
MKV.mkvFlexible
WebM.webmWeb players
AVI.aviLegacy
TS.tsStreaming

Recommendation: MP4 for maximum compatibility

MP4 Best Practices

Moov Atom Placement:

  • Place at file start (fast start/web optimized)
  • Enables immediate playback without full download
  • Critical for network-delivered content

FFmpeg Command:

-movflags +faststart

Audio Encoding

Audio Codec Selection

CodecQualityCompatibilityUse Case
AAC-LCGoodUniversalDefault choice
AAC-HEGood (low bitrate)GoodBandwidth limited
MP3AcceptableUniversalLegacy
AC3/DolbyGoodHDMI outputAV systems
OpusExcellentGrowingWeb, modern
PCMPerfectLarge filesArchival

Recommendation: AAC-LC for universal signage

Audio Bitrate Guidelines

Quality LevelStereo BitrateTypical Use
Background64-96 kbpsAmbient, low priority
Standard128 kbpsGeneral signage
Good192 kbpsMusic-focused
High256-320 kbpsPremium audio

Audio Sample Rate

Sample RateUse Case
44.1 kHzMusic, CD-quality
48 kHzVideo standard (recommended)
96 kHzProfessional audio

Recommendation: 48 kHz to match video standards

Channel Configuration

ChannelsConfigurationNotes
1MonoSimple, small files
2StereoStandard
5.1SurroundRequires compatible output

Signage Recommendation: Stereo (2 channel) at 48 kHz, 128-192 kbps AAC


Encoding Tools and Settings

Professional Tools

Software Encoders:

ToolTypeBest For
FFmpegCommand-lineAutomation, batch
HandBrakeGUIIndividual files
Adobe Media EncoderGUICreative workflow
DaVinci ResolveGUIColor grading + encode
Compressor (Apple)GUIApple ecosystem

Hardware Encoders:

  • NVIDIA NVENC
  • Intel QuickSync
  • AMD VCE
  • Apple VideoToolbox

FFmpeg Reference Commands

Standard 1080p H.264 for Signage:

ffmpeg -i input.mp4 \
-c:v libx264 \
-preset medium \
-profile:v high \
-level 4.1 \
-crf 18 \
-maxrate 10M \
-bufsize 15M \
-c:a aac \
-b:a 192k \
-ar 48000 \
-movflags +faststart \
output.mp4

4K HEVC for Modern Players:

ffmpeg -i input.mp4 \
-c:v libx265 \
-preset medium \
-profile:v main \
-crf 20 \
-maxrate 25M \
-bufsize 37M \
-c:a aac \
-b:a 192k \
-ar 48000 \
-movflags +faststart \
output.mp4

Portrait Mode Encoding (1080×1920):

ffmpeg -i input.mp4 \
-vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2" \
-c:v libx264 \
-preset medium \
-crf 18 \
-c:a aac \
-b:a 192k \
-movflags +faststart \
output.mp4

Batch Encoding Script (Bash):

#!/bin/bash
for file in *.mp4; do
ffmpeg -i "$file" \
-c:v libx264 -preset medium -crf 18 \
-c:a aac -b:a 192k \
-movflags +faststart \
"encoded/${file%.mp4}_signage.mp4"
done

Quality Settings Explained

CRF (Constant Rate Factor):

  • Range: 0-51 (lower = better quality, larger files)
  • 18: Visually lossless for most content
  • 20-22: Excellent quality, good compression
  • 23-25: Good quality, smaller files
  • 26+: Noticeable quality loss

Preset (Encoding Speed):

PresetSpeedCompressionUse
ultrafastFastestPoorestTesting only
veryfastVery fastPoorReal-time
fasterFastBelow averageQuick jobs
fastFastAverageDaily use
mediumMediumGoodRecommended
slowSlowBetterFinal encode
slowerSlowerEven betterQuality priority
veryslowSlowestBestMaximum quality

Recommendation: medium preset with crf 18-20


Common Issues and Solutions

Playback Problems

SymptomLikely CauseSolution
Video won't playCodec incompatibilityRe-encode with H.264
Stuttering/choppyBitrate too highReduce bitrate or resolution
Audio out of syncVFR sourceConvert to CFR
Black screen with audioHardware decode failureCheck player codec support
Freezing mid-playbackCorrupt fileRe-encode, check source
Color looks wrongColor space mismatchSet bt709 color space
Blocky artifactsBitrate too lowIncrease bitrate

Variable Frame Rate (VFR) Issues

Problem: Many phone/screen recordings use VFR, causing playback issues.

Detection:

ffprobe -v error -select_streams v:0 \
-show_entries stream=r_frame_rate,avg_frame_rate \
input.mp4

If r_frame_rate ≠ avg_frame_rate, content may be VFR.

Solution - Convert to CFR:

ffmpeg -i input.mp4 \
-vsync cfr \
-r 30 \
[other options] \
output.mp4

Color Space Issues

Standard for SDR Signage:

-colorspace bt709 -color_primaries bt709 -color_trc bt709

Full FFmpeg Example:

ffmpeg -i input.mp4 \
-c:v libx264 -crf 18 \
-colorspace bt709 \
-color_primaries bt709 \
-color_trc bt709 \
-c:a aac \
output.mp4

File Size Optimization

When Files Are Too Large:

  1. Reduce bitrate (try CRF 22-24)
  2. Lower resolution if viewing distance allows
  3. Use HEVC if players support it
  4. Reduce frame rate for low-motion content
  5. Optimize source content (remove unnecessary complexity)

When Quality Is Insufficient:

  1. Verify source quality is good
  2. Lower CRF (try 16-18)
  3. Increase bitrate limits
  4. Use slower encoding preset
  5. Check for VFR issues

Encoding Workflow

Production Workflow

Content Creation Workflow:

1. PRODUCTION
├── Shoot/create at highest practical quality
└── Export masters in production codec (ProRes, DNxHD)

2. ARCHIVAL
├── Keep production masters
└── Create high-quality archive version

3. SIGNAGE ENCODE
├── Encode from archival master (not production master)
├── Target specific player requirements
└── Create multiple versions if needed

4. QUALITY CHECK
├── Test on target hardware
├── Verify playback performance
└── Check sync, color, audio

5. DEPLOYMENT
├── Upload to CMS
├── Verify delivery
└── Monitor playback

Multi-Platform Encoding

When supporting multiple player types:

Source Master

├──► H.264 High Profile (universal)
│ └── Resolution/bitrate for weakest player

├──► HEVC Main Profile (4K players)
│ └── Higher quality, smaller files

└──► WebM/VP9 (web players)
└── Browser compatibility

Frequently Asked Questions


Summary

Universal Signage Encoding Settings:

Codec: H.264 High Profile (Level 4.1 for 1080p, 5.0 for 4K)
Container: MP4 with fast start
Resolution: Match display native
Frame Rate: 30 fps (60 for smooth motion)
Bitrate: 6-10 Mbps (1080p) / 20-35 Mbps (4K)
Audio: AAC-LC, 192 kbps, 48 kHz, Stereo

Key Principles:

  1. Always verify player codec support before encoding
  2. Match resolution to display native resolution
  3. Use constant frame rate (CFR), not variable (VFR)
  4. Enable fast start for MP4 files
  5. Test on actual target hardware before deployment
  6. Keep source masters for re-encoding needs

Proper video encoding prevents playback failures, optimizes bandwidth, and ensures consistent quality across your digital signage network.