Jump to content
Djoss

[Support] Djoss - HandBrake

500 posts in this topic Last Reply

Recommended Posts

Support for HandBrake docker container

Application Name: HandBrake
Application Site: https://handbrake.fr/
Docker Hub: https://hub.docker.com/r/jlesage/handbrake/
Github: https://github.com/jlesage/docker-handbrake

 

Make sure to look at the complete documentation, available on Github !


Post any questions or issues relating to this docker in this thread.

Edited by Djoss
  • Like 3
  • Upvote 2

Share this post


Link to post

Just installed.  Any time I try to queue or convert I get an error complaining about can't read/write to the directory (ones I chose in the setup).

 

 

 

Share this post


Link to post

Did you mapped the '/output' folder?

 

Under the "Docker" tab, all the mappings are shown in the "Volume Mappings" column.  You can copy-paste them here if your want.

Share this post


Link to post

I've had a chance to work with the HandBrake docker and have found a few instances where the docker dies when working with the que and initiating conversions.  I haven't been able to capture any meaningful data to help troubleshoot issues though.  I would suggest caution using the 'edge testing' version as it may not be stable.  Would it be better to use a stable branch repository like this one 'ppa:stebbins/handbrake-releases'.

 

Overall, this is the best implementation of a HandBrake docker I've seen.  The UI is excellent!

Share this post


Link to post

Agree with dlandon, of the handbrake dockers I've tested this is the easiest to configure and works the best out of the box.

For example, this one lets me add files to the watch folder while the docker is stopped, and when started will happily chew through the backlog. Neither of the previous dockers let me do this. (I am using CA User Scripts to schedule all handbrake processing overnight)

 

I've found a small bug though:

File names containing spaces will make the watch folder skip the file.

To reproduce:

1. Add a file to the watch folder called "A file with spaces.mp4"

2. Check logs. There will be a series of skipping file messages, one for each of "A", "file", "with", "spaces.mp4"

 

And while I have your attention, does the watch folder work with symlinks instead of actual files? If not, consider this a feature request :)

 

Share this post


Link to post
15 hours ago, dlandon said:

I've had a chance to work with the HandBrake docker and have found a few instances where the docker dies when working with the que and initiating conversions.  I haven't been able to capture any meaningful data to help troubleshoot issues though.  I would suggest caution using the 'edge testing' version as it may not be stable.  Would it be better to use a stable branch repository like this one 'ppa:stebbins/handbrake-releases'.

 

Overall, this is the best implementation of a HandBrake docker I've seen.  The UI is excellent!

 

I think the repository you suggested is for Ubuntu.  This docker is based on Alpine Linux and the only HandBrake repository I found is from edge.

 

But let me know if you can reproduce the crash and have the steps to do it.  Maybe I can evaluate other possibilities, like compiling HandBrake from sources.

 

And thanks again for your feedback!

Share this post


Link to post
12 hours ago, Jorgen said:

Agree with dlandon, of the handbrake dockers I've tested this is the easiest to configure and works the best out of the box.

For example, this one lets me add files to the watch folder while the docker is stopped, and when started will happily chew through the backlog. Neither of the previous dockers let me do this. (I am using CA User Scripts to schedule all handbrake processing overnight)

 

I've found a small bug though:

File names containing spaces will make the watch folder skip the file.

To reproduce:

1. Add a file to the watch folder called "A file with spaces.mp4"

2. Check logs. There will be a series of skipping file messages, one for each of "A", "file", "with", "spaces.mp4"

 

And while I have your attention, does the watch folder work with symlinks instead of actual files? If not, consider this a feature request :)

 

 

Thanks for reporting this problem.  I'm working on a fix!

 

At the same time, I will make sure the watch folder works for symlinks :)

Share this post


Link to post
3 minutes ago, Djoss said:

 

I think the repository you suggested is for Ubuntu.  This docker is based on Alpine Linux and the only HandBrake repository I found is from edge.

 

But let me know if you can reproduce the crash and have the steps to do it.  Maybe I can evaluate other possibilities, like compiling HandBrake from sources.

 

And thanks again for your feedback!

