Giter VIP home page Giter VIP logo

handbrake-nvenc-docker's People

Contributors

djaydev avatar zocker-160 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

handbrake-nvenc-docker's Issues

H265 NVEnc not working and sync problem with H264

hi,

i have a quadro m2000 in my truenas scale server. it should be h265 capable, but in the logs i get the error:

hevc_nvenc @ 0x7f4acc5d6780] No capable devices found

h264 works. its extremly fast but i would prefer to use h265. the problem i have with h264 is a sync problem. encoding with x264 everthing is perfectly synced, but with h264 i have about 3 seconds async.

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 460.91.03    Driver Version: 460.91.03    CUDA Version: 11.2     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  Quadro M2000        Off  | 00000000:01:00.0 Off |                  N/A |
| 56%   40C    P8     9W /  75W |      3MiB /  4043MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
                                                                               
+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|  No running processes found                                                 |
+-----------------------------------------------------------------------------+

link /sbin/ldconfig to /sbin/ldconfig.real

May I ask you that add a symbolic link :

ln -s /sbin/ldconfig/ /sbin/ldconfig.real

as part of the docker file? On Ubuntu/Debian systems they actually need ldconfig.real to exist for acceleration to work. For me, the nvidia acceleration doesn't work until i perform the above command, but after it is all good. I don't know they details about why this is the case, but from looking around debian based systems use ldconfig.real for some reason. I would make my own docker file and fork it, but I have no idea how. Right now I am manually running the above command when the image updates.

jlesage - firefox & nvidia support

hay,

sry for asking here but, couldnt find any other method to contact u.
Is there a chance, u could do the same with the firefox version of him with nvidia support?
I tried it by my own but im not experienced enough in creating an own one.

I would rly love to have an firefox with nvidia support. Any way u could try it?

Auto conversion of /watch files fails: Cannot load libcuda.so.1

I have everything setup and tested the NVENC conversions in the GUI and they work just fine but when trying to use the auto conversion feature the encode fails with the below output in the conversion log

[01:15:46] encavcodecInit: H.265 (Nvidia NVENC)
[01:15:46] encavcodec: encoding at rc=vbr, multipass=fullres, 27.00
[01:15:46] encavcodec: encoding with stored aspect 1/1
[hevc_nvenc @ 0x1516642af900] Cannot load libcuda.so.1
[01:15:46] encavcodecInit: avcodec_open failed
ERROR: Failure to initialise thread 'FFMPEG encoder (libavcodec)'
[01:15:46] ac3-decoder done: 0 frames, 0 decoder errors
[01:15:46] hevc-decoder done: 0 frames, 0 decoder errors
[01:15:46] sync: got 0 frames, 322397 expected
[01:15:46] Finished work at: Sat Jun 25 01:15:46 2022

[01:15:46] libhb: work result = 3

Encode failed (error 3).
HandBrake has exited.

I loaded up a shell inside this container and I don't see the referenced libcuda.so.1 file in this container anywhere. This is all very confusing because it all works just fine when encoding via the GUI. I am running the container in unRAID with a GTX 1050Ti.

# find / -iname 'libcuda.so.1'
find: '/proc/877/map_files': Permission denied
find: '/proc/931/map_files': Permission denied
find: '/proc/932/map_files': Permission denied
find: '/proc/983/map_files': Permission denied
find: '/proc/1019/map_files': Permission denied
find: '/proc/1157/map_files': Permission denied
find: '/proc/1367/map_files': Permission denied
find: '/proc/1368/map_files': Permission denied
find: '/proc/1369/map_files': Permission denied
find: '/proc/1370/map_files': Permission denied
find: '/proc/1372/map_files': Permission denied
find: '/proc/4074/map_files': Permission denied
find: '/sys/kernel/slab': Input/output error
#

NVDEC Support

It looks like 1.6.0 supports NVDEC now with the compile time flag --enable-nvdec, can this image be updated to support this?

update to Handbrake 1.4.x

I am currently working on it, just so you know. Sadly I am having issues compiling it, so I hope I can solve it soon.

Unable to get GPU to handle conversion

I am trying to setup Handbrake to work with my NVIDIA GeForce GTX 1660 SUPER. But No matter what I choose it always runs on my CPU, and nothing shows up on nvtop. The GPU works with other containers like Compressarr, and Emby.

