FireTV 4k + DV MKV content worked fine for like a year but over the last month or a couple it just errors out with "Unable to play media" 9 out of 10 times

Server Version#: 1.27.0.5897
Player Version#: 9.3.1.33134

Hey folks. As described in title, this is super irritating. It used to be perfect. Sometimes the video will even start playing right underneath the error message from title but closing the message kills playback.

Tried clearing Plex app data on FireTV and reinstalling the app.

From the log file:

[ERROR - Transcode] Streaming Resource: Cannot make a decision because either the file is unplayable or the client provided bad data

Sometimes it works for a bit if I reboot the stick. Or after 10 failed attempts the 11th attempt will work. Or not. But eventually the file will play.

Debug log indicates that Plex for whatever reason decides that it cannot direct play (it can… because it will work absolutely fine after X amount of tries or a reboot or whatnot) and just completely gives up. :<

Jun 17, 2022 19:54:07.080 [<UUID>] DEBUG - Request: [<redacted>:55212 (Subnet)] GET /video/<redacted> (10 live) TLS GZIP Signed-in Token (<redacted>) (FireTV 4k)
Jun 17, 2022 19:54:07.080 [<UUID>] DEBUG - [Transcode] Found session GUID of <redacted> in session start.
Jun 17, 2022 19:54:07.080 [<UUID>] DEBUG - [Transcode] TranscodeUniversalRequest: adapting profile with augmentation data: add-limitation(scope=videoCodec&scopeName=h264&type=upperBound&name=video.level&value=52)+add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.width&value=3840&replace=true)+add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.height&value=2160&replace=true)+add-transcode-target(type=videoProfile&context=streaming&protocol=hls&container=mkv&videoCodec=h264,hevc,mpeg2video&audioCodec=aac_latm,aac,ac3,alac,dca,eac3,flac,mp1,mp2,mp3,opus,vorbis,wmav1,wmav2,wmalossless,wmapro,wmavoice&subtitleCodec=ass,pgs,subrip,dvd_subtitle,mov_text,vtt,dvb_subtitle&replace=true)+add-transcode-target-settings(type=videoProfile&context=streaming&protocol=hls&CopyMatroskaAttachments=true)+add-limitation(scope=videoAudioCodec&scopeName=aac&type=upperBound&name=audio.channels&value=8&replace=true)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=mp3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=ac3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=eac3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=dca)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=opus)+add-limitation(scope=videoCodec&scopeName=*&type=NotMatch&name=video.anamorphic&value=999&replace=true)+add-transcode-target(type=subtitleProfile&context=streaming&protocol=http&container=mkv&subtitleCodec=srt)+append-transcode-target-codec(type=videoProfile&context=streaming&protocol=hls&videoCodec=mpeg2video)+append-transcode-target-codec(type=videoProfile&context=streaming&protocol=hls&videoCodec=hevc)+add-limitation(scope=videoCodec&scopeName=hevc&type=Match&name=video.profile&list=main|main 10)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=streaming&protocol=hls&type=match&name=video.colorTrc&list=smpte240m|smpte2084|smpte170m|bt470m|bt470bg|bt2020-10|bt709&isRequired=false)
Jun 17, 2022 19:54:07.081 [<UUID>] DEBUG - [Transcode] TranscodeUniversalRequest: using augmented profile Android
Jun 17, 2022 19:54:07.081 [<UUID>] DEBUG - [Transcode] Downloading document <redacted>
Jun 17, 2022 19:54:07.094 [<UUID>] DEBUG - [Transcode] We're going to try to auto-select an audio stream for account 1.
Jun 17, 2022 19:54:07.094 [<UUID>] DEBUG - [Transcode] Selecting best audio stream for part ID 58544 (autoselect: 1 language: en)
Jun 17, 2022 19:54:07.094 [<UUID>] DEBUG - [Transcode] We're going to try to auto-select a subtitle.
Jun 17, 2022 19:54:07.094 [<UUID>] DEBUG - [Transcode] Audio Stream: 133203, Subtitle Stream: -1
Jun 17, 2022 19:54:07.098 [<UUID>] DEBUG - [Transcode] MDE: Selected protocol hls; container: mkv
Jun 17, 2022 19:54:07.098 [<UUID>] DEBUG - [Transcode] MDE: analyzing media item <ID>
Jun 17, 2022 19:54:07.098 [<UUID>] DEBUG - [Transcode] MDE: E1 - <TITLE>: Direct Play is disabled
Jun 17, 2022 19:54:07.098 [<UUID>] DEBUG - [Transcode] MDE: E1 - <TITLE>: media must be transcoded in order to use the hls protocol
Jun 17, 2022 19:54:07.098 [<UUID>] DEBUG - [Transcode] MDE: E1 - <TITLE>: no direct play video profile exists for http/mkv/hevc
Jun 17, 2022 19:54:07.098 [<UUID>] DEBUG - [Transcode] MDE: E1 - <TITLE>: no direct play video profile exists for http/mkv/hevc/eac3
Jun 17, 2022 19:54:07.098 [<UUID>] DEBUG - [Transcode] MDE: <TITLE> - S1 E1 - <TITLE>: selected media 0 / <ID>
Jun 17, 2022 19:54:07.098 [<UUID>] ERROR - [Transcode] Streaming Resource: Cannot make a decision because either the file is unplayable or the client provided bad data
Jun 17, 2022 19:54:07.098 [<UUID>] DEBUG - [Transcode] Streaming Resource: Reached Decision id=53902 codes=(General=2000,Neither direct play nor conversion is available. Direct Play=3000,App cannot direct play this item. Direct play is disabled. Transcode=2003,File is unplayable. Color space is not supported.) media=(id=57859 part=(id=58544 decision=none container=mkv protocol=hls streams=(Video=(id=133202 decision=copy width=3840 height=2160) Audio=(id=133203 decision=copy channels=6 rate=48000))))
Jun 17, 2022 19:54:07.099 [<UUID>] DEBUG - Completed: [<redacted>:55212] 200 GET /video/<redacted> (10 live) TLS GZIP 19ms 690 bytes (pipelined: 5)

