Quick answer

What this guide helps you do

Choose the best Jellyfin file format for Direct Play. Compare MP4 vs MKV, H.264 vs HEVC, audio and subtitle compatibility, and avoid transcoding.

Jellyfin beginner path

New to Jellyfin? Follow this order.

These guides form the SmallGrid Jellyfin path: install it, fix folder access, solve empty libraries, reduce unnecessary transcoding, then choose the right mini PC.

  1. Jellyfin on Ubuntu: Low-Power Setup, Media Folders and Reboot Checks
  2. Give Jellyfin Access to Media Folders on Ubuntu
  3. Jellyfin Library Not Showing Files? 8 Checks That Fix It
  4. Jellyfin Direct Play vs Transcoding: CPU, Quality and Compatibility
  5. Best Mini PC Specs for Jellyfin: What Actually Matters

Printable helper

Prefer to work through this step by step?

Download the matching checklist and tick off the common causes while you work through the guide.

Quick answer

For the widest Jellyfin Direct Play compatibility, use MP4 or MKV with H.264 video, AAC or AC3 audio, and external SRT subtitles.

Container: MP4 or MKV
Video:     H.264
Audio:     AAC or AC3
Subtitles: External SRT

For 4K libraries, HEVC/H.265 can save substantial storage, but use it only when the actual playback devices support the required codec profile, bit depth and HDR format.

There is no single file format guaranteed to Direct Play on every Jellyfin client. The final result depends on the complete combination of:

  • container
  • video codec and profile
  • audio codec and channel layout
  • subtitle format
  • resolution and bitrate
  • HDR format
  • client application
  • quality settings
  • local or remote bandwidth

Before converting a file, play it and inspect the active session in the Jellyfin dashboard. The conversion reason will normally identify whether the problem is the container, video, audio, subtitles, bitrate or client.


Best Jellyfin formats at a glance

Library goalContainerVideoAudioSubtitlesLikely result
Broadest compatibilityMP4H.264AACExternal SRTStrongest chance of Direct Play across mixed clients
Flexible home libraryMKVH.264AAC or AC3SRTDirect Play on many native clients; some may Direct Stream
Storage-efficient 4KMKVHEVC Main 10AAC or AC3 compatibility trackSRTDirect Play only where HEVC, bit depth and HDR are supported
Archive with specialist audioMKVH.264 or HEVCOriginal audio plus compatible fallbackText subtitles where possibleFlexible, but behaviour varies by client
Low-power serverMP4 or MKVCodec supported by clientsCompatible audioSRTClient compatibility matters more than raw server power

For the wider playback explanation, use Jellyfin Direct Play: Formats, Clients and Transcoding.


What file formats does Jellyfin support?

Jellyfin can catalogue and process many containers, video codecs, audio codecs and subtitle formats. That does not mean every client can Direct Play every combination.

The server can respond in three ways:

  • Direct Play: sends the original streams
  • Direct Stream: repackages compatible streams into another delivery container
  • Transcoding: converts incompatible video, audio, subtitles, bitrate or resolution

A supported file can therefore still transcode because the playback client cannot decode one part of it.

Read Jellyfin Direct Play vs Transcoding for the CPU and quality differences.


Best video codec for Jellyfin

H.264: best for broad compatibility

H.264 remains the safest default for 1080p content and mixed client environments.

Use H.264 when:

  • several different playback devices matter
  • browser playback matters
  • the server has limited transcoding ability
  • predictable Direct Play is more important than maximum compression
  • older televisions or streaming devices remain in use

The trade-off is larger files than HEVC at similar visual quality.

HEVC or H.265: best for efficient 4K libraries

HEVC is useful for 4K and storage-efficient libraries.

Use HEVC when:

  • every important client supports HEVC
  • the required profile and bit depth are supported
  • HDR compatibility has been tested
  • storage savings justify narrower client compatibility