Sorry.  I'm used to Ubuntu and didn't catch that your docker is Alpine Linux.

 

I was just messing around when I got an error.  It was something to do with not having permission on something.  Let me try to catch it and get you more information.

Share this post


Link to post

I just got the docker to fail.  I have ripped DVDs in VOB formats.  I selected four of them and added them to the que.  I then clicked start conversion and the docker failed.

 

Here is the log:

2/05/2017 21:34:45 httpd: get '' for 192.168.1.135
22/05/2017 21:34:45 httpd: defaulting to 'index.vnc'
22/05/2017 21:34:45 httpd: get 'js/jquery.ui.touch-punch.min.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:45 httpd: get 'js/novnc-core.min.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:45 httpd: get 'js/novnc-ui.min.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:45 httpd: get 'css/font-awesome.min.css?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:45 httpd: get 'css/bootstrap.custom.css?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:46 httpd: get 'css/bootstrap.min.css?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:46 httpd: get 'js/jquery-ui.custom.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:46 httpd: get 'js/jquery.min.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:46 httpd: get 'js/bootstrap.min.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:46 httpd: get 'images/icons/master_icon.png' for 192.168.1.135
22/05/2017 21:34:46 Got connection from client 192.168.1.135
22/05/2017 21:34:46 other clients:
22/05/2017 21:34:46 Got 'ws' WebSockets handshake
22/05/2017 21:34:46 Got protocol: binary
22/05/2017 21:34:46 - webSocketsHandshake: using binary/raw encoding
22/05/2017 21:34:46 - WebSockets client version hybi-13

22/05/2017 21:34:46 Disabled X server key autorepeat.
22/05/2017 21:34:46 to force back on run: 'xset r on' (3 times)
22/05/2017 21:34:46 incr accepted_client=9 for 192.168.1.135:62722 sock=12
22/05/2017 21:34:46 httpd: get 'fonts/fontawesome-webfont.woff2?v=4.7.0' for 192.168.1.135
22/05/2017 21:34:46 Client Protocol Version 3.8

22/05/2017 21:34:46 Protocol version sent 3.8, using 3.8

22/05/2017 21:34:46 rfbProcessClientSecurityType: executing handler for type 1
22/05/2017 21:34:46 rfbProcessClientSecurityType: returning securityResult for client rfb version >= 3.8

22/05/2017 21:34:47 Pixel format for client 192.168.1.135:
22/05/2017 21:34:47 32 bpp, depth 24, little endian
22/05/2017 21:34:47 true colour: max r 255 g 255 b 255, shift r 16 g 8 b 0
22/05/2017 21:34:47 no translation needed
22/05/2017 21:34:47 Enabling NewFBSize protocol extension for client 192.168.1.135
22/05/2017 21:34:47 Enabling full-color cursor updates for client 192.168.1.135
22/05/2017 21:34:47 Using image quality level 6 for client 192.168.1.135
22/05/2017 21:34:47 Using JPEG subsampling 0, Q79 for client 192.168.1.135
22/05/2017 21:34:47 Using compression level 9 for client 192.168.1.135
22/05/2017 21:34:47 Enabling LastRect protocol extension for client 192.168.1.135
22/05/2017 21:34:47 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0xFFFFFECC)
22/05/2017 21:34:47 Using tight encoding for client 192.168.1.135
22/05/2017 21:34:48 client_set_net: 192.168.1.135 0.0006
22/05/2017 21:34:48 created xdamage object: 0x200035
22/05/2017 21:34:53 client 9 network rate 434.8 KB/sec (17538.2 eff KB/sec)
22/05/2017 21:34:53 client 9 latency: 4.1 ms
22/05/2017 21:34:53 dt1: 0.0013, dt2: 0.0276 dt3: 0.0041 bytes: 11668
22/05/2017 21:34:53 link_rate: LR_LAN - 4 ms, 434 KB/s
Segmentation fault
caught signal: 15
22/05/2017 21:35:29 deleted 40 tile_row polling images.
extra[1] signal: -1
XIO: fatal IO error 4 (Interrupted system call) on X server ":0"