After around 10 failed retries it changed its mind and played beautifully:


Logs from a successful direct-play of the exact same file:

Jun 17, 2022 20:09:38.313 [<UUID>] DEBUG - Request: [<redacted>:56840 (Subnet)] GET /video/<redacted> (12 live) TLS GZIP Signed-in Token (<redacted>) (FireTV 4k)
Jun 17, 2022 20:09:38.313 [<UUID>] DEBUG - [Transcode] Found session GUID of <redacted> in session start.
Jun 17, 2022 20:09:38.313 [<UUID>] DEBUG - [Transcode] TranscodeUniversalRequest: adapting profile with augmentation data: add-limitation(scope=videoCodec&scopeName=h264&type=upperBound&name=video.level&value=52)+add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.width&value=3840&replace=true)+add-limitation(scope=videoCodec&scopeName=*&type=upperBound&name=video.height&value=2160&replace=true)+add-transcode-target(type=videoProfile&context=streaming&protocol=hls&container=mkv&videoCodec=h264,hevc,mpeg2video&audioCodec=aac_latm,aac,ac3,alac,dca,eac3,flac,mp1,mp2,mp3,opus,vorbis,wmav1,wmav2,wmalossless,wmapro,wmavoice&subtitleCodec=ass,pgs,subrip,dvd_subtitle,mov_text,vtt,dvb_subtitle&replace=true)+add-transcode-target-settings(type=videoProfile&context=streaming&protocol=hls&CopyMatroskaAttachments=true)+add-limitation(scope=videoAudioCodec&scopeName=aac&type=upperBound&name=audio.channels&value=8&replace=true)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=mp3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=ac3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=eac3)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=dca)+add-transcode-target-audio-codec(type=videoProfile&context=streaming&protocol=hls&audioCodec=opus)+add-limitation(scope=videoCodec&scopeName=*&type=NotMatch&name=video.anamorphic&value=999&replace=true)+add-transcode-target(type=subtitleProfile&context=streaming&protocol=http&container=mkv&subtitleCodec=srt)+append-transcode-target-codec(type=videoProfile&context=streaming&protocol=hls&videoCodec=mpeg2video)+append-transcode-target-codec(type=videoProfile&context=streaming&protocol=hls&videoCodec=hevc)+add-limitation(scope=videoCodec&scopeName=hevc&type=Match&name=video.profile&list=main|main 10)+add-limitation(scope=videoTranscodeTarget&scopeName=hevc&scopeType=videoCodec&context=streaming&protocol=hls&type=match&name=video.colorTrc&list=smpte240m|smpte2084|smpte170m|bt470m|bt470bg|bt2020-10|bt709&isRequired=false)
Jun 17, 2022 20:09:38.314 [<UUID>] DEBUG - [Transcode] TranscodeUniversalRequest: using augmented profile Android
Jun 17, 2022 20:09:38.314 [<UUID>] DEBUG - [Transcode] Downloading document <redacted>
Jun 17, 2022 20:09:38.326 [<UUID>] DEBUG - [Transcode] We're going to try to auto-select an audio stream for account 1.
Jun 17, 2022 20:09:38.326 [<UUID>] DEBUG - [Transcode] Selecting best audio stream for part ID 58544 (autoselect: 1 language: en)
Jun 17, 2022 20:09:38.326 [<UUID>] DEBUG - [Transcode] We're going to try to auto-select a subtitle.
Jun 17, 2022 20:09:38.326 [<UUID>] DEBUG - [Transcode] Audio Stream: 133203, Subtitle Stream: -1
Jun 17, 2022 20:09:38.330 [<UUID>] DEBUG - [Transcode] Streaming Resource: Reached Decision id=53902 codes=(MDE=1000,Direct play OK.) media=(id=57859 part=(id=58544 decision=direct play protocol=* streams=(Video=(id=133202 decision= width=3840 height=2160) Audio=(id=133203 decision= channels=0 rate=0))))
Jun 17, 2022 20:09:38.331 [<UUID>] DEBUG - Completed: [<redacted>:56840] 200 GET /video/<redacted> (12 live) TLS GZIP 18ms 2869 bytes (pipelined: 11)

