Tdarr icon indicating copy to clipboard operation
Tdarr copied to clipboard

Add Handbake 1.7+ to docker image / help me to alter image

Open journeym opened this issue 1 year ago • 7 comments

Im trying to do just that myself and the problem is that when i add to docker additional paramaeters string: /bin/bash -c 'add-apt-repository --yes ppa:ubuntuhandbook1/handbrake && apt update && apt install -y handbrake-cli' containers stops after execution I found out that to circumvent stopping execution i need to add at the end && /run/service/tdarr_server/run but this triggers second copy of the server to launch, and im trying to avoid that. Is there a more elegant solution. Im using unraid.

journeym avatar Mar 06 '24 23:03 journeym

Meanwhile use my docker tdarr node, it supports Dolby Vision and QSV in handbrake https://hub.docker.com/repository/docker/journeym/tdarr_node/general

journeym avatar Apr 30 '24 14:04 journeym

I've added HB 1.7 for next version, can try here:

HandBrake 1.7.1 (2024050600) - Linux x86_64 - https://handbrake.fr/
haveagitgat/tdarr_acc:dev_2.18.01_2024_05_06T09_58_43z
haveagitgat/tdarr_node_acc:dev_2.18.01_2024_05_06T09_58_43z

HaveAGitGat avatar May 06 '24 08:05 HaveAGitGat

Does it have libdovi?

journeym avatar May 06 '24 08:05 journeym

@HaveAGitGat FYI, Handbrake is on 1.7.3. Might wanna update to that.

supersnellehenk avatar May 06 '24 10:05 supersnellehenk

@journeym no I only had to add libass9 to get it to work. Haven’t checked if handbrake installs that automatically.

@supersnellehenk ty

HaveAGitGat avatar May 06 '24 19:05 HaveAGitGat

Have updated to HB 1.7.3:

docker.io/haveagitgat/tdarr_acc:dev_2.18.01_2024_05_07T05_41_43z
docker.io/haveagitgat/tdarr_node_acc:dev_2.18.01_2024_05_07T05_41_43z

@journeym do you have install steps for libdovi? Had a browse but couldn't find some straightforward ones.

HaveAGitGat avatar May 07 '24 04:05 HaveAGitGat

@journeym do you have install steps for libdovi? Had a browse but couldn't find some straightforward ones.

I belive their official flatpack does not support libdovi for now https://github.com/HandBrake/HandBrake/issues/5813, and i, personally didnt like flatpack arhitecture.

So it's basically build form source now, which is (https://handbrake.fr/docs/en/latest/developer/install-dependencies-ubuntu.html) + (https://github.com/HandBrake/HandBrake/issues/6390) dependencies and then (https://handbrake.fr/docs/en/latest/developer/build-linux.html)

journeym avatar May 07 '24 09:05 journeym

Ran into error trying to use that on focal:

HandBrake/HandBrake-docs#8 292.2   : [99/99] rm -f src/libdav1d.a && gcc-ar csrD src/libdav1d.a 'src/25a6634@@dav1d@sta/cpuid.obj' 'src/25a6634@@dav1d@sta/msac.obj' 'src/25a6634@@dav1d@sta/pal.obj' 'src/25a6634@@dav1d@sta/refmvs.obj' 'src/25a6634@@dav1d@sta/itx_avx512.obj' 'src/25a6634@@dav1d@sta/cdef_avx2.obj' 'src/25a6634@@dav1d@sta/itx_avx2.obj' 'src/25a6634@@dav1d@sta/looprestoration_avx2.obj' 'src/25a6634@@dav1d@sta/cdef_sse.obj' 'src/25a6634@@dav1d@sta/itx_sse.obj' 'src/25a6634@@dav1d@sta/cdef_avx512.obj' 'src/25a6634@@dav1d@sta/filmgrain_avx512.obj' 'src/25a6634@@dav1d@sta/ipred_avx512.obj' 'src/25a6634@@dav1d@sta/loopfilter_avx512.obj' 'src/25a6634@@dav1d@sta/looprestoration_avx512.obj' 'src/25a6634@@dav1d@sta/mc_avx512.obj' 'src/25a6634@@dav1d@sta/filmgrain_avx2.obj' 'src/25a6634@@dav1d@sta/ipred_avx2.obj' 'src/25a6634@@dav1d@sta/loopfilter_avx2.obj' 'src/25a6634@@dav1d@sta/mc_avx2.obj' 'src/25a6634@@dav1d@sta/filmgrain_sse.obj' 'src/25a6634@@dav1d@sta/ipred_sse.obj' 'src/25a6634@@dav1d@sta/loopfilter_sse.obj' 'src/25a6634@@dav1d@sta/looprestoration_sse.obj' 'src/25a6634@@dav1d@sta/mc_sse.obj' 'src/25a6634@@dav1d@sta/cdef16_avx512.obj' 'src/25a6634@@dav1d@sta/filmgrain16_avx512.obj' 'src/25a6634@@dav1d@sta/ipred16_avx512.obj' 'src/25a6634@@dav1d@sta/itx16_avx512.obj' 'src/25a6634@@dav1d@sta/loopfilter16_avx512.obj' 'src/25a6634@@dav1d@sta/looprestoration16_avx512.obj' 'src/25a6634@@dav1d@sta/mc16_avx512.obj' 'src/25a6634@@dav1d@sta/cdef16_avx2.obj' 'src/25a6634@@dav1d@sta/filmgrain16_avx2.obj' 'src/25a6634@@dav1d@sta/ipred16_avx2.obj' 'src/25a6634@@dav1d@sta/itx16_avx2.obj' 'src/25a6634@@dav1d@sta/loopfilter16_avx2.obj' 'src/25a6634@@dav1d@sta/looprestoration16_avx2.obj' 'src/25a6634@@dav1d@sta/mc16_avx2.obj' 'src/25a6634@@dav1d@sta/cdef16_sse.obj' 'src/25a6634@@dav1d@sta/filmgrain16_sse.obj' 'src/25a6634@@dav1d@sta/ipred16_sse.obj' 'src/25a6634@@dav1d@sta/itx16_sse.obj' 'src/25a6634@@dav1d@sta/loopfilter16_sse.obj' 'src/25a6634@@dav1d@sta/looprestoration16_sse.obj' 'src/25a6634@@dav1d@sta/mc16_sse.obj' 'src/25a6634@@dav1d@sta/cdf.c.o' 'src/25a6634@@dav1d@sta/cpu.c.o' 'src/25a6634@@dav1d@sta/data.c.o' 'src/25a6634@@dav1d@sta/decode.c.o' 'src/25a6634@@dav1d@sta/dequant_tables.c.o' 'src/25a6634@@dav1d@sta/getbits.c.o' 'src/25a6634@@dav1d@sta/intra_edge.c.o' 'src/25a6634@@dav1d@sta/itx_1d.c.o' 'src/25a6634@@dav1d@sta/lf_mask.c.o' 'src/25a6634@@dav1d@sta/lib.c.o' 'src/25a6634@@dav1d@sta/log.c.o' 'src/25a6634@@dav1d@sta/mem.c.o' 'src/25a6634@@dav1d@sta/msac.c.o' 'src/25a6634@@dav1d@sta/obu.c.o' 'src/25a6634@@dav1d@sta/pal.c.o' 'src/25a6634@@dav1d@sta/picture.c.o' 'src/25a6634@@dav1d@sta/qm.c.o' 'src/25a6634@@dav1d@sta/ref.c.o' 'src/25a6634@@dav1d@sta/refmvs.c.o' 'src/25a6634@@dav1d@sta/scan.c.o' 'src/25a6634@@dav1d@sta/tables.c.o' 'src/25a6634@@dav1d@sta/thread_task.c.o' 'src/25a6634@@dav1d@sta/warpmv.c.o' 'src/25a6634@@dav1d@sta/wedge.c.o' 'src/25a6634@@dav1d@sta/x86_cpu.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/cdef_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/cdef_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/fg_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/filmgrain_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/ipred_prepare_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/ipred_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/itx_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/lf_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/loopfilter_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/looprestoration_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/lr_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/mc_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/recon_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/cdef_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/cdef_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/fg_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/filmgrain_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/ipred_prepare_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/ipred_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/itx_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/lf_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/loopfilter_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/looprestoration_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/lr_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/mc_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/recon_tmpl.c.o'
HandBrake/HandBrake-docs#8 292.2   : touch contrib/libdav1d/.stamp.libdav1d.build
HandBrake/HandBrake-docs#8 292.3 -------------------------------------------------------------------------------
HandBrake/HandBrake-docs#8 292.3 time end: Thu May  9 04:17:52 2024
HandBrake/HandBrake-docs#8 292.3 duration: 25 seconds (25.99s)
HandBrake/HandBrake-docs#8 292.3 result: FAILURE (code 2)
HandBrake/HandBrake-docs#8 292.3 -------------------------------------------------------------------------------
HandBrake/HandBrake-docs#8 292.3 Build is finished!
HandBrake/HandBrake-docs#8 292.3 You may now cd into ./build and examine the output.

