Transcoding on Fire Stick TV

Server Version#: latest
Player Version#: latest

Hi guys, I share my PMS with a friend who’s have the latest Fire Stick TV (2020). This one uses android tv and it happens more than often that do not direct play but instead transcodes without a real necessity. I also tried to play the same movie from home (in local network) with a fire stick tv older than hers, and it direct played. She have remote quality setting to maximum and I also told her to try to change H264 level to 5.0 (from 4.2 if i remember correct).
But it didn’t work and she still transcode with some movies.

I found these lines in logs, I don’t know if it can help:

Jan 09, 2021 23:02:03.011 [29060] ERROR - [Transcode] [FFMPEG] - cu->cuCtxCreate(&hwctx->cuda_ctx, 4, cu_device) failed
Jan 09, 2021 23:02:03.011 [29060] ERROR - [Transcode] [FFMPEG] -  -> CUDA_ERROR_UNKNOWN: unknown error
Jan 09, 2021 23:02:03.011 [29060] ERROR - [Transcode] [FFMPEG] - 
Jan 09, 2021 23:02:03.011 [29060] DEBUG - [Transcode] Codecs: hardware transcoding: opening hw device failed - probably not supported by this system, error: Unknown error occurred
Jan 09, 2021 23:02:03.011 [29060] DEBUG - [Transcode] Scaled up video bitrate to 2143Kbps based on 1.500000x fudge factor.
Jan 09, 2021 23:02:03.011 [29060] DEBUG - [Transcode] MDE: Captain Fantastic (2016): selected media 0 / 214699
Jan 09, 2021 23:02:03.011 [29060] DEBUG - [Transcode] Streaming Resource: Adding session 0x8ca37d8:e60a894e7396e06e-com-plexapp-android which is using 2721kbps of WAN bandwidth.  Used is now 2721kbps
Jan 09, 2021 23:02:03.011 [29060] DEBUG - [Transcode] Streaming Resource: Adding session 0x8ca37d8:e60a894e7396e06e-com-plexapp-android which is using transcoder slot.  Used slots is now 1
Jan 09, 2021 23:02:03.011 [29060] DEBUG - [Transcode] Streaming Resource: Added session 0x8ca37d8:e60a894e7396e06e-com-plexapp-android
Jan 09, 2021 23:02:03.011 [29060] DEBUG - [Transcode] Streaming Resource: Reached Decision id=138081 codes=(General=1001,Direct play not available; Conversion OK. Direct Play=3000,App cannot direct play this item. Direct play is disabled. Transcode=1001,Direct play not available; Conversion OK.) media=(id=214699 part=(id=322258 decision=transcode container=mpegts protocol=hls streams=(Video=(id=542840 decision=transcode bitrate=2143 encoder=h264_mf width=688 height=288) Audio=(id=542841 decision=copy channels=6 rate=48000))))

Put it back to the default. Changing that setting to a lower value may cause, not prevent, transcoding.

Edit: I misread. You raised the level. Still might muck things up, so leave at default level while troubleshooting.

Additional information is needed. Attach the entire log file.

Edit 2: The log info you originally included attached shows that the video is transcoding. It does not show why it is transcoding. That’s why additional info is needed.

That’s why I told her to change it to a higher value, not lower…but I don’t know actually how to know the best value to put there. (I mean, why isn’t set at the max value by default? Why 5.0 and not 6.0?)

edit: prefer to remove log files since they’re not needed anymore

So, which additional information do you need? I don’t know how to add anything more to that

I believe the problem is the mpeg4 video type. The Plex app on the FireStick does not direct play this video type, so it has to transcode it to H.264.

From your log file:

Jan 09, 2021 22:52:31.276 [14668] DEBUG - [Transcode] MDE: Captain Fantastic (2016): no direct play video profile exists for http/mkv/mpeg4
Jan 09, 2021 22:52:31.450 [14668] DEBUG - [Transcode] Streaming Resource: Reached Decision id=138081 codes=(General=1001,Direct play not available; Conversion OK. Direct Play=3000,App cannot direct play this item. Direct play is disabled. Transcode=1001,Direct play not available; Conversion OK.) media=(id=214699 part=(id=322258 decision=transcode container=mpegts protocol=hls streams=(Video=(id=542840 decision=transcode bitrate=2143 encoder=h264_mf width=688 height=288) Audio=(id=542841 decision=copy channels=6 rate=48000))))

I ran a test with my FireStick 4K. It also transcodes mpeg4 video.

Here’s the log entry from my server:

Jan 09, 2021 17:40:56.973 [0x7ffa2c9a3700] DEBUG - [Transcode] MDE: mpeg4_test (2021): no direct play video profile exists for http/mkv/mpeg4
Jan 09, 2021 17:40:56.976 [0x7ffa2c9a3700] DEBUG - [Transcode] Streaming Resource: Reached Decision id=87038 codes=(General=1001,Direct play not available; Conversion OK. Direct Play=3000,App cannot direct play this item. Direct play is disabled. Transcode=1001,Direct play not available; Conversion OK.) media=(id=239403 part=(id=240538 decision=transcode container=mkv protocol=hls streams=(Video=(id=508927 decision=transcode bitrate=2019 encoder=h264_vaapi width=1920 height=1036) Audio=(id=508928 decision=copy channels=6 rate=48000))))

Here’s the log entries from my FireStick, showing the same info as the server logs:

01-09 17:40:56.749  i: [MediaDecisionEngine] Analyzing media: 1920x1036 1986kbps (Container: mkv, Video: mpeg4, Audio: ac3)
01-09 17:40:56.773  i: [MediaDecisionEngine] Unable to direct play; Device cannot play this video format at 1920 x 1036

The bitrate for the MPEG4 video is low, so it should not put too much of a load on your server. If it does, you’ll need to convert the video to a supported format or obtain a version in a supported format.

Your friend’s FireStick will direct play H.264 (AVC) and H.265 (HEVC) video at up to 1080p.

There are many tools you can use the convert the video if needed. Handbrake and XMedia Recode are two popular apps.

Thanks for the answer and for your interest in trying to understand this.
What I don’t understand, however, is why I can direct play the same exact movie on my Firestick here in local (on a really old tv, also), if that’s the case.
I mean, if the problem is that the Firestick can’t play mpeg4 video type, then it shouldn’t direct play on my Firestick that is also older than my friend’s one, right?

By the way it’s not really heavy, cpu speaking, but since this problem happens with a lot of my movies, that it’s quite annoying in the end and I just don’t understand why it is needed. (Also because I was thinking to transfer my server on a less power one, to keep it 24h on. But ofc in that case I need to be able to stream everything in direct play)

That I cannot answer. MPEG4 video transcodes on my FireStick 4K and my Nvidia Shield.

Every client has its own set of limitations. If your media falls outside of the client’s capabilities, Plex will have to transcode. Example: LG & Samsung apps cannot direct play PGS subtitles. Turn them on and the video immediately transcodes. Doesn’t matter if the TV cost $500 or $5000, it still transcodes.

Also, there is a lot of junk on the Internet. Videos with the wrong H.264/265 levels, too many reference frames, incompatible frame rates, etc. Sometimes you get a bad one. Transcoding is Plex’s way of cleaning up such issues.

Stick to H.264 video in a mp4 or mkv container. That’s the most compatible across Plex clients. H.265 if you know your clients can handle it.

Ok I probably found out what it’s causing to transcode: old codec video XviD, DivX…ecc

Apparently the Firestick doesn’t like these kind of codecs and transcodes to change them in H264.
So now I have to decide if encode more than a hundred movies with those codecs, or just keep in this way and let plex do the dirty work.

Thank you by the way, appreciate your help.

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