Also if I can have your attention to fix the Android MP4 DV buffering issue which tries to download a video file 10 times in a single playback causing hundreds of megabits of traffic.

Thanks.

I’m looking at FireTV logs it seems related to an audio crash on the stick somehow, intriguing.

06-17 20:37:36.345  e: [ExoPlayer][EventLogger] playerFailed [eventTime=4.35, mediaPos=0.00, window=0, period=0, errorCode=ERROR_CODE_AUDIO_TRACK_WRITE_FAILED
  com.google.android.exoplayer2.q: MediaCodecAudioRenderer error, index=3, format=Format(1, null, null, audio/eac3, eac3, 0, english, [-1, -1, -1.0], [6, 48000]), format_supported=YES
      at com.google.android.exoplayer2.t1.handleMessage(SourceFile:43)
      at android.os.Handler.dispatchMessage(Handler.java:98)
      at android.os.Looper.loop(Looper.java:154)
      at android.os.HandlerThread.run(HandlerThread.java:61)
      Suppressed: com.google.android.exoplayer2.q: MediaCodecAudioRenderer error, index=3, format=Format(1, null, null, audio/eac3, eac3, 0, english, [-1, -1, -1.0], [6, 48000]), format_supported=YES
          ... 4 more
      Caused by: com.google.android.exoplayer2.audio.u$b: AudioTrack init failed 0 Config(48000, 252, 191998)
          at com.google.android.exoplayer2.audio.c0$f.b(SourceFile:5)
          at com.google.android.exoplayer2.audio.c0.F(SourceFile:1)
          at com.google.android.exoplayer2.audio.c0.G(SourceFile:1)
          at com.google.android.exoplayer2.audio.c0.V(SourceFile:2)
          at com.google.android.exoplayer2.audio.c0.g(SourceFile:16)
          at com.google.android.exoplayer2.audio.h0.Y(SourceFile:7)
          at r2.o.b(SourceFile:8)
          at r2.o.render(SourceFile:11)
          at com.google.android.exoplayer2.t1.q(SourceFile:14)
          at com.google.android.exoplayer2.t1.handleMessage(SourceFile:25)
          ... 3 more
          Suppressed: com.google.android.exoplayer2.audio.u$b: AudioTrack init failed 0 Config(48000, 252, 191998)
              ... 13 more
  Caused by: com.google.android.exoplayer2.audio.u$e: AudioTrack write failed: -6
      at com.google.android.exoplayer2.audio.c0.o0(SourceFile:33)
      at com.google.android.exoplayer2.audio.c0.c0(SourceFile:4)
      at com.google.android.exoplayer2.audio.c0.g(SourceFile:59)
      at com.google.android.exoplayer2.audio.h0.Y(SourceFile:7)
      at r2.o.b(SourceFile:8)
      at r2.o.render(SourceFile:11)
      at com.google.android.exoplayer2.t1.q(SourceFile:14)
      at com.google.android.exoplayer2.t1.handleMessage(SourceFile:25)
      ... 3 more
]
06-17 20:37:36.346  e: [Player][ExoPlayer] Playback error detected
06-17 20:37:36.357  i: [Player][Timeline] Handling player error
06-17 20:37:36.357  i: [Player][Timeline] Playback stopped (error: true)
06-17 20:37:36.358  i: [Player][Timeline] Player error not known by server, reporting original player error (or a playback interrupted one)
06-17 20:37:36.361  i: [Player] Error reported: UnknownError (null)
06-17 20:37:36.365  i: [Player][Timeline] Playback stopped (error: false)
06-17 20:37:36.381  e: An exception occurred: com.google.android.exoplayer2.q: MediaCodecAudioRenderer error, index=3, format=Format(1, null, null, audio/eac3, eac3, 0, english, [-1, -1, -1.0], [6, 48000]), format_supported=YES
06-17 20:37:36.382  e: Stacktrace: com.google.android.exoplayer2.q: MediaCodecAudioRenderer error, index=3, format=Format(1, null, null, audio/eac3, eac3, 0, english, [-1, -1, -1.0], [6, 48000]), format_supported=YES
	at com.google.android.exoplayer2.t1.handleMessage(SourceFile:43)
	at android.os.Handler.dispatchMessage(Handler.java:98)
	at android.os.Looper.loop(Looper.java:154)
	at android.os.HandlerThread.run(HandlerThread.java:61)
	Suppressed: com.google.android.exoplayer2.q: MediaCodecAudioRenderer error, index=3, format=Format(1, null, null, audio/eac3, eac3, 0, english, [-1, -1, -1.0], [6, 48000]), format_supported=YES
		... 4 more
	Caused by: com.google.android.exoplayer2.audio.u$b: AudioTrack init failed 0 Config(48000, 252, 191998)
		at com.google.android.exoplayer2.audio.c0$f.b(SourceFile:5)
		at com.google.android.exoplayer2.audio.c0.F(SourceFile:1)
		at com.google.android.exoplayer2.audio.c0.G(SourceFile:1)
		at com.google.android.exoplayer2.audio.c0.V(SourceFile:2)
		at com.google.android.exoplayer2.audio.c0.g(SourceFile:16)
		at com.google.android.exoplayer2.audio.h0.Y(SourceFile:7)
		at r2.o.b(SourceFile:8)
		at r2.o.render(SourceFile:11)
		at com.google.android.exoplayer2.t1.q(SourceFile:14)
		at com.google.android.exoplayer2.t1.handleMessage(SourceFile:25)
		... 3 more
		Suppressed: com.google.android.exoplayer2.audio.u$b: AudioTrack init failed 0 Config(48000, 252, 191998)
			... 13 more