Will update to jammy in future (tried as simple base image change but ran into further errors).

HaveAGitGat avatar May 13 '24 05:05 HaveAGitGat

2.18.01 with 1.7.3 released. @journeym I'll deal with libdovi separately when updating to Jammy

HaveAGitGat avatar May 14 '24 07:05 HaveAGitGat

Ran into error trying to use that on focal:

HandBrake/HandBrake-docs#8 292.2   : [99/99] rm -f src/libdav1d.a && gcc-ar csrD src/libdav1d.a 'src/25a6634@@dav1d@sta/cpuid.obj' 'src/25a6634@@dav1d@sta/msac.obj' 'src/25a6634@@dav1d@sta/pal.obj' 'src/25a6634@@dav1d@sta/refmvs.obj' 'src/25a6634@@dav1d@sta/itx_avx512.obj' 'src/25a6634@@dav1d@sta/cdef_avx2.obj' 'src/25a6634@@dav1d@sta/itx_avx2.obj' 'src/25a6634@@dav1d@sta/looprestoration_avx2.obj' 'src/25a6634@@dav1d@sta/cdef_sse.obj' 'src/25a6634@@dav1d@sta/itx_sse.obj' 'src/25a6634@@dav1d@sta/cdef_avx512.obj' 'src/25a6634@@dav1d@sta/filmgrain_avx512.obj' 'src/25a6634@@dav1d@sta/ipred_avx512.obj' 'src/25a6634@@dav1d@sta/loopfilter_avx512.obj' 'src/25a6634@@dav1d@sta/looprestoration_avx512.obj' 'src/25a6634@@dav1d@sta/mc_avx512.obj' 'src/25a6634@@dav1d@sta/filmgrain_avx2.obj' 'src/25a6634@@dav1d@sta/ipred_avx2.obj' 'src/25a6634@@dav1d@sta/loopfilter_avx2.obj' 'src/25a6634@@dav1d@sta/mc_avx2.obj' 'src/25a6634@@dav1d@sta/filmgrain_sse.obj' 'src/25a6634@@dav1d@sta/ipred_sse.obj' 'src/25a6634@@dav1d@sta/loopfilter_sse.obj' 'src/25a6634@@dav1d@sta/looprestoration_sse.obj' 'src/25a6634@@dav1d@sta/mc_sse.obj' 'src/25a6634@@dav1d@sta/cdef16_avx512.obj' 'src/25a6634@@dav1d@sta/filmgrain16_avx512.obj' 'src/25a6634@@dav1d@sta/ipred16_avx512.obj' 'src/25a6634@@dav1d@sta/itx16_avx512.obj' 'src/25a6634@@dav1d@sta/loopfilter16_avx512.obj' 'src/25a6634@@dav1d@sta/looprestoration16_avx512.obj' 'src/25a6634@@dav1d@sta/mc16_avx512.obj' 'src/25a6634@@dav1d@sta/cdef16_avx2.obj' 'src/25a6634@@dav1d@sta/filmgrain16_avx2.obj' 'src/25a6634@@dav1d@sta/ipred16_avx2.obj' 'src/25a6634@@dav1d@sta/itx16_avx2.obj' 'src/25a6634@@dav1d@sta/loopfilter16_avx2.obj' 'src/25a6634@@dav1d@sta/looprestoration16_avx2.obj' 'src/25a6634@@dav1d@sta/mc16_avx2.obj' 'src/25a6634@@dav1d@sta/cdef16_sse.obj' 'src/25a6634@@dav1d@sta/filmgrain16_sse.obj' 'src/25a6634@@dav1d@sta/ipred16_sse.obj' 'src/25a6634@@dav1d@sta/itx16_sse.obj' 'src/25a6634@@dav1d@sta/loopfilter16_sse.obj' 'src/25a6634@@dav1d@sta/looprestoration16_sse.obj' 'src/25a6634@@dav1d@sta/mc16_sse.obj' 'src/25a6634@@dav1d@sta/cdf.c.o' 'src/25a6634@@dav1d@sta/cpu.c.o' 'src/25a6634@@dav1d@sta/data.c.o' 'src/25a6634@@dav1d@sta/decode.c.o' 'src/25a6634@@dav1d@sta/dequant_tables.c.o' 'src/25a6634@@dav1d@sta/getbits.c.o' 'src/25a6634@@dav1d@sta/intra_edge.c.o' 'src/25a6634@@dav1d@sta/itx_1d.c.o' 'src/25a6634@@dav1d@sta/lf_mask.c.o' 'src/25a6634@@dav1d@sta/lib.c.o' 'src/25a6634@@dav1d@sta/log.c.o' 'src/25a6634@@dav1d@sta/mem.c.o' 'src/25a6634@@dav1d@sta/msac.c.o' 'src/25a6634@@dav1d@sta/obu.c.o' 'src/25a6634@@dav1d@sta/pal.c.o' 'src/25a6634@@dav1d@sta/picture.c.o' 'src/25a6634@@dav1d@sta/qm.c.o' 'src/25a6634@@dav1d@sta/ref.c.o' 'src/25a6634@@dav1d@sta/refmvs.c.o' 'src/25a6634@@dav1d@sta/scan.c.o' 'src/25a6634@@dav1d@sta/tables.c.o' 'src/25a6634@@dav1d@sta/thread_task.c.o' 'src/25a6634@@dav1d@sta/warpmv.c.o' 'src/25a6634@@dav1d@sta/wedge.c.o' 'src/25a6634@@dav1d@sta/x86_cpu.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/cdef_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/cdef_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/fg_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/filmgrain_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/ipred_prepare_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/ipred_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/itx_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/lf_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/loopfilter_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/looprestoration_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/lr_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/mc_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_8@sta/recon_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/cdef_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/cdef_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/fg_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/filmgrain_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/ipred_prepare_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/ipred_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/itx_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/lf_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/loopfilter_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/looprestoration_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/lr_apply_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/mc_tmpl.c.o' 'src/25a6634@@dav1d_bitdepth_16@sta/recon_tmpl.c.o'
HandBrake/HandBrake-docs#8 292.2   : touch contrib/libdav1d/.stamp.libdav1d.build
HandBrake/HandBrake-docs#8 292.3 -------------------------------------------------------------------------------
HandBrake/HandBrake-docs#8 292.3 time end: Thu May  9 04:17:52 2024
HandBrake/HandBrake-docs#8 292.3 duration: 25 seconds (25.99s)
HandBrake/HandBrake-docs#8 292.3 result: FAILURE (code 2)
HandBrake/HandBrake-docs#8 292.3 -------------------------------------------------------------------------------
HandBrake/HandBrake-docs#8 292.3 Build is finished!
HandBrake/HandBrake-docs#8 292.3 You may now cd into ./build and examine the output.

