Djoss Posted May 18, 2017 Share Posted May 18, 2017 (edited) Support for HandBrake docker containerApplication Name: HandBrakeApplication 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 June 1, 2017 by Djoss 5 2 Quote Link to comment
tiny-e Posted May 18, 2017 Share Posted May 18, 2017 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). Quote Link to comment
Djoss Posted May 18, 2017 Author Share Posted May 18, 2017 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. Quote Link to comment
dlandon Posted May 22, 2017 Share Posted May 22, 2017 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! Quote Link to comment
Jorgen Posted May 22, 2017 Share Posted May 22, 2017 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 Quote Link to comment
Djoss Posted May 23, 2017 Author Share Posted May 23, 2017 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! Quote Link to comment
Djoss Posted May 23, 2017 Author Share Posted May 23, 2017 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 Quote Link to comment
dlandon Posted May 23, 2017 Share Posted May 23, 2017 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. Quote Link to comment
dlandon Posted May 23, 2017 Share Posted May 23, 2017 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. Quote Link to comment
Jorgen Posted May 23, 2017 Share Posted May 23, 2017 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! Quote Link to comment
Djoss Posted May 23, 2017 Author Share Posted May 23, 2017 Sure, this is a good feature. Quote Link to comment
Djoss Posted May 23, 2017 Author Share Posted May 23, 2017 @Jorgen, you can update the container. Let me know if you see any problem! Quote Link to comment
Djoss Posted May 23, 2017 Author Share Posted May 23, 2017 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. Quote Link to comment
dlandon Posted May 23, 2017 Share Posted May 23, 2017 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. Quote Link to comment
Djoss Posted May 23, 2017 Author Share Posted May 23, 2017 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. Quote Link to comment
Djoss Posted May 23, 2017 Author Share Posted May 23, 2017 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. Quote Link to comment
dlandon Posted May 23, 2017 Share Posted May 23, 2017 I used the latest docker. Debug log attached. handbrake.debug.log Quote Link to comment
kizer Posted May 23, 2017 Share Posted May 23, 2017 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. 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. Quote Link to comment
Djoss Posted May 24, 2017 Author Share Posted May 24, 2017 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? Quote Link to comment
Djoss Posted May 24, 2017 Author Share Posted May 24, 2017 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. 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? Quote Link to comment
dlandon Posted May 24, 2017 Share Posted May 24, 2017 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. Quote Link to comment
kizer Posted May 24, 2017 Share Posted May 24, 2017 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. Quote Link to comment
Djoss Posted May 24, 2017 Author Share Posted May 24, 2017 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? 1 Quote Link to comment
Recommended Posts
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.