Caused by: com.google.android.exoplayer2.audio.u$e: AudioTrack write failed: -6
	at com.google.android.exoplayer2.audio.c0.o0(SourceFile:33)
	at com.google.android.exoplayer2.audio.c0.c0(SourceFile:4)
	at com.google.android.exoplayer2.audio.c0.g(SourceFile:59)
	at com.google.android.exoplayer2.audio.h0.Y(SourceFile:7)
	at r2.o.b(SourceFile:8)
	at r2.o.render(SourceFile:11)
	at com.google.android.exoplayer2.t1.q(SourceFile:14)
	at com.google.android.exoplayer2.t1.handleMessage(SourceFile:25)
	... 3 more

06-17 20:37:36.404  i: [TranscodeFallbackBehaviour] Detected direct play failed, falling back to transcode (starting: true)

and then it attempts to fall back to the transcode but fails due to DoVi colour space as pointed out in server logs (this part is expected but could be communicated better to the user)

06-17 20:37:36.722  e: [ExoPlayer][EventLogger] playerFailed [eventTime=4.73, mediaPos=0.00, window=0, period=0, errorCode=ERROR_CODE_IO_UNSPECIFIED
  com.google.android.exoplayer2.q: Source error
      at com.google.android.exoplayer2.t1.G(SourceFile:3)
      at com.google.android.exoplayer2.t1.handleMessage(SourceFile:33)
      at android.os.Handler.dispatchMessage(Handler.java:98)
      at android.os.Looper.loop(Looper.java:154)
      at android.os.HandlerThread.run(HandlerThread.java:61)
  Caused by: java.io.IOException
      at uc.q.maybeThrowSourceInfoRefreshError(SourceFile:4)
      at uc.v.maybeThrowSourceInfoRefreshError(SourceFile)
      at com.google.android.exoplayer2.source.v.maybeThrowPrepareError(SourceFile:4)
      at com.google.android.exoplayer2.t1.q(SourceFile:20)
      at com.google.android.exoplayer2.t1.handleMessage(SourceFile:25)
      ... 3 more
]
06-17 20:37:36.723  e: [Player][ExoPlayer] Playback error detected
06-17 20:37:36.724  i: [Player][Timeline] Handling player error
06-17 20:37:36.724  i: [Player][Timeline] Playback stopped (error: true)
06-17 20:37:36.725  i: [Player][Timeline] Player error not known by server, reporting original player error (or a playback interrupted one)
06-17 20:37:36.726  i: [Player] Error reported: ServerDecisionError (null)
06-17 20:37:36.727  e: An exception occurred: com.google.android.exoplayer2.q: Source error
06-17 20:37:36.727  i: [Player][Timeline] Playback stopped (error: false)
06-17 20:37:36.728  e: Stacktrace: com.google.android.exoplayer2.q: Source error
	at com.google.android.exoplayer2.t1.G(SourceFile:3)
	at com.google.android.exoplayer2.t1.handleMessage(SourceFile:33)
	at android.os.Handler.dispatchMessage(Handler.java:98)
	at android.os.Looper.loop(Looper.java:154)
	at android.os.HandlerThread.run(HandlerThread.java:61)
Caused by: java.io.IOException
	at uc.q.maybeThrowSourceInfoRefreshError(SourceFile:4)
	at uc.v.maybeThrowSourceInfoRefreshError(SourceFile)
	at com.google.android.exoplayer2.source.v.maybeThrowPrepareError(SourceFile:4)
	at com.google.android.exoplayer2.t1.q(SourceFile:20)
	at com.google.android.exoplayer2.t1.handleMessage(SourceFile:25)
	... 3 more

06-17 20:37:36.735  i: [TranscodeSession] Stopping...
06-17 20:37:36.736  i: [TranscodeSession] Session already stopped.
06-17 20:37:36.747  i: [Player][Error] Displaying player error...

EDIT: I’m now testing with Audio Passthrough setting set to OFF in Plex (had it set to HDMI since forever, but I guess worth a try). Also might be worth noting is that I have resolution and framerate changing enabled in the Plex client… could resolution switching mess up Android by the TV having to re-identify itself by any chance? Hmm

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.