I got a plex media server, hosted on my NAS Synology DS918+, through a docker. The NAS is linked to a router upstairs, which is linked to an other one (so a different WiFi) downstairs, from which I use. The thing is…some files are buffering for ever, no matter the size. For example, I’ve tried to watch a 2.5GB file, and there is absolutely no way to stream it. There is buffering for no reasons.
I tried every single options I saw on the internet, and the only way to stream it is to enable “auto-conversion”, but the quality is super bad. And my internet connexion is super fast (30Mbps). So I don’t understand what goes wrong !
Could someone help me ? And sorry for my bad english !
Thank you for providing the logs first. It has helped very much.
I do request: VERBOSE logging OFF
Turning it on makes diagnosing much more difficult. Often, much data is lost.
Regarding your buffering:
The DiskStation’s J3455 processor does not handle subtitles well at all. It will buffer if PGS, VOBSUB, or DVDrip subtitles are used. It will also buffer if “Burn always” is selected on the player.
I found this in your logs which shows all transcoding is being done by the CPU because there is no active PlexPass detected.
Jan 14, 2020 16:06:30.551 [0x7f4586ffd700] DEBUG - Scaled up video bitrate to 7257Kbps based on 1.500000x fudge factor.
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: Selected protocol dash; container: mp4
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: analyzing media item 3107
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: E1 - Episode 1: Direct Play is disabled
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: E1 - Episode 1: media must be transcoded in order to use the dash protocol
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: E1 - Episode 1: selected audio stream is not the first audio stream and direct play stream selection is not enabled
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: E1 - Episode 1: no direct play video profile exists for http/mkv/h264
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: E1 - Episode 1: no direct play video profile exists for http/mkv/h264/ac3
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: E1 - Episode 1: no direct play video profile exists for http/mkv/h264/ac3
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: E1 - Episode 1: Direct Streaming is disabled, so video stream will be transcoded
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: E1 - Episode 1: no remuxable profile found, so video stream will be transcoded
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: Cannot direct stream video stream due to profile or setting limitations
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - Scaled up video bitrate to 7257Kbps based on 1.500000x fudge factor.
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: E1 - Episode 1: Audio Direct Streaming is disabled, so video's audio stream will be transcoded
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: Cannot direct stream audio stream due to profile or setting limitations
Jan 14, 2020 16:06:30.552 [0x7f4586ffd700] DEBUG - MDE: The New Pope - S1 E1 - Episode 1: selected media 0 / 3107
Jan 14, 2020 16:06:30.554 [0x7f4586ffd700] DEBUG - Streaming Resource: Reached Decision id=2107 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=3107 part=(id=3175 decision=transcode container=mp4 protocol=dash streams=(Video=(id=11631 decision=transcode bitrate=7257 encoder=libx264 width=1920 height=1080) Audio=(id=11633 decision=transcode bitrate=256 encoder=aac channels=2 rate=48000) Subtitle=(id=11634 decision=transcode bitrate=2147483647 encoder=ass languageCode=fre location=sidecar))))
Jan 14, 2020 16:06:30.554 [0x7f4586ffd700] DEBUG - Transcode Session: Going to restart at offset 1292.839966 with segment number 399
Jan 14, 2020 16:06:30.554 [0x7f4586ffd700] DEBUG - Killing job.
Jan 14, 2020 16:06:30.554 [0x7f4586ffd700] DEBUG - Signalling job ID 1641 with 9
Jan 14, 2020 16:06:30.554 [0x7f4586ffd700] DEBUG - Job was already killed, not killing again.
Jan 14, 2020 16:06:30.554 [0x7f4586ffd700] DEBUG - Stopping transcode session boo64gcux8tc1zfee7lfjcl4
Jan 14, 2020 16:06:30.554 [0x7f4586ffd700] DEBUG - Starting a transcode session boo64gcux8tc1zfee7lfjcl4 at offset 1292.8 (state=3)
Jan 14, 2020 16:06:30.556 [0x7f4586ffd700] DEBUG - [Universal] Using local file path instead of URL: /Films/Séries/The.New.Pope.S01E01.MULTi.1080p.HDTV.H264-SH0W.mkv
Jan 14, 2020 16:06:30.556 [0x7f4586ffd700] DEBUG - TPU: hardware transcoding: zero-copy support not present
Jan 14, 2020 16:06:30.557 [0x7f4586ffd700] DEBUG - Job running: EAE_ROOT='/tmp/pms-25886f56-934f-48de-ae08-7239ab451a6d/EasyAudioEncoder' FFMPEG_EXTERNAL_LIBS='/config/Library/Application\ Support/Plex\ Media\ Server/Codecs/8bf330d-2818-linux-x86_64/' XDG_CACHE_HOME='/config/Library/Application Support/Plex Media Server/Cache' XDG_DATA_HOME='/usr/lib/plexmediaserver/Resources' X_PLEX_TOKEN='xxxxxxxxxxxxxxxxxxxx' '/usr/lib/plexmediaserver/Plex Transcoder' '-codec:0' 'h264' '-codec:2' 'ac3' '-ss' '1292.7519989999996' '-analyzeduration' '20000000' '-probesize' '20000000' '-i' '/Films/Séries/The.New.Pope.S01E01.MULTi.1080p.HDTV.H264-SH0W.mkv' '-filter_complex' '[0:0]yadif[0];[0]scale=w=1920:h=1080[1];[1]format=pix_fmts=yuv420p|nv12[2];[2]select=gte(t\,1292.799999)[3]' '-filter_complex' '[0:2] aresample=async=1:ocl='\''stereo'\'':osr=48000[4]' '-map' '[3]' '-codec:0' 'libx264' '-crf:0' '16' '-maxrate:0' '7257k' '-bufsize:0' '14514k' '-r:0' '25' '-preset:0' 'veryfast' '-x264opts:0' 'subme=0:me_range=4:rc_lookahead=10:me=dia:no_chroma_me:8x8dct=0:partitions=none' '-force_key_frames:0' 'expr:gte(t,1290+n_forced*3)' '-map' '[4]' '-metadata:s:1' 'language=eng' '-codec:1' 'aac' '-b:1' '256k' '-bsf:1' 'framedrop=count=2' '-f' 'dash' '-seg_duration' '3' '-init_seg_name' 'init-stream$RepresentationID$.m4s' '-media_seg_name' 'chunk-stream$RepresentationID$-$Number%05d$.m4s' '-window_size' '5' '-delete_removed' 'false' '-skip_to_segment' '400' '-time_delta' '0.0625' '-manifest_name' 'http://127.0.0.1:32400/video/:/transcode/session/boo64gcux8tc1zfee7lfjcl4/4f3fc2ee-de3f-4d8d-8cc7-603d04fff110/manifest' '-avoid_negative_ts' 'disabled' '-map_metadata' '-1' '-map_chapters' '-1' 'dash' '-map' '0:3' '-metadata:s:0' 'language=fre' '-codec:0' 'ass' '-f' 'segment' '-segment_format' 'ass' '-segment_time' '1' '-segment_header_filename' 'sub-header' '-segment_start_number' '0' '-segment_list' 'http://127.0.0.1:32400/video/:/transcode/session/boo64gcux8tc1zfee7lfjcl4/4f3fc2ee-de3f-4d8d-8cc7-603d04fff110/seglist?stream=subtitles' '-segment_list_type' 'csv' '-segment_list_size' '5' '-segment_list_separate_stream_times' '1' '-segment_format_options' 'ignore_readorder=1' '-segment_list_unfinished' '1' '-fflags' '+flush_packets' 'sub-chunk-%05d' '-start_at_zero' '-copyts' '-y' '-nostats' '-loglevel' 'quiet' '-loglevel_plex' 'error' '-progressurl' 'http://127.0.0.1:32400/video/:/transcode/session/boo64gcux8tc1zfee7lfjcl4/4f3fc2ee-de3f-4d8d-8cc7-603d04fff110/progress'
Jan 14, 2020 16:06:30.559 [0x7f4586ffd700] DEBUG - Jobs: Starting child process with pid 1746
Jan 14, 2020 16:06:30.559 [0x7f4586ffd700] DEBUG - Started session successfully: boo64gcux8tc1zfee7lfjcl4
Also, please be aware, Hardware Transcoding does not work in Docker unless you do the extra work yourself. The native application automatically connects to the hardware for the video transcoding when it is needed. Subtitles are always handled by the CPU. If you had an active Plex Pass, and PMS had direct access to the hardware, the buffering would only happen when playing PGS, VOBSUB, and DVDRIP formats.
I recommend using the native app. I automatically manage the HW transcoding linkages when you use the native app. Docker requires you to perform those steps yourself .
In my experience with Docker, I’ve not found where it’s as portable as many claim but I have found a ZIP file from LInux -> Linux to be very easy to do.
I’ve now spotted a few things which are issues. They’re easy to clean up.
Network configuration. The 169.254.201.13 is an uninitialized/unused adapter which is somehow active (or possibly your Default Gateway) when it shouldn’t be. The default gateway should be eth0 (192.168.1.124)
Jan 27, 2020 13:36:02.319 [0x7fb573d11700] DEBUG - Network interfaces:
Jan 27, 2020 13:36:02.319 [0x7fb573d11700] DEBUG - * 1 lo (127.0.0.1) (loopback: 1)
Jan 27, 2020 13:36:02.319 [0x7fb573d11700] DEBUG - * 3 eth0 (192.168.1.124) (loopback: 0)
Jan 27, 2020 13:36:02.319 [0x7fb573d11700] DEBUG - * 4 eth1 (169.254.201.13) (loopback: 0)
Jan 27, 2020 13:36:02.319 [0x7fb573d11700] DEBUG - * 5 docker0 (172.17.0.1) (loopback: 0)
Jan 27, 2020 13:36:02.319 [0x7fb573d11700] DEBUG - * 1 lo (::1) (loopback: 1)
Jan 27, 2020 13:36:02.319 [0x7fb573d11700] DEBUG - NetworkService: Got notification of changed network (first change: 0)
Jan 27, 2020 13:36:02.319 [0x7fb573d11700] DEBUG - NetworkService: Dispatch network change after two second delay.
Jan 27, 2020 13:34:41.143 [0x7fb573fff700] DEBUG - NetworkService: Browsing on interface 127.0.0.1 on broadcast address 127.255.255.255 (index: 0)
Jan 27, 2020 13:34:41.143 [0x7fb573fff700] DEBUG - NetworkService: Browsing on interface 192.168.1.124 on broadcast address 192.168.1.255 (index: 1)
Jan 27, 2020 13:34:41.143 [0x7fb573fff700] DEBUG - NetworkService: Browsing on interface 169.254.201.13 on broadcast address 169.254.255.255 (index: 2)
Jan 27, 2020 13:34:41.143 [0x7fb573fff700] DEBUG - NetworkService: Network change for browser (polled=1), closing 2 browse sockets.
Jan 27, 2020 13:34:41.143 [0x7fb573fff700] DEBUG - NetworkService: Browsing on interface 127.0.0.1 on broadcast address 127.255.255.255 (index: 0)
Jan 27, 2020 13:34:41.143 [0x7fb573fff700] DEBUG - NetworkService: Browsing on interface 192.168.1.124 on broadcast address 192.168.1.255 (index: 1)
Jan 27, 2020 13:34:41.143 [0x7fb573fff700] DEBUG - NetworkService: Browsing on interface 169.254.201.13 on broadcast address 169.254.255.255 (index: 2)
DNS name lookup is failing. Check the network adapter configuration. Curl error 6 is DNS lookup.
Jan 27, 2020 13:35:20.515 [0x7fb599baa700] WARN - HTTP error requesting PUT https://plex.tv/devices/10f19557784e01a748bcdc7f86d011340abf9191?Connection[][uri]=http://192.168.1.124:32400&httpsEnabled=1&httpsRequired=0&dnsRebindingProtection=1&natLoopbackSupported=0&X-Plex-Token=xxxxxxxxxxxxxxxxxxxx (0, No error) (Could not resolve host: plex.tv)
Jan 27, 2020 13:35:20.515 [0x7fb599baa700] WARN - MyPlex: Updating device connections failed, retrying in 40 seconds.
Jan 27, 2020 13:35:20.515 [0x7fb5995ce700] DEBUG - MyPlex: Updating device connections (from timer: 0)
Jan 27, 2020 13:35:20.515 [0x7fb5995ce700] DEBUG - HTTP requesting PUT https://plex.tv/devices/10f19557784e01a748bcdc7f86d011340abf9191?Connection[][uri]=http://192.168.1.124:32400&httpsEnabled=1&httpsRequired=0&dnsRebindingProtection=1&natLoopbackSupported=0&X-Plex-Token=xxxxxxxxxxxxxxxxxxxx
Jan 27, 2020 13:35:20.520 [0x7fb5995ce700] ERROR - Error issuing curl_easy_perform(handle): 6
Jan 27, 2020 13:35:20.520 [0x7fb5995ce700] WARN - HTTP error requesting PUT https://plex.tv/devices/10f19557784e01a748bcdc7f86d011340abf9191?Connection[][uri]=http://192.168.1.124:32400&httpsEnabled=1&httpsRequired=0&dnsRebindingProtection=1&natLoopbackSupported=0&X-Plex-Token=xxxxxxxxxxxxxxxxxxxx (0, No error) (Could not resolve host: plex.tv)
Jan 27, 2020 13:35:20.520 [0x7fb5995ce700] WARN - MyPlex: Updating device connections failed, retrying in 10 seconds.
Jan 27, 2020 13:35:20.520 [0x7fb5998bc700] DEBUG - MyPlex: Updating device connections (from timer: 0)
Jan 27, 2020 13:35:20.520 [0x7fb5998bc700] DEBUG - HTTP requesting PUT https://plex.tv/devices/10f19557784e01a748bcdc7f86d011340abf9191?Connection[][uri]=http://192.168.1.124:32400&httpsEnabled=1&httpsRequired=0&dnsRebindingProtection=1&natLoopbackSupported=0&X-Plex-Token=xxxxxxxxxxxxxxxxxxxx
Jan 27, 2020 13:35:20.533 [0x7fb5998bc700] ERROR - Error issuing curl_easy_perform(handle): 6
Jan 27, 2020 13:35:20.533 [0x7fb5998bc700] WARN - HTTP error requesting PUT https://plex.tv/devices/10
In Settings - Server - Transcoder - Show Advanced did you enable HW acceleration?
The 2nd adapter should be unplugged if not used.
If it was previously being used and then unplugged, please go into the Control Panel - Network and clear out the old addressing / settings which were there.
While there, make certain the active adapter is the “Default Gateway”.
Use of a PlexPass , specifically to enable Hardware Transcoding, is very good in certain situations.
It won’t help on a Synology NAS if:
You have subtitles to burn into the video image. This is done by the CPU and Synology CPUs aren’t the best at this task. Text based subtitles (SRT in particular) is very commonly acceptable as an ‘overlay’ by Plex players. PMS sends them along as another data stream with the audio & video streams.
There is a lot of audio processing to perform (a complex audio codec -> stereo) and the NAS is already loaded down with other tasks.
If the NAS CPU’s HW ASIC doesn’t support the video encoding (e.g. Decoding HEVC on DS-x16 NAS models which predate the ability). You, however, have the J3455 CPU in your model. It will decode 2160p HEVC and transcode it, in hardware, down to 1080p H.264 effortlessly.
Jan 27, 2020 12:38:19.147 [0x7fb59ba96700] INFO - Plex Media Server v1.18.4.2171-ac2afe5f8 - Synology DS918+ x86_64 - build: linux-x86_64 synology - GMT 01:00
Jan 27, 2020 12:38:19.147 [0x7fb59ba96700] INFO - Linux version: DSM 6.2.2.24922-5, language: en-US
Jan 27, 2020 12:38:19.148 [0x7fb59ba96700] INFO - Processor Intel(R) Celeron(R) CPU J3455 @ 1.50GHz
If you can show me the XML for one of the files which is causing you problems, I’ll show you how to determine whether or not HW transcoding will help.
Hover over the item
Expose the ellipsis
Click it
Get Info
5, View XML
Copy the top portion (down through the </media> marker only
Post it in-line here using
```
Past XML here
```
It will look like this
Paste XML here
I can then look at it and see what PMS will do with it.