zocker-160 / handbrake-nvenc-docker Goto Github PK
View Code? Open in Web Editor NEWHandbrake GUI with Web browser and VNC access. Supports NVENC encoding
Handbrake GUI with Web browser and VNC access. Supports NVENC encoding
Encoding with non-NVENC h265 too slow.
Do I have to configure something for it to work as expected?
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 |
+-----------------------------------------------------------------------------+
starting a moment ago what is the fix?
``dconf warning failled to commit changes to deconf : failed to execute child process
Dbus lauch ? no file or directory
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.
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?
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
#
It looks like 1.6.0 supports NVDEC now with the compile time flag --enable-nvdec, can this image be updated to support this?
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.
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
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.
Pretty much the title; would love to use this docker, but Handbrake 1.7.0+ for NVENC AV1 support. Not quite up to building my own container but slowly learning.
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
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.
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:
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 :/
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.