Emby Direct Play Not Working
In this tutorial, you'll learn about Emby Direct Play Not Working. We cover key concepts, practical examples, and best practices.
Hook
You have an NVIDIA Shield, a Gigabit network, and a file with H.264 video and AAC audio — a perfect Direct Play candidate. But Emby insists on transcoding. Your CPU spikes, and the video quality drops. Why is Emby transcoding when it should not be?
The Wrong Way
Disabling transcoding entirely in the Dashboard prevents playback of files that genuinely need it (like unsupported audio codecs) and breaks media that cannot direct-play.
// BAD: Disabling all transcoding
{
"AllowTranscoding": false
}
Playback failed: "No compatible stream found"
Transcoding disabled — cannot fall back
Turning off transcoding is a sledgehammer approach. Files that need one small adjustment (audio codec conversion) become unplayable.
The Right Way
Identify exactly why Emby is transcoding. The Dashboard's "Now Playing" section shows the reason in parentheses.
# Watch the Emby log during playback
tail -f /var/log/emby-server.log | grep -i "directplay\|transcode\|reason"
[2026-06-24 16:00:00] INFO - Playback: DirectPlay rejected: AudioCodec=EAC3 not supported by client
[2026-06-24 16:00:00] INFO - Playback: Falling back to transcoding
Common reasons and fixes:
- Audio codec: Set your client's audio output to
Passthrough(HDMI/Optical) so Emby does not need to convert. - Subtitle burn: PGS/VobSub subtitles require burning in. Switch to SRT subtitles.
- Video bitrate: The client's bitrate limit is lower than the file's bitrate. In Emby client settings, set
Video Bitrate LimittoAutoorUnlimited.
# Force remux instead of transcode for compatible containers
# Emby Dashboard → Playback → Streaming → "Allow remuxing" (enabled)
# This keeps the video untouched and only remuxes the container.
Now Playing: Movie.mkv → Direct Play (Video) + Remux (Audio)
CPU Usage: 2% — hardware idle
Prevention
- Use clients that support a wide range of codecs (Shield, Apple TV 4K, Infuse).
- Store media in client-friendly formats (MKV H.264/H.265 + AAC).
- Keep SRT subtitles externally instead of embedded PGS.
- Set per-client quality profiles in Emby Dashboard → Devices.
- Regularly check the Emby Dashboard for "Transcoding Reasons" patterns.
Common Mistakes with direct play
- Mixing let bindings with <- bindings in do notation, producing type errors
- Overlapping type class instances that cause GHC to reject the program with ambiguous dispatch errors
- Non-exhaustive pattern matches that compile with warnings then crash at runtime
These mistakes appear frequently in real-world EMBY code. DodaTech's contributors have identified these patterns through analysis of open-source projects and production systems.
Practice Exercise
Write a pure function that safely divides two integers using Maybe, then test it with edge cases like division by zero and negative numbers.
This exercise reinforces the concepts covered in this guide. Try implementing it before checking online solutions.
FAQ
DodaTech — direct play when you want it, transcode only when you need it.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro