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 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 efficiency (excluding bit depth) | Chrome | Edge | Firefox | Safari | Android | Android TV | iOS | SwiftFin (iOS) | Roku | Kodi | Jellyfin Media Player |
|---|---|---|---|---|---|---|---|---|---|---|---|
| MPEG-4 Part 2/SP | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | ✅ |
| MPEG-4 Part 2/ASP | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | ✅ | ✅ | ✅ | |
| H.264 8Bit | ✅ | ✅ | 🔶8 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| H.264 10Bit | ✅ | ✅ | ❌ | 🔶4 | ✅ | ✅ | ❌ | ✅ | ❌ | ✅ | ✅ |
| H.265 8Bit | 🔶 | 🔶2 | 🔶7 | ✅ | 🔶 | ✅ | ✅ | ✅ | 🔶3 | ✅ | ✅ |
| H.265 10Bit | 🔶 | 🔶2 | 🔶7 | ✅ | 🔶 | 🔶 | ✅ | ✅ | 🔶3 | ✅ | ✅ |
| VP9 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ❌ | ⚠️5 | ✅ | ✅ | ✅ |
| AV1 | ✅ | ✅ | ✅ | 🔶 | ✅ | 🔶1 | ❌ | 🔶6 | ✅ | ✅ | ✅ |
Legends:
❌=Not Supported.
🔶=Support depends on device and/or settings.
⚠️=Software Decode Only.
✅=Fully supported (Hardware support with software fallback).
This table shows the support status of recent client software and OS versions. Legacy versions may differ in support. Remuxing due to container compatibility is considered fully supported for this table.
1Needs at least Android TV 10.
2Windows requires the HEVC video extension from Microsoft Store.
3HEVC decoding is only supported on 4K devices.
4Needs to be manually enabled in Settings > Playback > Enable H.264 High 10 Profile. Requires macOS >= 14 and Apple Silicon.
5VP9 is only available with Swiftfin (VLCKit) player.
6AV1 is enabled by default for Swiftfin (VLCKit). AV1 is disabled by default for Native (AVKit). Enabling AV1 may result in a poor experience for older devices.
7Windows requires the HEVC video extension from Microsoft Store. Linux requires system ffmpeg for support.
Some Linux distributions provide a Firefox package that does not have H264 support, causing transcoding to be required. You may need to install additional packages on these system. The most obvious symptom is Jellyfin attempting to transcode to VP9.
| 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
HDR Support
HDR is only supported on a very limited range of devices:
-
iOS Devices with an HDR capable internal display can display HDR content when using a browser or the Jellyfin iOS App (not Swiftfin) as long as the codec is supported by the client. All of them support HEVC and VP9, while AV1 is supported on newer devices. HDR10, Dolby Vision and HLG are supported.
-
Android devices running either the official Android App or using Chrome can display HDR content if the device supports HDR and the source format. Format support depends on device.
-
Macs running macOS that support HDR can play HDR content when using Safari, Chrome or Firefox on an HDR capable display as long as the source codec is supported. Safari has the most complete support, including HDR10, Dolby Vision (including P5) and HLG. Chrome and Firefox only support HDR10. Chrome supports HDR10 on HEVC, VP9 and AV1. Firefox only supports HDR on VP9 and AV1 content. Please refer to the list of Macs that support HDR to check if your device is supported. On non-Apple displays, other HDR formats will be tone-mapped to HDR10 by the client device.
-
Windows PCs with an HDR display with HDR enabled in the settings using Edge or Chrome. Dolby Vision only works in Edge and requires the Dolby Vision add-on from the Microsoft Store to be installed. Edge generally produces better colors than Chrome when playing HDR content.
-
Android TV devices with HDR support running the official Android TV App. HDR format support depends on the specific device you are running.
-
WebOS devices (Newer LG Smart TVs) running the official WebOS client supports HDR. However, mkv containers are known to cause issues. Please enable the force remux mkv to mp4 option in the client settings as a workaround.
-
Some Chromium-based browsers on Linux will attempt Client-side HDR to SDR tonemapping. This generally looks very bad. There will be no server side involvement when this is happening.
Devices not listed above do not support HDR on any official client. Any HDR content will have to be converted to SDR by the server for proper playback on these clients. For more info, please refer to our tone-mapping documentation
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.
| Codec | Chrome | Edge | Firefox | Safari | Android | Android TV | iOS | SwiftFin (iOS) | Roku | Kodi | Desktop |
|---|---|---|---|---|---|---|---|---|---|---|---|
| FLAC | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| MP3 | 🔶1 | ✅ | 🔶 | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| AAC | ✅ | ✅ | ✅ |