Yeah It’s pretty crazy how inefficiently it works.
PMS does not even remember that VAAPI didn’t work during the very same transcoding session and keeps checking.
Running tail -f "Plex Media Server.log" | egrep 'API (nvenc|vaapi)' while starting transcodes is pretty interesting.
Jan 30, 2023 13:54:48.216 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 30, 2023 13:54:48.511 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 30, 2023 13:54:48.710 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 30, 2023 13:54:48.995 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 30, 2023 13:54:49.205 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 30, 2023 13:54:49.502 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 30, 2023 13:54:49.813 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 30, 2023 13:54:50.388 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 30, 2023 13:54:50.731 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 30, 2023 13:54:51.192 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API vaapi
Jan 30, 2023 13:54:51.561 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API nvenc
Jan 30, 2023 13:54:51.992 [0x7fffdb226b38] DEBUG - [Req#3c52e/Transcode] Codecs: hardware transcoding: testing API vaapi
For most files I try transcoding, it checks 6 times for both VAAPI & NVENC before starting the transcoding process. It looks like Chrome handles this extra delay badly, and usually just fails playback, while some other devices handle this a bit better but with noticable delays when starting playback.