after 10218 requests (10218 known processed) with 0 events remaining.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] syncing disks.
[s6-finish] sending all processes the TERM signal.
extra[2] signal: 1
[s6-finish] sending all processes the KILL signal and exiting.

 

Share this post


Link to post
9 hours ago, Djoss said:

At the same time, I will make sure the watch folder works for symlinks :)

 

At the risk of sounding greedy here, but would you also consider adding an option to automatically delete files from the watchfolder once they are succesfully processed?

 

Thanks!

 

Share this post


Link to post

Sure, this is a good feature.

Share this post


Link to post

@Jorgen,  you can update the container.  Let me know if you see any problem!

Share this post


Link to post
11 hours ago, dlandon said:

I just got the docker to fail.  I have ripped DVDs in VOB formats.  I selected four of them and added them to the que.  I then clicked start conversion and the docker failed.

 

Here is the log:


2/05/2017 21:34:45 httpd: get '' for 192.168.1.135
22/05/2017 21:34:45 httpd: defaulting to 'index.vnc'
22/05/2017 21:34:45 httpd: get 'js/jquery.ui.touch-punch.min.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:45 httpd: get 'js/novnc-core.min.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:45 httpd: get 'js/novnc-ui.min.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:45 httpd: get 'css/font-awesome.min.css?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:45 httpd: get 'css/bootstrap.custom.css?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:46 httpd: get 'css/bootstrap.min.css?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:46 httpd: get 'js/jquery-ui.custom.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:46 httpd: get 'js/jquery.min.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:46 httpd: get 'js/bootstrap.min.js?v=03c1b2eba0' for 192.168.1.135
22/05/2017 21:34:46 httpd: get 'images/icons/master_icon.png' for 192.168.1.135
22/05/2017 21:34:46 Got connection from client 192.168.1.135
22/05/2017 21:34:46 other clients:
22/05/2017 21:34:46 Got 'ws' WebSockets handshake
22/05/2017 21:34:46 Got protocol: binary
22/05/2017 21:34:46 - webSocketsHandshake: using binary/raw encoding
22/05/2017 21:34:46 - WebSockets client version hybi-13

22/05/2017 21:34:46 Disabled X server key autorepeat.
22/05/2017 21:34:46 to force back on run: 'xset r on' (3 times)
22/05/2017 21:34:46 incr accepted_client=9 for 192.168.1.135:62722 sock=12
22/05/2017 21:34:46 httpd: get 'fonts/fontawesome-webfont.woff2?v=4.7.0' for 192.168.1.135
22/05/2017 21:34:46 Client Protocol Version 3.8

22/05/2017 21:34:46 Protocol version sent 3.8, using 3.8

22/05/2017 21:34:46 rfbProcessClientSecurityType: executing handler for type 1
22/05/2017 21:34:46 rfbProcessClientSecurityType: returning securityResult for client rfb version >= 3.8

22/05/2017 21:34:47 Pixel format for client 192.168.1.135:
22/05/2017 21:34:47 32 bpp, depth 24, little endian
22/05/2017 21:34:47 true colour: max r 255 g 255 b 255, shift r 16 g 8 b 0
22/05/2017 21:34:47 no translation needed
22/05/2017 21:34:47 Enabling NewFBSize protocol extension for client 192.168.1.135
22/05/2017 21:34:47 Enabling full-color cursor updates for client 192.168.1.135
22/05/2017 21:34:47 Using image quality level 6 for client 192.168.1.135
22/05/2017 21:34:47 Using JPEG subsampling 0, Q79 for client 192.168.1.135
22/05/2017 21:34:47 Using compression level 9 for client 192.168.1.135
22/05/2017 21:34:47 Enabling LastRect protocol extension for client 192.168.1.135
22/05/2017 21:34:47 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0xFFFFFECC)
22/05/2017 21:34:47 Using tight encoding for client 192.168.1.135
22/05/2017 21:34:48 client_set_net: 192.168.1.135 0.0006
22/05/2017 21:34:48 created xdamage object: 0x200035
22/05/2017 21:34:53 client 9 network rate 434.8 KB/sec (17538.2 eff KB/sec)
22/05/2017 21:34:53 client 9 latency: 4.1 ms
22/05/2017 21:34:53 dt1: 0.0013, dt2: 0.0276 dt3: 0.0041 bytes: 11668
22/05/2017 21:34:53 link_rate: LR_LAN - 4 ms, 434 KB/s
Segmentation fault
caught signal: 15
22/05/2017 21:35:29 deleted 40 tile_row polling images.
extra[1] signal: -1
XIO: fatal IO error 4 (Interrupted system call) on X server ":0"

