Video tearing and playback issues on LG CX OLED, 4K HDR 10bit, HEVC MKV

Server Version#: 1.21.0.3616, Synology NAS
Client Version#: 5.5.1
Platform Version#: 5.1.1

Hi, playing a 4K 10bit HDR video and I’m noticing some weird behavior with it. There are artifacts and tearing. The audio is perfect from what I can tell but the video is messed up. The playback device is an LG CX OLED 77” 2020 model and other videos of this type don’t have these issues.

I included the video specs below along with a screenshot of what’s happening.

Tested this on my Xbox Series X and it does the same thing. Any thoughts?

Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main 10@L5.1@High
HDR format : SMPTE ST 2086, HDR10 compatible
Codec ID : V_MPEGH/ISO/HEVC
Duration : 2 h 21 min
Width : 3 840 pixels
Height : 1 600 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 23.976 (24000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0 (Type 2)
Bit depth : 10 bits
Writing library : x265 2.5+28-7aeabaa92b85:[Windows][GCC 6.2.1][64 bit] 10bit
Encoding settings : cpuid=1173503 / frame-threads=4 / numa-pools=16 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=3840x1600 / interlace=0 / total-frames=203226 / level-idc=51 / high-tier=1 / uhd-bd=0 / ref=4 / no-allow-non-conformance / repeat-headers / annexb / aud / hrd / info / hash=0 / no-temporal-layers / no-open-gop / min-keyint=23 / keyint=250 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=25 / lookahead-slices=4 / scenecut=40 / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / no-strong-intra-smoothing / max-merge=3 / limit-refs=3 / limit-modes / me=3 / subme=3 / merange=57 / temporal-mvp / weightp / no-weightb / no-analyze-src-pics / deblock=-3:-3 / no-sao / no-sao-non-deblock / rd=4 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=1.00 / no-rd-refine / analysis-reuse-mode=0 / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=crf / crf=17.0 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=0 / vbv-maxrate=160000 / vbv-bufsize=160000 / vbv-init=0.9 / crf-max=0.0 / crf-min=0.0 / ipratio=1.40 / pbratio=1.30 / aq-mode=1 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=9 / transfer=16 / colormatrix=9 / chromaloc=1 / chromaloc-top=2 / chromaloc-bottom=2 / display-window=0 / master-display=G(13250,34500)B(7500,3000)R(34000,16000)WP(15635,16450)L(40000000,50) / max-cll=1721,379 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / opt-qp-pps / opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / no-opt-cu-delta-qp / no-aq-motion / hdr / hdr-opt / no-dhdr10-opt / analysis-reuse-level=5 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=0 / no-limit-sao / ctu-info=0
Language : English
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.2020
Transfer characteristics : PQ
Matrix coefficients : BT.2020 non-constant
Mastering display color primaries : Display P3
Mastering display luminance : min: 0.0050 cd/m2, max: 4000 cd/m2
Maximum Content Light Level : 1721 cd/m2
Maximum Frame-Average Light Level : 379 cd/m2

Also, please include the logs which capture this.

If it was a DirectPlay event then that would change everything.

@trumpy81 and @ChuckPa

I am using a Synology DS916+ 8GB. I do see that things are being transcoded, and have attached the logs as requested. Curious as to why things are being transcoded.

Same tearing/artifact issues happens on the Xbox Series X. I can provide those logs in the morning as my kids are on the console at the moment.

(File removed)

Thanks for that .

Would you mind recreating again and uploading the entire ZIP?

What you provided missed the details (MDE:) about what PMS was going to do.

From what you did provide, it’s not possible to tell if PMS (the N3710) or the network.

The MDE tells us what the media is about .

@ChuckPa

I stopped Plex, cleared the logs, started it, setup the LG to log to the server, performed the steps to play the video where it is showing what is pictured above, then did a media analysis of the MKV file. Let me know if there are any other logs you need.

(File removed)

thanks,

This can’t be good. what is that IP? The TV?

Nov 25, 2020 08:57:25.307 [0x7fd1d1cd7700] DEBUG - Content-Length is -1 (of total: -1).
Nov 25, 2020 08:57:25.308 [0x7fd1e1b50700] DEBUG - Completed: [127.0.0.1:48631] 200 GET / (13 live) GZIP 25ms 3794 bytes
Nov 25, 2020 08:57:25.309 [0x7fd1d1fc5700] DEBUG - [com.plexapp.system] Sending command over HTTP (GET): /:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_
Nov 25, 2020 08:57:25.310 [0x7fd1d1fc5700] DEBUG - HTTP requesting GET http://127.0.0.1:46434/:/plugins/com.plexapp.system/messaging/function/X0J1bmRsZVNlcnZpY2U6QWxsU2VydmljZXM_/Y2VyZWFsMQoxCmxpc3QKMApyMAo_/Y2VyZWFsMQoxCmRpY3QKMApyMAo_
Nov 25, 2020 08:57:25.312 [0x7fd1d19e9700] ERROR - [Plex for LG] [paulhaskew:fa3k2h6ulxsp7tul4co1ghr1] [Unhandled Rejection]: Http request failed: http://192.168.1.23:32400/log, status: Network Error 
Error: Http request failed: http://192.168.1.23:32400/log, status: Network Error
    at e.value (https://app.plex.tv/tv-early-access-webos?earlyAccess=1:435:475308)
    at e.<anonymous> (https://app.plex.tv/tv-early-access-webos?earlyAccess=1:435:474277)
    at c (https://app.plex.tv/tv-early-access-webos?earlyAccess=1:435:442209)
    at Generator._invoke (https://app.plex.tv/tv-early-access-webos?earlyAccess=1:435:441997)
    at Generator.e.(anonymous function) [as throw] (https://app.plex.tv/tv-early-access-webos?earlyAccess=1:435:442631)
    at n (https://app.plex.tv/tv-early-access-webos?earlyAccess=1:421:46039)
    at u (https://app.plex.tv/tv-early-access-webos?earlyAccess=1:421:46285)
Nov 25, 2020 08:57:25.312 [0x7fd1d19e9700] INFO - [Plex for LG] [paulhaskew:fa3k2h6ulxsp7tul4co1ghr1] [Server Retry] Retrying connection to StorageV2 (ready)
Nov 25, 2020 08:57:25.312 [0x7fd1d19e9700] INFO - [Plex for LG] [paulhaskew:fa3k2h6ulxsp7tul4co1ghr1] [Server Retry] Starting connection retries to StorageV2 (ready)
Nov 25, 2020 08:57:25.312 [0x7fd1d19e9700] INFO - [Plex for LG] [paulhaskew:fa3k2h6ulxsp7tul4co1ghr1] [Server Retry] Retrying connection to StorageV2 (ready)
Nov 25, 2020 08:57:25.312 [0x7fd1e1b50700] DEBUG - Completed: [192.168.1.138:37442] 200 POST /log (12 live) GZIP 24ms 274 bytes (pipelined: 1)
Nov 25, 2020 08:57:25.313 [0x7fd1e1b50700] DEBUG - Completed: [127.0.0.1:48639] 200 GET /servers (12 live) GZIP 23ms 491 bytes
Nov 25, 2020 08:57:25.314 [0x7fd1e1b50700] DEBUG - Completed: [127.0.0.1:48638] 200 GET / (11 live) GZIP 25ms 3794 bytes

If I may ask, while it is your server, why you’re attempting 2160p content transcoding in software on a machine which does not have the chops for it?

HEVC is hard enough on an i7-7700 in software with 10,000 passmarks
The N3710 has 1350 Passmarks

Nov 25, 2020 08:58:05.923 [0x7fd1d1cd7700] DEBUG - [Transcode] Jobs: Starting child process with pid 2731
Nov 25, 2020 08:58:05.923 [0x7fd1d1cd7700] DEBUG - [Transcode] [Universal] Using local file path instead of URL: /volume1/Media/MOVIES/4k/Some Movie (2020) [2160p]/Some Movie (2020) [2160p].mkv
Nov 25, 2020 08:58:05.924 [0x7fd1d1cd7700] DEBUG - [Transcode] TPU: hardware transcoding: final decoder: , final encoder: 
Nov 25, 2020 08:58:05.924 [0x7fd1d1cd7700] DEBUG - [Transcode] Job running: EAE_ROOT='/volume1/Plex/tmp_transcoding/pms-358ad238-12a2-49c6-a7f0-a8e18da12df7/EasyAudioEncoder' FFMPEG_EXTERNAL_LIBS='/volume1/Plex/Library/Application\ Support/Plex\ Media\ Server/Codecs/7c50c14-3596-linux-x86_64/' XDG_CACHE_HOME='/volume1/Plex/Library/Application Support/Plex Media Server/Cache' XDG_DATA_HOME='/volume1/@appstore/Plex Media Server/Resources' X_PLEX_TOKEN='xxxxxxxxxxxxxxxxxxxx' '/volume1/@appstore/Plex Media Server/Plex Transcoder' '-codec:0' 'hevc' '-codec:1' 'truehd_eae' '-eae_prefix:1' 'l54ajxc991cx9ikes2qkyeit_' '-noaccurate_seek' '-analyzeduration' '20000000' '-probesize' '20000000' '-i' '/volume1/Media/MOVIES/4k/Some Movie (2020) [2160p]/Some Movie (2020) [2160p].mkv' '-filter_complex' '[0:1] aresample=async=1:ocl='\''7.1'\'':rematrix_maxval=0.000000dB:osr=48000[0]' '-map' '0:0' '-metadata:s:0' 'language=eng' '-codec:0' 'copy' '-map' '[0]' '-metadata:s:1' 'language=eng' '-codec:1' 'eac3_eae' '-eae_prefix:1' 'l54ajxc991cx9ikes2qkyeit_' '-b:1' '1000k' '-segment_format' 'mpegts' '-f' 'ssegment' '-individual_header_trailer' '0' '-segment_time' '10' '-segment_start_number' '0' '-segment_copyts' '1' '-segment_time_delta' '0.0625' '-segment_list' 'http://127.0.0.1:32400/video/:/transcode/session/l54ajxc991cx9ikes2qkyeit/a3f1639d-dbf4-487e-b1f9-f59e1b843f1b/seglist?X-Plex-Http-Pipeline=infinite' '-segment_list_type' 'csv' '-segment_list_size' '5' '-segment_list_separate_stream_times' '1' '-segment_list_unfinished' '1' '-max_delay' '5000000' '-avoid_negative_ts' 'disabled' '-map_metadata' '-1' '-map_chapters' '-1' 'media-%05d.ts' '-start_at_zero' '-copyts' '-vsync' 'cfr' '-y' '-nostats' '-loglevel' 'quiet' '-loglevel_plex' 'error' '-progressurl' 'http://127.0.0.1:32400/video/:/transcode/session/l54ajxc991cx9ikes2qkyeit/a3f1639d-dbf4-487e-b1f9-f59e1b843f1b/progress'
Nov 25, 2020 08:58:05.925 [0x7fd1d1cd7700] DEBUG - [Transcode] Jobs: Starting child process with pid 2732
Nov 25, 2020 08:58:05.932 [0x7fd1e067f700] DEBUG - Request: [127.0.0.1:48789 (Loopback)] PUT /video/:/transcode/session/l54ajxc991cx9ikes2qkyeit/a3f1639d-dbf4-487e-b1f9-f59e1b843f1b/progress?status=startup (9 live) Signed-in Token (paulhaskew) (range: bytes=0-) 
Nov 25, 2020 08:58:05.932 [0x7fd1e1b50700] DEBUG - Completed: [127.0.0.1:48789] 204 PUT /video/:/transcode/session/l54aj

If you have a 4K TV, then we need to figure out why it’s not direct playing but my money is on MPEGTS

Nov 25, 2020 08:58:05.394 [0x7fd1d1cd7700] DEBUG - [Transcode] MDE: Selected protocol hls; container: mpegts
Nov 25, 2020 08:58:05.394 [0x7fd1d1cd7700] DEBUG - [Transcode] MDE: analyzing media item 70273
Nov 25, 2020 08:58:05.394 [0x7fd1d1cd7700] DEBUG - [Transcode] MDE: Some Movie (2020): Direct Play is disabled
Nov 25, 2020 08:58:05.394 [0x7fd1d1cd7700] DEBUG - [Transcode] MDE: Some Movie (2020): media must be transcoded in order to use the hls protocol
Nov 25, 2020 08:58:05.394 [0x7fd1d1cd7700] DEBUG - [Transcode] MDE: Some Movie (2020): no direct play video profile exists for http/mkv/hevc
Nov 25, 2020 08:58:05.394 [0x7fd1d1cd7700] DEBUG - [Transcode] MDE: Some Movie (2020): no direct play video profile exists for http/mkv/hevc/truehd
Nov 25, 2020 08:58:05.394 [0x7fd1d1cd7700] DEBUG - [Transcode] MDE: Some Movie (2020): no direct play video profile exists for http/mkv/hevc/ac3
Nov 25, 2020 08:58:05.395 [0x7fd1d1cd7700] DEBUG - [Transcode] MDE: Some Movie (2020): Audio Direct Streaming is disabled, so video's audio stream will be transcoded
Nov 25, 2020 08:58:05.395 [0x7fd1d1cd7700] DEBUG - [Transcode] MDE: Cannot direct stream audio stream due to profile or setting limitations
Nov 25, 2020 08:58:05.395 [0x7fd1d1cd7700] DEBUG - [Transcode] MDE: Some Movie (2020): selected media 0 / 70273
Nov 25, 2020 08:58:05.396 [0x7fd1d1cd7700] DEBUG - [Transcode] Streaming Resource: Added session 0x7fd18c00e0c0:fa3k2h6ulxsp7tul4co1ghr1
Nov 25, 2020 08:58:05.396 [0x7fd1d1cd7700] DEBUG - [Transcode] Streaming Resource: Reached Decision id=1658 codes=(General=1001,Direct play not available; Co

That has to be converted to HLS formatting which is a HARD transcode of video.

I would like to recommend you take this video, re-encode it to MKV HEVC 2160p and set the video profile to 4.0 (20 Mbps max) as the starting point.

Then try it. It will likely direct play or just remux.

The network error was due to bouncing the Plex service after I made sure the LG was logging to the server, and cleared the logs again.

With regards to the transcoding, no idea, not something I was forcing. Simply dropped the file in the Movies location, Plex analyzed it and showed it in the catalog and I attempted playback.

The LG OLED77CXAUA is a 4K TV and the newest model in that series. Gaming on it with the Xbox Series X is incredible.

I’ll set the video for a re-encode and follow up once that’s complete.

Thanks for your help this far. :slight_smile:

Also curious why these errors are still showing up, if they are supposedly a false alarm, but force transcoding when it should not.

Different screen sizes of the same TV make/model/series.

Nov 25, 2020 08:58:05.572 [0x7fd1e067f700] ERROR - Unable to find client profile for device; platform=webOS, platformVersion=5.1.1, device=webOS 5.1.1, model=OLED77CXAUA

Nov 26, 2020 09:13:37.258 [0x7f163ba23700] ERROR - Unable to find client profile for device; platform=webOS, platformVersion=5.1.1, device=webOS 5.1.1, model=OLED65CXAUA

Also, here is the video info from MKVToolNix prior to the re-encode:

Here is another video that played perfectly with similar transcode, am I missing something obvious?

Is that reporting something I can see in the logs? If so, do you have an example I can use to find it?

Ah, I mispoke, the second 4K HEVC video did transcode, but plays without the tearing/artifact issue.

Nov 26, 2020 13:22:24.027 [0x7f163a2b3700] DEBUG - [Transcode] MDE: Selected protocol hls; container: mpegts
Nov 26, 2020 13:22:24.027 [0x7f163a2b3700] DEBUG - [Transcode] MDE: analyzing media item 70271
Nov 26, 2020 13:22:24.027 [0x7f163a2b3700] DEBUG - [Transcode] MDE: Another Movie (2016): Direct Play is disabled
Nov 26, 2020 13:22:24.027 [0x7f163a2b3700] DEBUG - [Transcode] MDE: Another Movie (2016): media must be transcoded in order to use the hls protocol
Nov 26, 2020 13:22:24.027 [0x7f163a2b3700] DEBUG - [Transcode] MDE: Another Movie (2016): no direct play video profile exists for http/mkv/hevc
Nov 26, 2020 13:22:24.027 [0x7f163a2b3700] DEBUG - [Transcode] MDE: Another Movie (2016): no direct play video profile exists for http/mkv/hevc/truehd
Nov 26, 2020 13:22:24.027 [0x7f163a2b3700] DEBUG - [Transcode] MDE: Another Movie (2016): no direct play video profile exists for http/mkv/hevc/ac3
Nov 26, 2020 13:22:24.027 [0x7f163a2b3700] DEBUG - [Transcode] MDE: Another Movie (2016): Audio Direct Streaming is disabled, so video's audio stream will be transcoded
Nov 26, 2020 13:22:24.028 [0x7f163a2b3700] DEBUG - [Transcode] MDE: Cannot direct stream audio stream due to profile or setting limitations
Nov 26, 2020 13:22:24.028 [0x7f163a2b3700] DEBUG - [Transcode] MDE: Another Movie (2016): selected media 0 / 70271

It is interesting that in the first video, the screenshot I shared shows up, then the Warner Bros logo appears without issue, then it goes back to the same weird artifacts/tearing or corrupted transcode. If I play this back on the Xbox Series X, it also transcodes with both videos.

What are the exact 4K HEVC settings that I need to make sure I abide by so I can play these videos without transcode and use direct play?

I did note that on the LG page that HEVC is supported: https://www.lg.com/ca_en/support/product-help/CT20098005-1437128842789. Also, looking at the built-in Photo & Video app, I see the following:

Just tested the same video I’m having problems with by enabling DLNA on Plex, and playing it via the LG Photos & Video app, it plays without issue there. No artifacts, HDR enabled…shows as:

HEVC, Dolby Audio, 3840x1600, HDR, BT.2020.

Is there any reason why Plex can’t handle this on the latest LG TV without a transcode, but the native app can?

Not sure that workaround applies to mine, it’s a Synology DS916+ x64 (Pentium N3710) 1.6GHz.

Thanks for the info about memory leaks with DLNA and LG TVs, wasn’t aware of them.

Knowing the landscape is a plethora of devices and every manufacturer picking and choosing what they will and won’t support makes things difficult. Also, my knowledge is limited when it comes to all of the newer video/audio codecs, though I’ve used Plex for over 10 years.

I’m seeing that the TV natively supports the video/audio tracks that my MKV files have, and on the other hand Plex has to transcode or remux portions of the video/audio streams. It makes me wonder why Plex has to do this and via native video player it does not.

At this point I can play my videos so I’m unblocked, but dislike the fact that I am going outside of Plex to do so.

Workaround applied, and sadly no joy. Still seeing the same issues.

If any other info is needed to help resolve these problems that would be great. I would think direct play would be supported now since it is natively, if there was a way to force it like in DLNA, my guess is that it would unblock me in Plex as well. Here’s hoping.

I Have a Synology Plex 1019+ with 3 lg 65 oled cx and most my hvec 10 4k movies have the same issue has been a long time issue also. but if i play same movie from a pc plex server no issues , so its not the tv and more the synology and plex compatibility

Could be, then again, when I reencoded the video and stripped the true HD audio, seemed to be ok. Or I just use the built in LG video app with True HD still in the video and things are fine. The first rule of 4K is don’t try to transcode 4K. :stuck_out_tongue: Hope in the end it gets sorted.

@trumpy81, going back to the DLNA issue, I am seeing the super high memory consumption. Anything I can get for the dev team to help them debug it?

I understand the differences from your prior explanation and the documentation you provided was helpful as well.

If the devs do want info or want to test anything regarding DLNA I’m game.

As for the memory usage I setup a nightly, 3AM, bounce of the Plex service on the NAS which has prevented the memory leak from causing any issues.

I’m in a similar boat to the OP but I’m using a Windows 10 box running PMS. So the only “workaround” is to enable DLNA in PMS and use LG’s native DLNA app to playback video files, with a daily restart job for PMS to avoid memory leak?

To add on, I’m also seeing this issue. I have 77" LG CX OLED and it has the issue. Client version of the plex app is 5.8.1. I also have a 65" LG C9 OLED with the exact same client version of the plex app and it does NOT show the issue with the exact same content from the exact same server. Oh, and I’m running the plex server on a windows 10 PC, so this is not a Synology related issue. No transcoding. I actually forcefully turned off video transcoding in the plex server settings to be sure. I hope LG/Plex can sort this out soon.

Any word if the dev team wants to debug this memory issue yet? The daily restart works but it would be nice to remove that and reduce memory consumption of Plex when DLNA is enabled with my LG CX sets.