Why I can't play this .mkv media file with a subtitle? (log: "direct play is disabled")

I have an issue to play a movie with an external .srt subtitle.

direct play: enable

When I play the same movie without subtitle, it’s just fine. The client can play it with direct play without transcoding. But when I enabled any subtitle (the subtitle in .mkv or external .srt), it’s just throwing an error like “cpu power is not enough” on the client UI (LG webos plex app)

When I looked at the logs it’s saying ‘direct play is disabled’. But it’s actually enabled.

I also could play same movie with same .srt external subtitle file on Android client. But it just doesn’t work on LG Webos Plex client. I play many many media files (.mkv) with a lot of .srt subtitles, this is the first time I get this error.

Why I can’t play this movie with a subtitle? Is this a kind of bug or any configuration issue that I can fix easily?

Please let me know if I should provide more technical details (versions, logs etc), I can do that.

Thank you very much.

Server Version#: 1.32.3.7192
Player Version#:
Server OS: (raspberry pi): Linux raspberrypi 6.1.21-v8+

log part (I also attached the long version) :


Aug 03, 2023 08:58:38.286 [3921101680] DEBUG - [Req#2d119/Transcode] TranscodeUniversalRequest: using augmented profile Generic
Aug 03, 2023 08:58:38.286 [3921101680] DEBUG - [Req#2d119/Transcode] Downloading document http://127.0.0.1:32400/library/metadata/19440?includeBandwidths=1&offset=-1&X-Plex-Incomplete-Segments=1&X-Plex-Session-Identifier=lrjnxzsxr5mfcpp2dp20pg2t
Aug 03, 2023 08:58:38.309 [3921101680] DEBUG - [Req#2d119/Transcode/Req#2d121] We're going to try to auto-select an audio stream for account 1.
Aug 03, 2023 08:58:38.309 [3921101680] DEBUG - [Req#2d119/Transcode/Req#2d121] Selecting best audio stream for part ID 24988 (language: en)
Aug 03, 2023 08:58:38.309 [3921101680] DEBUG - [Req#2d119/Transcode/Req#2d121] Audio Stream: 65563, Subtitle Stream: 72050
Aug 03, 2023 08:58:38.315 [3921101680] DEBUG - [Req#2d119/Transcode] MDE: Selected protocol hls; container: mpegts
Aug 03, 2023 08:58:38.315 [3921101680] DEBUG - [Req#2d119/Transcode] MDE: analyzing media item 21131
Aug 03, 2023 08:58:38.315 [3921101680] DEBUG - [Req#2d119/Transcode] MDE: Three Billboards Outside Ebbing, Missouri (2017): Direct Play is disabled
Aug 03, 2023 08:58:38.315 [3921101680] DEBUG - [Req#2d119/Transcode] MDE: Three Billboards Outside Ebbing, Missouri (2017): media must be transcoded in order to use the hls protocol
Aug 03, 2023 08:58:38.315 [3921101680] DEBUG - [Req#2d119/Transcode] MDE: Three Billboards Outside Ebbing, Missouri (2017): selected subtitle cannot be converted to a compatible format, burning into video stream
Aug 03, 2023 08:58:38.315 [3921101680] DEBUG - [Req#2d119/Transcode] MDE: Three Billboards Outside Ebbing, Missouri (2017): Direct Streaming is disabled, so video stream will be transcoded
Aug 03, 2023 08:58:38.315 [3921101680] DEBUG - [Req#2d119/Transcode] MDE: Three Billboards Outside Ebbing, Missouri (2017): no remuxable profile found, so video stream will be transcoded
Aug 03, 2023 08:58:38.315 [3921101680] DEBUG - [Req#2d119/Transcode] MDE: Cannot direct stream video stream due to profile or setting limitations
Aug 03, 2023 08:58:38.315 [3921101680] DEBUG - [Req#2d119/Transcode] MDE: Three Billboards Outside Ebbing, Missouri (2017): Audio Direct Streaming is disabled, so video's audio stream will be transcoded
Aug 03, 2023 08:58:38.315 [3921101680] DEBUG - [Req#2d119/Transcode] MDE: Cannot direct stream audio stream due to profile or setting limitations
Aug 03, 2023 08:58:38.316 [3921101680] DEBUG - [Req#2d119/Transcode] MDE: Three Billboards Outside Ebbing, Missouri (2017): selected media 0 / 21131
Aug 03, 2023 08:58:38.317 [3921101680] DEBUG - [Req#2d119/Transcode] Streaming Resource: Reached Decision id=19440 codes=(General=2000,Neither direct play nor conversion is available. Direct Play=3000,App cannot direct play this item. Direct play is disabled. Transcode=4002,Not enough CPU for conversion of this item.)
Aug 03, 2023 08:58:38.318 [4081197936] DEBUG - Completed: [192.168.50.10:53110] 200 GET /video/:/transcode/universal/decision?directPlay=0&directStream=0&directStreamAudio=0&protocol=hls&fastSeek=1&path=%2Flibrary%2Fmetadata%2F19440&session=5lw5v9i0xthj2piyvt2l7egu&mediaIndex=0&partIndex=0&mediaBufferSize=50000&hasMDE=1&subtitleSize=100&videoQuality=100&videoResolution=3840x2160&audioBoost=100&subtitles=burn&location=lan (6 live) #2d119 GZIP 34ms 776 bytes (pipelined: 7)

logs.txt (53.3 KB)
example.srt (89.6 KB)

With the Plex LG app, if the media is direct streaming, such as when audio is transcoding, enabling any subtitle results in a video transcode.

The Raspberry Pi is not strong enough to transcode the video, so playback fails.

You have two options:

Avoid unsupported audio formats. This means TrueHD and possibly DTS (older LGs support DTS, newer models do not).

Use a different Plex client, such as an Android TV client (Shield, FireStick 4K, etc). Android clients are not as limited as the LG app. They can direct play subtitles when the video or audio is transcoding.

The logs are cryptic. They’re written for the developers, not general users.

In this case, “direct play is disabled,” translates to PMS tried to direct play the file. It could not, so it moved on to the next option.

I checked the audio option now. It is “DTS 5.1”. There is no other option for audio. Ok we could say LG doesn’t support DTS. It make sense.

But it’s working perfectly (as direct play + DTS) without subtitle. When I choose any subtitle in the list, it just throws that error: “cpu power is not enough” since raspberry is not strong enough to transcode.

Why it is working nice without the subtitle? and not working with the subtitle?

Plex Media Server must transcode DTS audio to a supported format.

The Pi is capable of transcoding audio.

EDIT: Monitor playback with Plex Dashboard → Now Playing + Expanded View. You can see the transcode.

I just understand this part:

With the Plex LG app, if the media is direct streaming, such as when audio is transcoding, enabling any subtitle results in a video transcode.

So this is the logic we have in LG client. I thought it play the audio with “direct play”, but it’s actually not. (ss attached.)

2023-08-03_20-10_26

Thanks for the info :slight_smile:

The Plex Smart TV apps (LG, Samsung, etc) have limited capabilities, mostly due to limitations imposed by the manufacturers. I’ve an LG B7. I got tired of fighting it and purchased a Nvidia Shield Pro several years ago. I’ve also given FireStick 4Ks to a couple of family members as birthday/Christmas gifts. I don’t mention I’m being a bit self-serving, as it takes the transcode load off my server…

Some additional info: Streaming Media: Direct Play and Direct Stream

Direct Play means Plex Media Server (PMS) sends the media unaltered to the client.

Direct Stream is used when the container (mkv/mp4/etc), audio format, or video format is not compatible. You may see the term “remuxing” used as well.

Here’s what happens with the Plex LG app when playing your movie:

With Dolby Digital audio selected, Plex Media Server streams the media unaltered to the LG TV.

With TrueHD selected: The client tells PMS, “Send me the movie, but I don’t support TrueHD.” Therefore, PMS has to transcode the audio. It separates (demuxes) the movie into the individual tracks, transcodes the audio, then recombines (remuxes) the audio and video and sends it to the client.

With TrueHD + subtitles (if your server was powerful enough): In addition to transcoding the audio, PMS would transcode the video then add the subtitles to the video image on a frame by frame basis (Plex calls this “burning” subtitles). Plex then recombines (remuxes) the audio + video and streams it to the client.

1 Like

Got it. I actually knew what is direct play means but it’s more clear now. Thanks for your time @FordGuy61 .

I’m using raspberry pi as I mentioned above, and I used to play almost all medias as “direct play” because rasp can’t handle transcoding. If LG doesn’t support any media that I want to play, Plex App throws that error “… server is not power enough etc” which is OK… And then my comment is always “Ok, LG can’t play this and my little guy raspberry can’t effort to transcode it. It’s fine, need find another format to play etc…”.

The thing that cause confuse my mind in the scenario above is just being able to play that movie without subtitle. I wasn’t expect to see raspberry could handle transcoding the audio :)) Thats why I thougth it still in ‘direct play’ mode without subtitle.

When you said, check the dashboard; then I saw it’s not actually in “direct play/stream”. Raspberry was transcoding the audio! I’m actually impressed! :stuck_out_tongue: (probably because transcoding the audio is more easy then the video)

And I had no idea that Plex server has to burn the subtitle to the video when it should transcode the audio. Isn’t there any technical way to send the subtitle seperately when the video in “direct play” mode but the “audio” is being transcoding? Is it a kind of feature request that we could have or not possible technically? (just asking btw)

I wish.

The underlying problem is the streaming protocol used between PMS and the LG TV (or possibly LG’s implementation of the protocol). If Plex direct streamed the subtitles, over time they would become out of sync with the audio and video streams. To prevent that from happening, Plex burns the subtitles into the video stream.

I’ve no idea if there is some way to fix things or what would be required to do so. The situation has existed since at least 2017 (when I bought my LG).

Some, but not all, Plex clients are similarly afflicted.

Most Smart TV apps have similar, but not exactly the same, limitations. Some, but not all, versions of Tizen (Samsung TVs) are similarly afflicted. Not sure about other Smart TV apps.

Android & Android TV handle subtitles just fine even when the video or audio is transcoding. Subtitles are direct streamed. No burning required.

Unfortunately, there is no “master list” of which clients support which subtitles. If considering a purchase, you might post in the relevant section of the forum. Someone should be able to provide an answer.

1 Like

Got it. Thank you so much @FordGuy61 :tada: :tada: :tada:

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