Guide · codecs & formats
Play Dolby Vision, TrueHD, and DTS on Android TV when other apps can't
You queue up a 4K release with Dolby Vision and a TrueHD Atmos track, press play, and the app throws a "this file can't be played" error and quits to the menu. The file is fine. The player just can't decode part of it.
Why players choke on these formats
A modern release is several hard things stacked together: a high-bitrate HEVC or AV1 video stream, often in 10-bit with Dolby Vision or HDR10+ metadata, plus a lossless audio track like TrueHD (frequently with Atmos) or DTS-HD Master Audio, all wrapped in an MKV container. A player has to handle every layer, and many stumble on at least one:
- The audio codec. TrueHD and DTS-HD MA are the usual failure point. If a player can't decode them and can't pass them to a receiver, it gives up on the whole file rather than the audio alone.
- Dolby Vision. True Dolby Vision needs specific handling to render correctly; done wrong, you get washed-out or over-dark picture, or a hard failure.
- The container. MKV can hold anything, which is exactly why some TV apps trip over the unusual combinations it allows.
The "can't continue playing" error is usually the player hitting one of these walls and bailing on the entire title.
What actually helps
- A player built on a real decoder. The open-source engines that enthusiasts trust — the ffmpeg/mpv lineage — decode the formats consumer apps skip. A player built on one inherits that coverage.
- Audio passthrough to a receiver. If you have an AV receiver or soundbar that decodes TrueHD or DTS-HD, the player should pass the bitstream through untouched. If you don't, it should decode on-device instead of failing — and never quietly downmix without telling you.
- Real Dolby Vision handling. Some titles need the box's own hardware decoder to render true Dolby Vision; others are better served by a software engine's wider format coverage. The player should pick per title, not force one path.
How Sipario handles the full matrix
Sipario's player core is mpv — the same engine perfectionists compile for their desktops — so it decodes the codecs and containers that send other apps reaching for an external player: HEVC and AV1 in 10-bit, TrueHD and DTS-HD (decoded on-device or passed through to a receiver), HDR10+ with tone-mapping for standard screens, and PGS bitmap subtitles rendered exactly as authored.
For Dolby Vision, Sipario picks the engine per title: mpv for the widest format coverage, and the box's own hardware decoder when a title needs true Dolby Vision — with an automatic fallback if one path can't handle a file. You don't see the handoff; the file just opens. On the $20 onn streaming box we test on, that includes verified 4K AV1 playback.
Lossless passthrough depends on your receiver accepting it — Sipario checks, then decodes on-device when it can't, so you never get silence or a silent downmix. The desktop app additionally runs a GPU shader pipeline for per-title picture tuning.
Common questions
Why does my Android TV say “this file can't be played”?
Usually the file is fine and the player can't decode one part of it — most often a lossless audio track like TrueHD or DTS-HD, or Dolby Vision. Rather than play the rest, many players give up on the whole title. A player built on a broad decoder like mpv opens it instead.
What is TrueHD or DTS-HD passthrough?
Passthrough sends the compressed lossless audio bitstream straight to an AV receiver or soundbar that decodes it, instead of the player decoding it. If your gear doesn't accept it, a good player decodes on-device rather than failing — and never silently downmixes without telling you.
Can Android TV play Dolby Vision?
Many boxes can, through their own hardware decoder. The trick is that a pure software engine handles the widest range of other formats but not true Dolby Vision, so a player should route per title. Sipario uses mpv for coverage and the box's hardware decoder for real Dolby Vision, with automatic fallback.