docker run -d --name='HandBrake' --net='bridge' -e TZ="America/New_York" -e HOST_OS="Unraid" -e 'AUTOMATED_CONVERSION_PRESET'='Hardware/H.265 NVENC 1080p' -e 'AUTOMATED_CONVERSION_FORMAT'='mkv' -e 'AUTOMATED_CONVERSION_KEEP_SOURCE'='1' -e 'AUTOMATED_CONVERSION_NON_VIDEO_FILE_ACTION'='ignore' -e 'AUTOMATED_CONVERSION_OUTPUT_DIR'='/output' -e 'AUTOMATED_CONVERSION_OUTPUT_SUBDIR'='' -e 'NVIDIA_DRIVER_CAPABILITIES'='all' -e 'NVIDIA_VISIBLE_DEVICES'='GPU-d85ebfd2-6e96-4b1c-8f3e-4e85487c4e92' -e 'USER_ID'='99' -e 'GROUP_ID'='100' -e 'UMASK'='000' -e 'APP_NICENESS'='' -e 'DISPLAY_WIDTH'='1280' -e 'DISPLAY_HEIGHT'='768' -e 'SECURE_CONNECTION'='0' -e 'X11VNC_EXTRA_OPTS'='' -e 'AUTOMATED_CONVERSION_VIDEO_FILE_EXTENSIONS'='' -e 'AUTOMATED_CONVERSION_NON_VIDEO_FILE_EXTENSIONS'='jpg jpeg bmp png gif txt nfo' -e 'AUTOMATED_CONVERSION_OVERWRITE_OUTPUT'='0' -e 'AUTOMATED_CONVERSION_SOURCE_STABLE_TIME'='5' -e 'AUTOMATED_CONVERSION_SOURCE_MIN_DURATION'='10' -e 'AUTOMATED_CONVERSION_CHECK_INTERVAL'='5' -e 'AUTOMATED_CONVERSION_MAX_WATCH_FOLDERS'='5' -e 'AUTOMATED_CONVERSION_NO_GUI_PROGRESS'='0' -e 'AUTOMATED_CONVERSION_HANDBRAKE_CUSTOM_ARGS'='' -e 'AUTOMATED_CONVERSION_INSTALL_PKGS'='' -p '7803:5800/tcp' -p '7903:5900/tcp' -v '/mnt/user/Media/':'/storage':'ro' -v '/mnt/user/Media/Watch/':'/watch':'rw' -v '/mnt/user/Media/Compressarr/':'/output':'rw' -v '/mnt/user/appdata/HandBrake':'/config':'rw' --runtime=nvidia --gpus all 'zocker/handbrake'

OS: Unraid 6.8.2
Handbrake Versions: 1.4.2

I have tried with NVIDIA_VISIBLE_DEVICES set to all, I have also tried with and without environment flags --runtime=nvidia --gpus all
I 've ensured it's using the Hardware/H.265 NVENC 1080p profile

[Future request] Jetson Nano compatible?

Hey,

will it be possible to use this docker for Jetson Nano in the future??
Right now im getting this error

0455c939b0c1: Pull complete
Digest: sha256:3632115354039d238a7b13cce82ca982d68b3368be99b58eb004901ad96bb5bf
Status: Downloaded newer image for zocker160/handbrake-nvenc:latest
WARNING: The requested image's platform (linux/amd64) does not match the detected host platform (linux/arm64/v8) and no specific platform was requested
c7717f95cc694134a740691cab8bb7586d98f675e9f0ab116f68a34dd02f4c6d
docker: Error response from daemon: OCI runtime create failed: container_linux.go:370: starting container process caused: process_linux.go:459: container init caused: Running hook #0:: error running hook: exit status 1, stdout: , stderr: nvidia-container-cli: initialization error: driver error: failed to process request: unknown.

SHA Support

I work on an online education platform, there are a large number of videos that need to be transcoded, when I have two video files with the same content but the same name, for example, there are videos named Introduction in two different tutorials, or the same video in the same tutorial has replaced the original file with a higher bitrate, and there will be skipping and not processing when transcoding, could you please add a hash check when detecting file changes to ensure that the two files are processed instead of changing the file name of one of them? thanks

Cant make nvenc work for handbrake docker

Hey,

If I may ask for your help here..

I have successfully configured nvidia-docker for my graphic card to be used in docker containers - so my Plex is doing HW transcoding in docker. However I am struggling to get handbrake doing encoding via GPU.
image

My GPU is Nvidia Quadro P2200. Per https://developer.nvidia.com/video-encode-decode-gpu-support-matrix it has nvenc chip..

So my setup is:
Debian 10
Nvidia Quadro P2200
Installed packages:

  • nvidia-detect
  • nvidia-driver
  • nvidia-cuda-toolkit
  • nvidia-container-runtime
  • nvidia-container-toolkit

docker-compose.yml:

version: "3.7"

  handbrake:
    container_name: plex.529.handbrake.90.91
    image: jlesage/handbrake
    restart: always
    ports:
      - 52990:5800
      - 52991:5900
    expose:
      - 5800
      - 5900
    volumes:
      - /lvm/raid/private/media:/plex/media
      - /lvm/raid/private/data:/plex/data
      - $PWD/handbrake/config:/config:rw
      - $PWD/handbrake/storage:/storage:ro
    environment:
      - TZ=Europe/Prague
      - USER_ID=1000
      - GROUP_ID=994
      - NVIDIA_VISIBLE_DEVICES=GPU-d705d61e-a848-a592-e014-d196cd66eec9
      - NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
      - DISPLAY_WIDTH=1600
      - DISPLAY_HEIGHT=900

/etc/docker/daemon.json:

{
  "default-runtime": "nvidia",
  "runtimes": {
     "nvidia": {
       "path": "/usr/bin/nvidia-container-runtime",
       "runtimeArgs": []
       }
     }
}

Thanks, Michal

EDIT:
I installed Handbrake directly on host to see if can choose nvenc profile, but same result - it is not listed there :/

handbrake - nvenc 265 10 bit

Hi Dev -

Do you have any plans on updating this container to support nvenc 265 10 bit encoding? Doing some reading, looks like handbrake is capable of this in their main fork or nightly snapshots.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.