Server Verson: 1.32.7.7621 (latest plexinc/pms-docker in docker on Ubuntu server)
Web Version: 4.119.2
Playback in any browser (tried Firefox and Safari on macOS) just stopped working for me. When using the iOS app in an iPad all the videos play just fine but in the web player nothing plays. The videos are just stuck loading forever.
Looking at the console in Firefox I see a bunch of NS_ERROR_CONNECTION_REFUSED and NS_BINDING_ABORTED.
Sometimes the result is Error code: s1001 (Network) but sometimes it is just stuck forever.
When running Plex in the browser from 192.168.1.187 not app.plex.com and looking at the requests I see a few failed requests to 127.0.0.1 which is weird, it should always use 192.168.1.187 imho.
But as mentioned earlier, everything works just fine in the iOS app.
I tried redownloading the Plex docker image, even deleting the whole server and setting it up again, nothing helper.
Forcing docker to use plexinc/pms-docker:1.32.6.7557-1cf77d501 seems to make the problem almost fixed, the loading is no longer never ending but after maybe 20s the video plays.
Looking at change log for 1.32.7.7621 the only “suspicious” entry is “Transcoder) Enable hardware transcoding by default where available (#14282)” considering browser uses transcoding and the iOS app that has always worked probably uses direct playback.
You’re trying to play HEVC/H265 video which an i5-4xxx (Haswell) cannot do.
You minimally need SkyLake (-6xxx) for SDR HEVC and KabyLake (-7xxx) for HEVC HDR. (for HW transcoding)
The result is you get Software decode but do get hardware encode to H.264
Dec 03, 2023 10:46:29.679 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] TPU: hardware transcoding: enabled, but no hardware decode accelerator found
Dec 03, 2023 10:46:29.679 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [Universal] Using local file path instead of URL: /media/Anime/Nisekoi/Nisekoi S01E14 [BD 1920x1080 x265 10Bit Opus].mkv
Dec 03, 2023 10:46:29.680 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] Codecs: hardware transcoding: testing API vaapi for device '/dev/dri/renderD128' (Haswell-ULT Integrated Graphics Controller)
Dec 03, 2023 10:46:29.683 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [FFMPEG] - Format 0x32315659 -> yuv420p.
Dec 03, 2023 10:46:29.683 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [FFMPEG] - Format 0x30323449 -> yuv420p.
Dec 03, 2023 10:46:29.683 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [FFMPEG] - Format 0x3231564e -> nv12.
Dec 03, 2023 10:46:29.683 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [FFMPEG] - Format 0x32595559 -> yuyv422.
Dec 03, 2023 10:46:29.683 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [FFMPEG] - Format 0x59565955 -> uyvy422.
Dec 03, 2023 10:46:29.683 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [FFMPEG] - Format 0x48323234 -> yuv422p.
Dec 03, 2023 10:46:29.683 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [FFMPEG] - Format 0x58424752 -> rgb0.
Dec 03, 2023 10:46:29.683 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [FFMPEG] - Format 0x58524742 -> bgr0.
Dec 03, 2023 10:46:29.683 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [FFMPEG] - Format 0x30313050 -> p010le.
Dec 03, 2023 10:46:29.683 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [FFMPEG] - Created surface 0x4000000.
Dec 03, 2023 10:46:29.683 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] [FFMPEG] - Direct mapping possible.
Dec 03, 2023 10:46:29.684 [140340027161400] INFO - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] Preparing driver ivd for GPU Haswell-ULT Integrated Graphics Controller
Dec 03, 2023 10:46:29.684 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr/DriverDL/ivd] Skipping download; already exists
Dec 03, 2023 10:46:29.684 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr] TPU: hardware transcoding: final decoder: , final encoder: vaapi
Dec 03, 2023 10:46:29.685 [140340027161400] DEBUG - [Req#61d0/Transcode/4wrucll81bxxo05zumj1amnr/JobRunner] Job running: FFMPEG_EXTERNAL_LIBS='/config/Library/Application\ Support/Plex\ Media\ Server/Codecs/a31c019-4614-linux-x86_64/' LIBVA_DRIVERS_PATH="/config/Library/Application Support/Plex Media Server/Cache/va-dri-linux-x86_64" XDG_CACHE_HOME="/config/Library/Application Support/Plex Media Server/Cache" XDG_DATA_HOME=/usr/lib/plexmediaserver/Resources X_PLEX_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "/usr/lib/plexmediaserver/Plex Transcoder" -codec:0 hevc -codec:1 opus -ss 1030 -analyzeduration 20000000 -probesize 20000000 -i "/media/Anime/Nisekoi/Nisekoi S01E14 [BD 1920x1080 x265 10Bit Opus].mkv" -map_inlineass 0:2 -filter_complex "[0:0]scale=w=1920:h=1080:force_divisible_by=4[0];[0]format=pix_fmts=nv12[1];[1]inlineass=font_scale=1.000000:font_path=/usr/lib/plexmediaserver/Resources/Fonts/NotoSans-Medium.otf:fontconfig_file=/usr/lib/plexmediaserver/Resources/fonts.conf:language=en[2];[2]hwupload[3]" -map "[3]" -codec:0 h264_vaapi -b:0 20000k -r:0 23.975999999999999 -force_key_frames:0 "expr:gte(t,n_forced*1)" -filter_complex "[0:1] aresample=async=1:ochl='stereo':rematrix_maxval=0.000000dB:osr=48000[4]" -map "[4]" -metadata:s:1 language=jpn -codec:1 aac -b:1 256k -f dash -seg_duration 1 -dash_segment_type mp4 -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 1031 -time_delta 0.0625 -manifest_name "http://127.0.0.1:32400/video/:/transcode/session/4wrucll81bxxo05zumj1amnr/8dbff318-e83d-47ef-aa15-84d5c186dc18/manifest?X-Plex-Http-Pipeline=infinite" -avoid_negative_ts disabled -map_metadata -1 -map_chapters -1 dash -map 0:2 -f null -codec ass nullfile -start_at_zero -copyts -init_hw_device vaapi=vaapi:/dev/dri/renderD128 -filter_hw_device vaapi -y -nostats -loglevel quiet -loglevel_plex error -progressurl http://127.0.0.1:32400/video/:/transcode/session/4wrucll81bxxo05zumj1amnr/8dbff318-e83d-47ef-aa15-84d5c186dc18/progress
The other errors you’re seeing only give me one indication in your logs.
I see where the ethernet connection reset right in the middle of transcoding and forced it all to restart.
I also saw the machine doing a fair amount of media ingestion. Did you just add a lot ?
when you see 127.0.0.1 IP addresses – That’s PMS talking to itself over the loopback adapter because that’s the fastest way to do it. You won’t see it loop all the way out through the host’s IP address (wasteful of performance)
Well I would expect Plex to be clever enough to determine that my Haswell cannot use HW transcoding for HEVC and not try to use it, fallback to software tramscoding and work.
My expectation about HW transcoding is “use when possible” not having to think what my HW is, what format my video is and enable disable it accordingly.
I see, by the filenames, you’re playing Anime. I’ve seen some of those things to cause real “heartburn” in software. Sure it’ll get done but the CPU will work hard at it and there will be delays while the CPU builds up enough data to start streaming.
(no way around that)
I think I narrowed it down a bit. Running the latest 1.32.7.7621 with GPU passed to the docker container I need to disable “Use hardware acceleration when available” to make the videos play.
With the older 1.32.6.7557 I used before I can have the “Use hardware acceleration when available” enabled and the videos play.
The way I see it something in 1.32.7.7621 changed forcing me to disable HW acceleration to make anything play.
All we did is enable the “Use” flags by default. It doesn’t change any of the evaluation process.
We did this because 90+% of the users want HW enabled if they have it.
Setting the “Enabled” option for everyone (by default) makes sense.
Those who want to keep it off can turn it back off.
In your case, You’re getting HW benefit. You’re getting HW encoding
This line means: Software Decode (because the chip can’t do H265/HEVC) but it can do H264 output in hardware.
If you had an Nvidia P2200 in the box, You’d have seen
TPU: hardware transcoding: final decoder: nvdec, final encoder: nvenc
(nvidia decoder hardware and nvidia encoder hardware – on the card)
I reference the P2200 because it can process H265 in hardware.
As for your CPU, please do remember to manage expectations.
It’s a 2013 CPU which predates HEVC/H265.
I think that if you make certain not to use H265 media, using H264 only, you’ll be able to use that CPU for quite some time as long as the OS is kept up to date.
Here’s a test we can do.
This is a big H264 video which your machine should be able to do in hardware.
It’s short but does allow us to confirm hardware transcoding and output to Plex/web works (Go to: Settings - Player - Quality - Set to 1080p - 20 Mbps for this test)
jellyfish-80-mbps-hd-h264.mkv plays just fine with “Use hardware acceleration when available” enabled and disabled
jellyfish-80-mbps-hd-hevc.mkv fails with “Error code: s1001 (Network)” with “Use hardware acceleration when available” enabled, plays fine with “Use hardware acceleration when available” disabled
jellyfish-50-mbps-hd-hevc.mkv fails with “Error code: s1001 (Network)” with “Use hardware acceleration when available” enabled, plays fine with “Use hardware acceleration when available” disabled
jellyfish-50-mbps-hd-h264.mkv plays just fine with “Use hardware acceleration when available” enabled and disabled
The iOS app works because it can natively handle H265. FireFox / Safari are not guaranteed – and in most cases – hard NO. They want H.264 encoded video streams.
I know Chrome will accept some HEVC but I’ve not had time to figure out everything it can and cannot do.
The path for you:
Upgrade the CPU to a KabyLake or better (-7000 class)
-or-
Re-encode your HEVC/H.265 to H.264 before putting them in your library
I do not consider any of those 2 solutions a solution. Ideally Plex should determine that using HW transcoding for HEVC on my hardware will not work and not even try. Otherwise the only real solution is for me to disable HW transcoding, which will result in not having to change hardware, not doing any manual recoding and being able to play everything. Just my Plex pass will be basically useless.