Transcoding with GPU

Hi everyone. I enabled the GPU transcoding and when playing multiple movies I still see cpu at 99% and GPU not even being touched. I am attempting to play 4k hdr remux files btw quite large. Any suggestions? Specs below.

UserBenchmarks: Game 103%, Desk 77%, Work 68%
CPU: Intel Core i7-5930K - 70.4%
GPU: Nvidia GTX 1080 - 125.2%
SSD: Kingston HyperX Predator AHCI PCIe M.2 480GB - 121.2%
HDD: Seagate Barracuda 8TB (2017) - 85.2%
HDD: Seagate Archive HDD 8TB (2015) - 59.2%
RAM: Corsair Dominator DDR4 2400 C14 4x8GB - 105.1%
MBD: Asus X99-A

as far as I am aware, the ā€œHardware Transcodingā€ feature only works on Intel chips that support graphics on them. It will not use a GPU connected to a PCI-E slot.

You can use it when transcoding using Handbrake and other encoders, but not Plex as far as I know. Plex has never touched my GPU while transcoding…

@aesposit0 what operating system? linux hardware decoding is not currently supported, so you won’t get gpu help for decoding 4k material.

@JasonNalley this is false, plex does fully support nvidia gpu’s on windows, and it supports nvidia encode on linux (not decode on linux).

you both might find some useful info @ Plex, 4k, transcoding, and you - aka the rules of 4k - a FAQ

all that to say, hardware transcoding is not without issues, so if are using a supported os/gpu, then you post the exact setup and full details along with logs and any helpful screenshots.

also, searching the forum for others with the same problem, may also help you save time with a known issue and/or solution.

I think the problem is the searching. I’ve read multiple posts saying it’s only possible with NVIDIA chips with embedded graphics… As I said, I have it set to use Hardware Acceleration, and it’s never once touched my GPU while transcoding… So I have no idea why it wouldn’t work otherwise… I just assumed the people replying with ā€œIt only works with Intel chips with embedded graphicsā€ were correct, as I do not have an Intel Chip with Embedded graphics, I am on a Ryzen machine… so…

I cannot recall seeing any posts or threads that indicate or prove that embedded nvidia chips are the only ones that work.

I have in fact been using nvidia gpu’s (pcie) for year+ on linux (currently) and windows (previously).

the official info is always @ https://support.plex.tv/articles

specifically @ https://support.plex.tv/articles/115002178853-using-hardware-accelerated-streaming/ has the hardware requirements.

1 Like

Ahah! So here’s the culprit: Plex uses Intel Quick Sync Video for decoding and encoding, which is available in all recent Intel Core processors as well as some other Intel processors (such as some Xeon, Atom, or Celeron models).

So while it doesn’t need to be a chip with Embedded graphics, it DOES need to be a modern Intel Chip, which I don’t have… If I read that correctly

Intel QSV ASIC was introduced alongside the iGPU by Intel with the 2nd Generation Sandy Bridge Core CPUs.

Thanks for the clarification, and that may be where the misinformation or at the very least my misreading of the information may have come from. I have an AMD chip, so it doesn’t work for me at all…

That being said, I don’t really need it, I am able to transcode what I need to, and most of my library direct plays for most people with them making smart audio choices :slight_smile:

1 Like

Ubuntu 18.04.2 LTS using 6th Gen QSV on 7th Gen Core Kaby Lake

libva info: VA-API version 1.1.0
libva info: va_getDriverName() returns 0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/i965_drv_video.so
libva info: Found init function __vaDriverInit_1_1
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.1 (libva 2.1.0)
vainfo: Driver version: Intel i965 driver for Intel(R) Kaby Lake - 2.1.0
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileHEVCMain10             : VAEntrypointEncSlice
      VAProfileVP9Profile0            : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointEncSlice
      VAProfileVP9Profile2            : VAEntrypointVLD
 tail -f /var/lib/plexmediaserver/Library/Application\ Support/Plex\ Media\ Server/Logs/Plex\ Media\ Server.log | grep TPU
Aug 10, 2019 17:38:10.246 [0x7fe5bb7fe700] DEBUG - TPU: hardware transcoding: using hardware decode accelerator vaapi
Aug 10, 2019 17:38:10.246 [0x7fe5bb7fe700] DEBUG - TPU: hardware transcoding: zero-copy support present
Aug 10, 2019 17:38:10.246 [0x7fe5bb7fe700] DEBUG - TPU: hardware transcoding: using zero-copy transcoding
Aug 10, 2019 17:38:10.246 [0x7fe5bb7fe700] DEBUG - TPU: hardware transcoding: final decoder: vaapi, final encoder: vaapi

image
image
image

Intel is the generally the ā€˜embedded’ gpu, inside most of the modern intel cpu’s.

Each generation usually improves upon the other, so older cpus have lesser capable gpu, and newer gpus have more capable and powerful gpus.

As far as I am aware, your amd cpu should be irrelevant if you have a supported nvidia gpu.

Neither of you have said what OS you have, which does make a difference in support and various known problems.

Do please take the time to read the FAQ link I posted above, it will help you understand transcoding especially involving 4k.

1 Like

I have read your post before TeknoJunky, and it’s very informative. I am on Windows 10. According to the page you linked (not your article). It requires an Intel Core or later processor from Intel, as it uses Intel Quick Sync Video. This is not a feature in an AMD CPU. Even when you click the ā€œLook up your processorā€ link next to it, it brings you to Intels site with no mention of AMD chips at all. So, it’s a hinderance. I transcode files using Handbrake and MCEBuddy with Hardware acceleration all the time, so it’s definitely not limited in that regard. But for Plex, since they’re using Nvidia Quick Sync, it seems to be limited to Intel CPU’s only…

Sorry guys little over my head. Youre saying GPU aren’t supported but I see new plex builds that say to install a NVida P2000 card?

We’ve got it narrowed down… You CAN GPU transcode, as long as your CPU is an Intel processor that supports it… Which yours is…

You can gpu transcode with

  • new enough intel cpu with a intel igpu
    Windows and Linux
  • new enough nvidia gpu with any intel or amd cpu
    Windows decode/encode
    Linux encode only (currently)

This is directly counter to the official page that you posted earlier where it explicitly says one of the requirements is an Intel CPU supporting Quick Sync Video.

My AMD CPU Is a Ryzen 2700X (Last gen since Ryzen 3 just came out), it does not allow Plex to use GPU to transcode (GTX 1070Ti), using Windows 10. So I’d be very curious to know How you know that this is possible on AMD CPU’s, and what I am missing to allow mine to take advantage of it, if it is indeed possible…

That’s for motherboard with Embedded Graphics, no?

If you have an AMD cpu, and an nvidia GPU, you should be able to enable hardware transcoding.

If it does not work for you, then you need to post a new thread, with ALL your system details, plex versions, clients and server, which os is involved.

There should be NO reason that your nvidia gpu doesn’t work with an amd cpu.

1 Like

Thanks, I will figure it out on this side since I know it’s possible…

if your amd cpu/motherboard has an integrated ā€˜apu/gpu/video’ card, you might try disabling that in the bios.

some additional tips, @ Plex Web > settings > console, you can watch the logs and filter for specific things.

I suggest setting the filter for MDE: and then trying to play a video that transcodes, the MDE: lines should tell you why plex transcoded, and the lines before/after mde should tell about the hardware transcoding detection and if/why it is failing.

some other words to check filtering

  • MDE:
  • TPU:
  • ffmpeg
  • codec
  • decoder
  • encoder
  • hardware
2 Likes