after 10218 requests (10218 known processed) with 0 events remaining.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] syncing disks.
[s6-finish] sending all processes the TERM signal.
extra[2] signal: 1
[s6-finish] sending all processes the KILL signal and exiting.

 

 

I tried to reproduce with a couple of VOB files without success.

 

I updated the container.  Can you try it with HandBrake debug enabled?  To enable debug, add the variable HANDBRAKE_DEBUG and set its value to 1.

 

Share this post


Link to post

I added ripped VOB folders to the que and the docker died when I added a folder.

Log:

23/05/2017 09:28:12 Pixel format for client 192.168.1.135:
23/05/2017 09:28:12 32 bpp, depth 24, little endian
23/05/2017 09:28:12 true colour: max r 255 g 255 b 255, shift r 16 g 8 b 0
23/05/2017 09:28:12 no translation needed
23/05/2017 09:28:12 Enabling NewFBSize protocol extension for client 192.168.1.135
23/05/2017 09:28:12 Enabling full-color cursor updates for client 192.168.1.135
23/05/2017 09:28:12 Using image quality level 6 for client 192.168.1.135
23/05/2017 09:28:12 Using JPEG subsampling 0, Q79 for client 192.168.1.135
23/05/2017 09:28:12 Using compression level 9 for client 192.168.1.135
23/05/2017 09:28:12 Enabling LastRect protocol extension for client 192.168.1.135
23/05/2017 09:28:12 rfbProcessClientNormalMessage: ignoring unsupported encoding type Enc(0xFFFFFECC)
23/05/2017 09:28:12 Using tight encoding for client 192.168.1.135
23/05/2017 09:28:13 client 1 network rate 421.1 KB/sec (26501.0 eff KB/sec)
23/05/2017 09:28:13 client 1 latency: 6.0 ms
23/05/2017 09:28:13 dt1: 0.0073, dt2: 0.1442 dt3: 0.0060 bytes: 62515
23/05/2017 09:28:13 link_rate: LR_LAN - 5 ms, 421 KB/s
23/05/2017 09:28:13 httpd: get 'images/icons/favicon.ico?v=73bb39495c' for 192.168.1.135
23/05/2017 09:28:13 client_set_net: 192.168.1.135 0.0006
23/05/2017 09:28:13 created xdamage object: 0x20002c
23/05/2017 09:28:13 copy_tiles: allocating first_line at size 41
23/05/2017 09:28:22 created selwin: 0x20002d
23/05/2017 09:28:22 called initialize_xfixes()
Segmentation fault
caught signal: 15
23/05/2017 09:29:05 deleted 40 tile_row polling images.
XIO: fatal IO error 11 (Resource temporarily unavailable) on X server ":0"

after 7083 requests (7083 known processed) with 0 events remaining.
[cont-finish.d] executing container finish scripts...
[cont-finish.d] done.
[s6-finish] syncing disks.
[s6-finish] sending all processes the TERM signal.
extra[1] signal: 1
[s6-finish] sending all processes the KILL signal and exiting.

I think the fatal IO error 11... is the problem.

Share this post


Link to post

This particular error occurs when the container shuts down, because processes are not necessarily stopped in the right order.

 

It looks like this line shows the HandBrake crash:

Segmentation fault

After that we see messages that happen when container is stopping.

Share this post


Link to post

And sorry, I'm not sure if you already tried the new container, but I forgot to say that debug logs are stored in /config/handbrake.debug.log.

Share this post


Link to post

Just gave this a go. Couple Observations/Comments

 

1. Gui Looks pretty sharp

2. I really like the settings in the Template vs trying to hack around in the HandBrake.conf file