Do not convert an entire library to HEVC only because a device is advertised as “4K”. Confirm the actual codec profile, app behaviour, audio support and subtitle handling.

AV1: efficient but client-led

AV1 can offer strong compression, but client support is less universal than H.264 and HEVC.

Use AV1 only when the actual household clients support it reliably. Treat it as a client-led format choice rather than the general default.


MP4 vs MKV for Jellyfin

MP4 and MKV are containers. They hold the video, audio, subtitle, chapter and metadata tracks.

ContainerMain advantageMain limitation
MP4Broad browser, mobile and streaming-device compatibilityLess flexible for unusual audio, subtitle and chapter combinations
MKVFlexible audio, subtitles, chapters and multiple tracksSome clients may Direct Stream or reject specific combinations

Choose MP4 when

  • browser playback matters
  • you want a simple compatibility file
  • the file uses H.264 and AAC
  • multiple specialist tracks are not required

A strong compatibility combination is:

MP4 + H.264 + AAC + external SRT

Choose MKV when

  • you need several audio or subtitle tracks
  • you want chapters
  • you keep original audio plus a compatibility track
  • library flexibility matters
  • most playback happens through capable native clients

MKV does not automatically cause video transcoding. A client may Direct Play it, Direct Stream it into another container or convert only an incompatible audio track.


Can Jellyfin play MP4 files?

Yes. MP4 is one of the strongest container choices for broad client compatibility, particularly when combined with:

Video: H.264
Audio: AAC
Subtitles: external SRT

An MP4 file can still transcode when it contains an unsupported video profile, audio format, bitrate, HDR format or subtitle combination.

The container name alone does not determine the playback mode.


Can Jellyfin play MKV files?

Yes. MKV is useful for media libraries because it can contain multiple audio tracks, subtitle tracks, chapters and flexible metadata.

Whether an MKV Direct Plays depends on the client. If the video and audio codecs are supported but the container is not, Jellyfin may Direct Stream the file without re-encoding the video.

Direct Stream is normally a lightweight and acceptable result.


Audio formats and Direct Play

A compatible video stream can still require audio conversion.

Safer general choices include:

AAC
AC3

Formats that can cause client-specific conversion include:

DTS
DTS-HD
TrueHD
EAC3 on older devices
unsupported multichannel layouts

Audio-only conversion is normally much lighter than video conversion, but it still changes the playback mode.

For mixed clients, keep the original high-quality audio track and add AAC or AC3 as a compatibility track where practical.


Subtitle formats and Direct Play

External SRT subtitles are normally the safest choice:

Film Name (2026).mkv
Film Name (2026).en.srt

Text subtitle formats are usually easier for clients to render directly.

Formats that may require burn-in include:

  • PGS
  • VobSub
  • ASS or SSA when the client cannot reproduce the styling

Subtitle burn-in requires Jellyfin to create new video frames, which triggers full video transcoding.

Test the same scene in this order:

  1. play with subtitles enabled
  2. check the dashboard
  3. disable subtitles
  4. replay the same scene

If the mode changes to Direct Play or Direct Stream, use Jellyfin Subtitles Causing Transcoding.


Container: MP4 or MKV
Video:     H.264
Audio:     AAC or AC3
Subtitles: External SRT

This is the safest general target for a low-power server supporting several client types.

Use MP4 with H.264 and AAC for the broadest compatibility. Use MKV with H.264 and AAC or AC3 when multiple tracks and chapters are important.


Container: MKV
Video:     HEVC Main 10
Audio:     Original track plus AAC or AC3 compatibility track
Subtitles: External SRT where possible
Requirement: Important clients support the exact video and HDR format

For remote viewing, a separate 1080p version may be more practical than asking a low-power server to convert high-bitrate 4K media in real time.

Avoid image-based subtitles where possible because burn-in can turn an otherwise compatible 4K file into a demanding video transcode.


Inspect a Jellyfin file with ffprobe

Run:

ffprobe -hide_banner "Film Name (2026).mkv"

For a compact stream summary:

ffprobe -v error \
  -show_entries stream=index,codec_type,codec_name,profile,width,height,channels \
  -of table \
  "Film Name (2026).mkv"

Look for:

  • container
  • video codec and profile
  • pixel format and bit depth
  • resolution and frame rate
  • audio codecs and channels
  • subtitle codecs
  • bitrate

Then compare those details with the client and conversion reason shown in the Jellyfin dashboard.


Worked diagnosis example

Suppose a file contains:

Container: MKV
Video:     H.264
Audio:     DTS
Subtitles: PGS

The video codec is broadly compatible, but the client may still transcode because of DTS audio or PGS subtitle burn-in.

Test in this order:

  1. disable subtitles
  2. replay and inspect the dashboard
  3. switch to a compatible audio track
  4. replay again
  5. try a native Jellyfin client instead of a browser
ResultLikely causeSmallest fix
Direct Play after subtitles are disabledUnsupported subtitle renderingUse SRT or another client
Video remains original but audio convertsDTS is unsupportedSelect or add AAC/AC3
Browser Direct Streams but native app Direct PlaysContainer or browser limitationUse the native client; no conversion required
Every client converts HEVC videoHEVC profile is unsupportedKeep H.264 or provide a compatible version

This is why converting a whole file before reading the dashboard can waste time and reduce quality unnecessarily.


Build a repeatable compatibility test set

Before standardising a library, test representative files:

Test filePurpose
1080p H.264 and AAC in MP4Broad compatibility baseline
1080p H.264 and AC3 in MKVTests MKV and AC3 support
1080p HEVC Main 10 in MKVTests HEVC and 10-bit decoding
4K HEVC HDR sampleTests high bitrate, HDR and network behaviour
External SRT subtitleTests text subtitle rendering
Embedded ASS subtitleTests styled subtitle support
Embedded PGS subtitleTests image subtitle handling and burn-in

For each client, record:

Playback mode
Stated conversion reason
Video conversion
Audio conversion
Subtitle burn-in
Buffering or playback failure

Do not assume one successful file proves support for every profile or track combination.


Should you convert the whole Jellyfin library?

Usually not.

Start with files that actually cause problems, then choose the smallest sensible fix:

  • use a more compatible client
  • switch audio tracks
  • use SRT subtitles
  • remux without re-encoding when only the container is wrong
  • create a compatible second version
  • convert only the problem file
  • configure hardware transcoding when real-time conversion is genuinely required

Whole-library conversion consumes processing time, electricity, temporary storage and maintenance effort. It can also reduce quality without solving client-specific problems.


Final verification checklist

Before adopting a format as the library standard, confirm:

  • the main television client Direct Plays it
  • mobile and secondary clients behave acceptably
  • browser behaviour is understood
  • subtitles do not unexpectedly trigger burn-in
  • the compatibility audio track works
  • local quality is set to Original during testing
  • the dashboard shows the expected playback mode
  • a high-bitrate file plays without network buffering
  • remote playback is tested separately from local playback

A successful test is the active Jellyfin session showing the expected mode on the actual client—not merely a codec name appearing in a specification sheet.



Recap

For broad compatibility, use H.264 video with AAC or AC3 audio and external SRT subtitles inside MP4 or MKV.

Use HEVC for 4K only when the important clients support the exact profile, bit depth, HDR format, audio and subtitles.

Inspect the file, play it on the real client and read the Jellyfin dashboard before converting anything.

Downloadable checklist

Save the matching PDF checklist

Use these while working through the guide, or keep a copy for the next time the same problem appears.

More downloads are available in the SmallGrid checklists section.

Next guide

What to read next

Continue the setup path with these closely related guides.

Jellyfin guide cluster

More Jellyfin fixes and setup guides

These guides link the main Jellyfin setup, permissions, remote access, direct play, and hardware topics together.