Will update to jammy in future (tried as simple base image change but ran into further errors).

Error usually is somwhere before that. If you have time, provide full build output.

journeym avatar May 14 '24 16:05 journeym

To compile handbrake latest with libdovi support on ubuntu:latest

RUN apt-get update && apt-get install -y
curl
ffmpeg
autoconf
automake
build-essential
cmake
git
libass-dev
libbz2-dev
libfontconfig-dev
libfreetype-dev
libfribidi-dev
libharfbuzz-dev
libjansson-dev
liblzma-dev
libmp3lame-dev
libnuma-dev
libogg-dev
libopus-dev
libsamplerate0-dev
libspeex-dev
libtheora-dev
libtool
libtool-bin
libturbojpeg0-dev
libvorbis-dev
libx264-dev
libxml2-dev
libvpx-dev
m4
make
meson
nasm
ninja-build
patch
pkg-config
tar
zlib1g-dev
libva-dev
libdrm-dev
libtesseract-dev
libssl-dev
mkvtoolnix RUN ln /usr/lib/x86_64-linux-gnu/libtesseract.so /usr/lib/x86_64-linux-gnu/libtesseract.so.4 RUN curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh -s -- -y ENV PATH="/root/.cargo/bin:${PATH}" RUN cargo install cargo-c RUN mkdir /app RUN cd /app/ && git clone https://github.com/HandBrake/HandBrake.git RUN cd /app/HandBrake/ && ./configure --disable-gtk --enable-libdovi --enable-qsv --launch-jobs=$(nproc) --launch --force RUN cd /app/HandBrake/ && make --directory=build install

journeym avatar Jul 09 '24 16:07 journeym

Any chance libdovi gets added to your docker?

journeym avatar Jul 09 '24 16:07 journeym

I build a new image based on your https://github.com/HaveAGitGat/Tdarr/blob/master/docker/Dockerfile.base with libdovi support i didnt use the .final dockerfile, so i made quite a few modifications, and cant make pull request so here is it https://github.com/journeym/Tdarr/blob/master/docker/Dockerfile.base

journeym avatar Sep 06 '24 10:09 journeym

In the latest version DOVI support for handbrake is working

journeym avatar Nov 10 '25 11:11 journeym