-
-
Notifications
You must be signed in to change notification settings - Fork 45
Description
Description
I’m seeing a file-specific Direct Play failure in Wholphin on an NVIDIA SHIELD. This only happens with one H.264 1080p MKV. Other H.264 1080p files direct play normally in the same setup, and Plex is able to direct play this exact file.
On Wholphin’s debug screen, the transcode reason shows DirectPlay:Error.
In Jellyfin logs, playback for this file is repeatedly forcing a Transcode (v:hevc a:aac) on Wholphin.
I tested different audio tracks and the behavior stays the same, so it does not appear to be tied to a specific audio track (I thought it might be because the default track is FLAC, but that isn't the case). This looks more like Wholphin/ExoPlayer failing to direct play this file and then falling back to transcode.
Media info
GENERAL
Container: MKV (Matroska)
Protocol: File
Type: VideoFile
Duration: 03:27:12
Overall bitrate: 22,675.7 kbps
Supports Direct Play: Yes
Supports Direct Stream: Yes
Supports Transcoding: Yes
Has segments: No
Default audio stream index: 2
Default subtitle stream index: 7
VIDEO (Stream 0)
Codec: H.264 / AVC
Profile: High
Level: 4.1
Bit depth: 8-bit
Pixel format: yuv420p
Resolution: 1480 x 1080
Display aspect ratio: 4:3
Anamorphic: No
Interlaced: No
Frame rate: 23.976025 fps
Average frame rate: 23.976025 fps
Real frame rate: 23.976025 fps
Bitrate: 19,987.7 kbps
Reference frames: 1
NAL length size: 4
AVC format flag (IsAVC): Yes
Color range: SDR
Color space: BT.709
Color transfer: BT.709
Color primaries: BT.709
Language: jpn
Default: Yes
Display title: 1080p H264 SDR
AUDIO (Stream 1)
Codec: FLAC
Language: jpn
Title: Unfiltered
Channels: 1
Channel layout: Mono
Sample rate: 48.0 kHz
Bit depth: 16-bit
Bitrate: 960.0 kbps
Default: Yes
External: No
AUDIO (Stream 2)
Codec: FLAC
Language: jpn
Title: Filtered
Channels: 1
Channel layout: Mono
Sample rate: 48.0 kHz
Bit depth: 16-bit
Bitrate: 960.0 kbps
Default: No
External: No
AUDIO (Stream 3)
Codec: AAC-LC
Language: eng
Title: Commentary (David Desser / Joan Mellen / Stephen Prince / Tony Rayns / Donald Richie)
Channels: 1
Channel layout: Mono
Sample rate: 48.0 kHz
Bitrate: 192.0 kbps
Default: No
External: No
AUDIO (Stream 4)
Codec: AAC-LC
Language: eng
Title: Commentary (Michael Jeck)
Channels: 1
Channel layout: Mono
Sample rate: 48.0 kHz
Bitrate: 192.0 kbps
Default: No
External: No
AUDIO (Additional stream observed in dump)
Codec: AAC
Channels: 2
Channel layout: Stereo
Sample rate: 48.0 kHz
Bitrate: 192.0 kbps
SUBTITLES
Stream 7: SRT (SubRip), English, Title: Criterion, Default: Yes, External: No
Additional subtitle streams: Multiple internal SRT/SubRip tracks (multi-language)
Image subtitle stream present: PGS / PGSSUB (Japanese)
Player backend
ExoPlayer (default)
App Version
0.5.1
Server Version
10.11.5
Device
NVIDIA Shield TV Pro 2019
Logs
Jellyfin server log (playback method registered as transcode on Wholphin/SHIELD)
[2026-02-28 23:55:20.211 -06:00] [INF] [53] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : play_method = "Transcode (v:hevc a:aac)"
[2026-02-28 23:55:20.211 -06:00] [INF] [53] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.ClientName = "Wholphin"
[2026-02-28 23:55:20.211 -06:00] [INF] [53] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : e.DeviceName = "SHIELD"
[2026-02-28 23:55:20.211 -06:00] [INF] [53] Jellyfin.Plugin.PlaybackReporting.EventMonitorEntryPoint: StartPlaybackTimer : ItemName = "Seven Samurai"
Jellyfin server log (seek/fast-forward starts a new HLS transcode session)
[2026-02-28 23:55:25.044 -06:00] [INF] [22] MediaBrowser.MediaEncoding.Transcoding.TranscodeManager: "/usr/lib/jellyfin-ffmpeg/ffmpeg" "-analyzeduration 200M -probesize 1G -ss 01:00:30.000 -f matroska ... -i file:\"/media/jellyfin/movies-4k/Seven Samurai (1954)/Seven Samurai (1954) [tmdbid-346].mkv\" ... -map 0:0 -map 0:2 -map -0:s -codec:v:0 hevc_qsv ... -codec:a:0 libfdk_aac ... -f hls ... -y \"/transcode/0835f10b91d9d0bbc3064f494c4d920e.m3u8\""
Earlier Wholphin/ExoPlayer failure observed before fallback (from prior captured log)
ExoPlayer source read error included: java.io.EOFException
(Wholphin then fell back to transcode)
Wholphin log (initial playback request chooses Direct Play)
02-28 22:40:48.774 12303 12386 D Wholphin: changeStreams: userInitiated=false, audioIndex=2, subtitleIndex=7, enableDirectPlay=true, enableDirectStream=true, positionMs=11629492
02-28 22:40:48.818 12303 12386 I OkHttpClient: POST https://jellyfin.nyquil-babies.com/Items/29884a5b-cac1-05d4-5654-4220d06123ff/PlaybackInfo
02-28 22:40:49.012 12303 12386 I Wholphin: Playback decision for 29884a5b-cac1-05d4-5654-4220d06123ff: DirectPlay
Wholphin / ExoPlayer log (Direct Play fails with source read error in Matroska parser)
02-28 22:40:55.178 12303 12441 E ExoPlayerImplInternal: Playback error
02-28 22:40:55.178 12303 12441 E ExoPlayerImplInternal: androidx.media3.exoplayer.ExoPlaybackException: Source error
02-28 22:40:55.178 12303 12441 E ExoPlayerImplInternal: Caused by: java.io.EOFException
02-28 22:40:55.178 12303 12441 E ExoPlayerImplInternal: at androidx.media3.extractor.mkv.VarintReader.readUnsignedVarint(VarintReader.java:101)
02-28 22:40:55.178 12303 12441 E ExoPlayerImplInternal: at androidx.media3.extractor.mkv.DefaultEbmlReader.read(DefaultEbmlReader.java:106)
02-28 22:40:55.178 12303 12441 E ExoPlayerImplInternal: at androidx.media3.extractor.mkv.MatroskaExtractor.read(MatroskaExtractor.java:625)
Wholphin log (app detects Direct Play failure and explicitly falls back to transcode)
02-28 22:40:55.183 12303 12303 E Wholphin: androidx.media3.exoplayer.ExoPlaybackException: Source error
02-28 22:40:55.183 12303 12303 E Wholphin: Caused by: java.io.EOFException
02-28 22:40:55.189 12303 12303 W Wholphin: Playback error during DirectPlay, falling back to transcoding
02-28 22:40:55.195 12303 12341 D Wholphin: changeStreams: userInitiated=false, audioIndex=2, subtitleIndex=7, enableDirectPlay=false, enableDirectStream=false, positionMs=11629492
02-28 22:40:55.196 12303 12341 I OkHttpClient: POST https://jellyfin.nyquil-babies.com/Items/29884a5b-cac1-05d4-5654-4220d06123ff/PlaybackInfo
02-28 22:40:55.261 12303 12341 I Wholphin: Playback decision for 29884a5b-cac1-05d4-5654-4220d06123ff: Transcode
Wholphin log (transcode reason is DirectPlayError)
02-28 22:40:57.985 12303 12331 V Wholphin: transcodeInfo=TranscodingInfo(audioCodec=aac, videoCodec=hevc, container=ts, isVideoDirect=false, isAudioDirect=false, bitrate=20115713, framerate=null, completionPercentage=null, width=1480, height=1080, audioChannels=1, hardwareAccelerationType=none, transcodeReasons=[DirectPlayError])