Codec Tables
The goal is to Direct Play all media. This means the container, video, audio and subtitles are all compatible with the client. If the media is incompatible for any reason, Jellyfin will use FFmpeg to convert the media to a format that the client can process. Direct Stream will occur if the audio, container or subtitles happen to not be supported. If the video codec is unsupported, this will result in video transcoding. Subtitles can be tricky because they can cause Direct Stream (subtitles are remuxed) or video transcoding (burning in subtitles) to occur. This is the most intensive CPU component of transcoding. Decoding is less intensive than encoding.
Video Compatibility
Test your browser's compatibility for any codec profile.
Sorted by efficency (excluding bit depth) | Chrome | Edge | Firefox | Safari | Android | Android TV | iOS | SwiftFin (iOS) | Roku | Kodi | Desktop |
---|---|---|---|---|---|---|---|---|---|---|---|
MPEG-4 Part 2/SP | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
MPEG-4 Part 2/ASP | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | |
H.264 8Bit | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
H.264 10Bit | ✅ | ✅ | ❌ | 🔶12 | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ |
H.265 8Bit | 🔶8 | ✅7 | ❌ | 🔶1 | 🔶2 | ✅5 | 🔶1 | ✅6 | 🔶9 | ✅ | ✅ |
H.265 10Bit | 🔶8 | ✅7 | ❌ | 🔶1 | 🔶2 | 🔶5 | 🔶1 | ✅6 | 🔶9 | ✅ | ✅ |
VP9 | ✅ | ✅ | ✅ | ✅10 | ✅3 | 🔶3 | ❌ | ❌ | ✅ | ✅ | ✅ |
AV1 | ✅ | ✅ | ✅ | 🔶11 | ✅ | 🔶4 | ❌ | ❌ | ✅ | ✅ | ✅ |
1HEVC is only supported in MP4, M4V, and MOV containers.
2Android playback is currently broken. Client reports that HEVC is supported and attempts to Direct Stream.
3May be (partially) dependent on Hardware support (can be compensated with CPU decoding on Android). Most new Android phones in the higher price range and many "4K" Android TV devices have VP9 hardware decoding support. Refer to you manufacturer for supported codecs.
4Needs atleast Android TV 10.
5As of version 0.12, HEVC is enabled on all devices running Android 5.0+, but early generations of the Amazon Fire may not work yet. 10Bit may be supported depending on your device. Before Client 0.12, HEVC support was enabled on specific devices.
6HEVC decoding is supported on Apple devices with the A8X chip or newer and at least iOS 14.
7HEVC decoding is only supported on Windows 10 with the HEVC Video Extension from the Microsoft store.
8Chromium 107 does support HEVC decoding when HEVC hardware decoding is available.
9HEVC decoding is only supported on 4K devices.
10VP9 decoding on Safari requires at least Safari 14.
11AV1 decoding is only available on devices with A17 or M3 series chips or newer and requires at least Safari 17.
12Need to be manually enabled in Settings > Playback > Enable H.264 High 10 Profile. Playback on Apple Silicon Macs with macOS version < 14 and Intel Macs with all macOS versions may result in blank frames if this is enabled.
MPEG-2 Part 2 | MPEG-4 Part-21 | MPEG-4 Part-10 | MPEG-4 Part-14 | MPEG-H Part 2 |
---|---|---|---|---|
H.262 | MPEG-4 SP/ASP | H.264 | MP4 Container2 | H.265 |
MPEG-2 Video | DivX | MPEG-4 AVC | HEVC | |
DVD-Video | DX50 |
2 MPEG-4 Part 17: MP4TT Subtitles
Audio Compatibility
If the audio codec is unsupported or incompatible (such as playing a 5.1 channel stream on a stereo device), the audio codec must be transcoded. This is not nearly as intensive as video transcoding.
Chrome | Edge | Firefox | Safari | Android | Android TV | iOS | SwiftFin (iOS) | Roku | Kodi | Desktop | |
---|---|---|---|---|---|---|---|---|---|---|---|
FLAC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
MP3 | 🔶1 | ✅ | 🔶 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
AAC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
AC3 | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | |
EAC32 | ✅ | ✅ | ✅ | ✅ | ✅ |