Looking for a good lower power GPU to help Docker Handbrake encoding


Recommended Posts

So surprise surprise, but Handbrake is available as an Unraid Docker!  This blows my mind, and I couldn't be happier it exists and works, but my current Unraid box (Serverus) runs without a dedicated GPU.  See below for the current configuration. 

I'm reasonably sure that Handbrake supports GPU acceleration, and so I'm wondering if anyone knows of a good GPU that I could add to Serverus to help assist Handbrake's encode process.  Ideally I'm looking for something that has the smallest electrical/heat footprint when not being used, since I really wouldn't even want/need it to assist in Plex transcoding, but one that would significantly cut down the time/CPU usage when running a Handbrake encode (I'm currently averaging about 8.44 FPS at 1080p super settings, for anyone interested). 

Any thoughts or suggestions?  Thanks very much in advance!

 

Serverus Specs:

Motherboard: MSI Z590-A PRO

CPU: Intel® Core™ i5-10400

RAM: 16GB DDR4

Storage: 6x 12TB Seagate Exos = 60 TB usable storage

Cache: 1TB nvme SSD

Case: Fractal Design Meshify 2

Link to comment

The attached screenshots explain a little more about what makes me worry/wonder if adding a GPU would help.  My temps are still doing pretty okay all things considered (although I don't think I have any means to track the CPU temps atm).

Presently, I'm not feeling any enormous slowdown on Serverus while this is running.  Music on Plex is just fine, and I only noted one or two random buffers when streaming a 1080 movie at 5469 kbps, so I suppose the machine is doing alright.  But all the same I'd love to know if there's a way I can supplement what Serverus is doing via Handbrake encoding to make things more efficient and faster.

Screenshot 2022-12-16 at 10.29.10 PM.png

Screenshot 2022-12-16 at 10.30.28 PM.png

Screenshot 2022-12-16 at 10.31.59 PM.png

Link to comment

All gpu encoding i have ever tried (intel internal, external AMD Gaming Card, internal AMD) gave fast performance, but low quality and huge files.

 

So I stayed away from this stuff.

 

Handbrakes Software encoder is excellent, can be fine tuned and produces high quality and small sized output.

 

But your Hardware is not really (or better: at all) suitable for this program, get 12 or 16 more cores, double clockspeed and much more ram.

 

And running Handbrake in a Docker is also not the brightest idea too I think.

 

But, if you like to spend a month to process a single movie, carry on.

 

Edited by MAM59
Link to comment
  • 4 weeks later...
On 12/17/2022 at 12:16 AM, Serverus said:

So surprise surprise, but Handbrake is available as an Unraid Docker!  This blows my mind, and I couldn't be happier it exists and works, but my current Unraid box (Serverus) runs without a dedicated GPU.  See below for the current configuration. 

I'm reasonably sure that Handbrake supports GPU acceleration, and so I'm wondering if anyone knows of a good GPU that I could add to Serverus to help assist Handbrake's encode process.  Ideally I'm looking for something that has the smallest electrical/heat footprint when not being used, since I really wouldn't even want/need it to assist in Plex transcoding, but one that would significantly cut down the time/CPU usage when running a Handbrake encode (I'm currently averaging about 8.44 FPS at 1080p super settings, for anyone interested). 

Any thoughts or suggestions?  Thanks very much in advance!

 

Serverus Specs:

Motherboard: MSI Z590-A PRO

CPU: Intel® Core™ i5-10400

RAM: 16GB DDR4

Storage: 6x 12TB Seagate Exos = 60 TB usable storage

Cache: 1TB nvme SSD

Case: Fractal Design Meshify 2

You'll typically see smaller file sizes and some (minimal) quality improvements when encoding with Handbrake's software-based encoder, but it can be a resource hog. Depending on your use case, even a GTX970 can do a good job transcoding files. I'm using my old desktop machine with an i5-4690K and a GeForce GTX1070 as a transcoding setup until I finish my server rebuild -- 3 x 24GB 1080p h.264 mkvs can be transcoded to between 2-5GB h.265 files in about 15 mins. (depending on the film content). A 4K file is about 6GB and takes about 30 mins. on my system. I don't have a dedicated home theater, so a 1080p file at >2900Kbps looks perfectly fine on my 55" OLED (even from less than 7 ft. away). Any files that are blurry or pixelated can be re-ripped at a later date. I have thousands of DVDs, hundreds of Blu-Rays, and I've spent more than I care to remember on hard drives -- I'm to the "it looks good enough, so just play the movie" phase of my life where convenience means more than 100% fidelity.

 

As a suggestion, I would look into using Tdarr instead of Handbrake. It can handle bulk transcodes, or just setup a watch folder that will be automatically monitored. Plus, you can setup networked nodes to process files between multiple computers. Video decoding will still use your CPU, but the encoding will take place on the GPU(s) you specify. You'll want at least a GTX970 for h.265 encoding, but a GTX1650 Super seems like the sweet spot. Check the NVENC GPU support matrix here: https://developer.nvidia.com/video-encode-and-decode-gpu-support-matrix-new. SpaceInvader One has a good series of tutorials on Tdarr starting here: 

 

 

If you're a perfectionist, you may just want to transcode only 4K files to save drive space, but I process high bitrate files from 720p and higher. 

 

Hope this helps.

Link to comment
  • 3 weeks later...

Your server is a Comet Lake gen 10 CPU with integrated GPU UHD 630. It is supported by Handbrake Intel QSV https://handbrake.fr/docs/en/latest/technical/video-qsv.html . All you have to do is add the device file to the docker definition. I use portainer and add:

devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
      - /dev/dri/card0:/dev/dri/card0
      - /dev/video0:/dev/video0
      - /dev/video1:/dev/video1
      - /dev/video2:/dev/video2
      - /dev/video4:/dev/video4

but this depends the computer hardware. I woulmd check what is under /dev and starts with /dev/video<x> and /dev/dri/card<x>.

 

Though it seems unraid has its own way of adding device to containers. See  this link:

Here they add a directory with --device="/dev/dri/".

/dev/video<X> are for decoding and encoding.

 

Note Tdarr looks great. Under the hood it runs Handbrake or directly FFmpeg.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.