3. I like the idea that I can create a preset in the GUI and call it out in the Settings without having to attempt to save it, edit the Handbrake.conf file and it works too. :D

4. Thank you for adding the option to delete from the Watcher folder. I normally put my copies of originals there so I don't mind if it disappears

5. When I tried to do a Test I used a file like so with the following settings.  

-- Do not delete the original

-- Using a Custom Preset

-- Using the Watcher Folder

-- "The Watchers S1E05.mp4" and I noticed it ripped the file, but then it erased the file from /Output and attempted to Re-rip the file so I stopped it. I can only guess its because the file had a space. I didn't catch anything error wise in my HandBrake Log

-- I can only imagine if I had of set Delete Original it would of worked just fine, but just wanted to point that out. 

6. I drug a file to the /Watcher folder and while it was copying I noticed several error messages saying it couldn't read the file as it was copying over in the log. I wanted to say. "Duh, can you wait a few minutes and let it finish first? lol I know Coppit's Handbrake Docker had a "Waiting for Watch Folder Stabilization message, will re-attempt in 10 seconds"  Not a big deal most of use might ignore this error message since once things are running smoothly in our day to day operations. 

Share this post


Link to post
6 hours ago, dlandon said:

I used the latest docker.  Debug log attached.

handbrake.debug.log

 

Didn't find anything obvious in the log.  Are you getting the crash only with vob files?  If you convert them without using the queue, are you getting the same crash?

Share this post


Link to post
6 hours ago, kizer said:

Just gave this a go. Couple Observations/Comments

 

1. Gui Looks pretty sharp

2. I really like the settings in the Template vs trying to hack around in the HandBrake.conf file

3. I like the idea that I can create a preset in the GUI and call it out in the Settings without having to attempt to save it, edit the Handbrake.conf file and it works too. :D

4. Thank you for adding the option to delete from the Watcher folder. I normally put my copies of originals there so I don't mind if it disappears

5. When I tried to do a Test I used a file like so with the following settings.  

-- Do not delete the original

-- Using a Custom Preset

-- Using the Watcher Folder

-- "The Watchers S1E05.mp4" and I noticed it ripped the file, but then it erased the file from /Output and attempted to Re-rip the file so I stopped it. I can only guess its because the file had a space. I didn't catch anything error wise in my HandBrake Log

-- I can only imagine if I had of set Delete Original it would of worked just fine, but just wanted to point that out. 

6. I drug a file to the /Watcher folder and while it was copying I noticed several error messages saying it couldn't read the file as it was copying over in the log. I wanted to say. "Duh, can you wait a few minutes and let it finish first? lol I know Coppit's Handbrake Docker had a "Waiting for Watch Folder Stabilization message, will re-attempt in 10 seconds"  Not a big deal most of use might ignore this error message since once things are running smoothly in our day to day operations. 

 

Thanks for the feedback!  You bring a good point with files being processed while they are still copied.  I will make sure to fix that.

 

For the other issue, files with spaces should not be a problem.  In the logs, you should have one from the watchfolder that tells if the conversion succeeded or not.  In both cases, the same source file should not be re-processed, unless the source really changed...  I guess the /output and /watch folders are mapped to different folders on the host?

Share this post


Link to post
20 minutes ago, Djoss said:

 

Didn't find anything obvious in the log.  Are you getting the crash only with vob files?  If you convert them without using the queue, are you getting the same crash?

All I have is VOB files to convert.  Only when adding files to the que so far.

Share this post


Link to post
44 minutes ago, Djoss said:

I guess the /output and /watch folders are mapped to different folders on the host?

 

Yes they are to different folders. I'll try and recreate the same situation soon and pay attention more to the log files to see if anything stands out as obvious. 

 

Watch Folder =  /mnt/cache/Handbrake/dump

Output Folder =  /mnt/cache/zzzzzzzz

 

Your very welcome for the Feedback. Nothing stands out as bad just figured honest/constructive info is always good to share.

Share this post


Link to post
11 hours ago, dlandon said:

All I have is VOB files to convert.  Only when adding files to the que so far.

 

Could you also attach the file '/config/ghb/Activity.log.*'?

Which preset are you using?

  • Upvote 1

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now