JasonMillward / Autorippr

Rip discs automatically using a blend of Python, MakeMKV and HandBrake
MIT License
241 stars 60 forks source link

1.6 compress does not seems to finsh/end #53

Closed choman closed 10 years ago

choman commented 10 years ago

doing a "--rip --compress --debug", the process is still running. Started the compression at 22:31 and at 23:48 it is still running. Seemed to be taking a while. I tried running vlc against the compressed version of the file. It seems fine and the credits to the movie are there.

Had same problem with "--all". The movie is star trek into darkness

JasonMillward commented 10 years ago

Handbrake is set to do 2 pass encoding by default

Two-pass encoding takes about twice as long, but conforms better to the average bitrate and improves picture quality. It takes no options.

Is the process active and running or just sitting in the background not completing?

choman commented 10 years ago

I will have to try again. about how long should it take?

be good info so I'm not too impatient, but I will look closer into it with ps and top

Together We Win! Looking for cloud storage, try copy.com (20g free

https://copy.com?r=6BuEoY)

Chad - Mynt / Core Promoter Do You Know Your Life Score? http://choman.mymonavie.com Creating A More Meaningful Life

Some people, when confronted with a problem, think "I know, I'll use Windows." Now they have two problems.

Some people claim if you play a Windows Install Disc backwards you'll hear satanic Messages. That's nothing, if you play it forward it installs Windows

On Tue, Jul 29, 2014 at 12:02 AM, Jason notifications@github.com wrote:

Handbrake is set to do 2 pass encoding by default

Two-pass encoding takes about twice as long, but conforms better to the average bitrate and improves picture quality. It takes no options.

Is the process active and running or just sitting in the background not completing?

— Reply to this email directly or view it on GitHub https://github.com/JasonMillward/Autorippr/issues/53#issuecomment-50434805 .

JasonMillward commented 10 years ago

I give my development VM 8 cores to test encoding faster, DVDs take 8-12 minutes and I haven't tested BDs (Will do when I get home).

It might be nice to have a table of times, but the process time varies from hardware to hardware so I'm not sure if it will be useful.

choman commented 10 years ago

Well my into darkness is a bluray. I'll let it run over night. Check back in the morn On Jul 29, 2014 12:17 AM, "Jason" notifications@github.com wrote:

I give my development VM 8 cores to test encoding faster, DVDs take 8-12 minutes and I haven't tested BDs (Will do when I get home).

It might be nice to have a table of times, but the process time varies from hardware to hardware so I'm not sure if it will be useful.

— Reply to this email directly or view it on GitHub https://github.com/JasonMillward/Autorippr/issues/53#issuecomment-50435386 .

choman commented 10 years ago

looks like the autorip process is not closing out. As you see below, I never get the "took X to compress message". The BR seems to be done, and I cannot see any handbrake process running.

The compression started at 12:23am and the autorip process is still running at 07:19am. Below is the debug output:

python autorippr.py --rip --compress --debug 2014-07-29 00:10:47 - Rip - DEBUG - Ripping initialised 2014-07-29 00:10:47 - Rip - DEBUG - Checking for DVDs 2014-07-29 00:10:50 - Rip - DEBUG - 1 DVDs found 2014-07-29 00:12:30 - Makemkv - DEBUG - MakeMKV found 1 titles 2014-07-29 00:12:30 - Makemkv - DEBUG - Title number: 0 2014-07-29 00:12:30 - Makemkv - DEBUG - ['STAR_TREKINTO_DARKNESS'] 2014-07-29 00:29:57 - Eject - DEBUG - Ejecting drive: "/dev/sr0" 2014-07-29 00:29:57 - Eject - DEBUG - Attempting OS detection 2014-07-29 00:29:57 - Eject - DEBUG - OS detected as Unix 2014-07-29 00:30:02 - Eject - DEBUG - eject: device name is /dev/sr0' 2014-07-29 00:30:02 - Eject - DEBUG - eject: expanded name is/dev/sr0' 2014-07-29 00:30:02 - Eject - DEBUG - eject: /dev/sr0' is mounted at/media/choman/STAR_TREKINTO_DARKNESS' 2014-07-29 00:30:02 - Eject - DEBUG - eject: /dev/sr0' is not a multipartition device 2014-07-29 00:30:02 - Eject - DEBUG - eject: trying to eject/dev/sr0' using CD-ROM eject command 2014-07-29 00:30:02 - Eject - DEBUG - eject: CD-ROM eject command failed 2014-07-29 00:30:02 - Eject - DEBUG - eject: trying to eject `/dev/sr0' using SCSI commands 2014-07-29 00:30:02 - Eject - DEBUG - eject: SCSI eject succeeded 2014-07-29 00:30:02 - Rip - INFO - It took 17 minute(s) to complete the ripping of Star Trek Into Darkness 2014-07-29 00:30:02 - Compress - DEBUG - Compressing initialised 2014-07-29 00:30:02 - Compress - DEBUG - Looking for movies to compress 2014-07-29 00:30:02 - Compress - INFO - Compressing Star Trek Into Darkness

My next test will be to "--rip --debug" and then "--compress --debug" separately. Unless you think this test would be a waste of time

In regards to Stats: not sure what to do there either other than estimates. processors, cores, physical device speeds (BR-rom/dvdrom), the movie size itself all come into the equation. My system is a 8 core zambezi w/16g of ram. the initial ripped file is 6.9gig and the compressed file if 1.1g (pretty good)

choman commented 10 years ago

FMI, what should I be looking for in the process tables. will I see hand brake running?

During my alternate test (separated run --rip and then --compress) I seem to be running the issue. still looking into it for more information, just that work is getting in the way today

JasonMillward commented 10 years ago

What version of HandBrakeCLI are you using?

$ HandBrakeCLI -u

HandBrake rev5474 (2014032499) - Linux i686 - http://handbrake.fr
Your version of HandBrake is up to date.

To find out if handbrake is still running, you can use ps and pipe it to grep like this ps aux | grep HandBrakeCLI. You'll always see the command you entered, and you should see another result similar to

jason    12692  352  4.4 271688 91676 pts/0    SNl+ 07:42   1:49 HandBrakeCLI --verbose ...

If handbrake completes, errors or is killed it should be returning some data and telling you it didn't complete.

This is an example from when I killed it by sending the process a SIGTERM to end it.

2014-07-30 07:42:55 - HandBrake - DEBUG - [07:42:33] mpeg2video: "Chapter 3" (3) at frame 9402 time 33822000
2014-07-30 07:42:55 - HandBrake - DEBUG - [07:42:38] mpeg2video: "Chapter 4" (4) at frame 12210 time 43930800
2014-07-30 07:42:55 - HandBrake - DEBUG -
2014-07-30 07:42:55 - Compress - INFO - HandBrake did not complete successfully

Even though it stopped in the middle of an encode, data was returned and autorippr continued to do its thing.

And since the issue seems to be with the compression side, running any combination of --rip and --compress will result in this issue. So running them separately is not going to change anything.


So next time you think it's failed, ps aux | grep HandBrakeCLI and see if it's still running and report back.

choman commented 10 years ago

HandBrakeCLI -u [17:45:49] hb_init: checking for updates [17:45:49] Using http://handbrake.fr/appcast_unofficial.xml [17:45:50] Error: We did not get a 200 OK from the server.

[17:45:50] hb_init: starting libhb thread HandBrake rev5474 (2014032499) - Linux x86_64 - http://handbrake.fr Your version of HandBrake is up to date.

Together We Win! Looking for cloud storage, try copy.com (20g free

https://copy.com?r=6BuEoY)

Chad - Mynt / Core Promoter Do You Know Your Life Score? http://choman.mymonavie.com Creating A More Meaningful Life

Some people, when confronted with a problem, think "I know, I'll use Windows." Now they have two problems.

Some people claim if you play a Windows Install Disc backwards you'll hear satanic Messages. That's nothing, if you play it forward it installs Windows

On Tue, Jul 29, 2014 at 5:28 PM, Jason notifications@github.com wrote:

What version of HandBrakeCLI are you using?

$ HandBrakeCLI -u

HandBrake rev5474 (2014032499) - Linux i686 - http://handbrake.fr Your version of HandBrake is up to date.

To find out if handbrake is still running, you can use ps and pipe it to grep like this ps aux | grep HandBrakeCLI. You'll always see the command you entered, and you should see another result similar to

jason 12692 352 4.4 271688 91676 pts/0 SNl+ 07:42 1:49 HandBrakeCLI --verbose ...

If handbrake completes, errors or is killed it should be returning some data and telling you it didn't complete.

This is an example from when I killed it by sending the process a SIGTERM to end it.

2014-07-30 07:42:55 - HandBrake - DEBUG - [07:42:33] mpeg2video: "Chapter 3" (3) at frame 9402 time 33822000 2014-07-30 07:42:55 - HandBrake - DEBUG - [07:42:38] mpeg2video: "Chapter 4" (4) at frame 12210 time 43930800 2014-07-30 07:42:55 - HandBrake - DEBUG - 2014-07-30 07:42:55 - Compress - INFO - HandBrake did not complete successfully

Even though it stopped in the middle of an encode, data was returned and autorippr continued to do its thing.

And since the issue seems to be with the compression side, running any combination of --rip and --compress will result in this issue. So running

them separately is not going to change anything.

So next time you think it's failed, ps aux | grep HandBrakeCLI and see if it's still running.

— Reply to this email directly or view it on GitHub https://github.com/JasonMillward/Autorippr/issues/53#issuecomment-50548302 .

choman commented 10 years ago

Appears to be hanging on line 109 of classes/handbrake.py

        output = proc.stderr.read()

I'm printing a debug message before and after this and I never see the message after

JasonMillward commented 10 years ago

Yes, it seems to be related to "OS pipe buffers filling up".

Use communicate() rather than .stdin.write, .stdout.read or .stderr.read to avoid deadlocks due to any of the other OS pipe buffers filling up and blocking the child process.

I'll play with some things and I should have a fix shortly

choman commented 10 years ago

cool looking forward to test.

Together We Win! Looking for cloud storage, try copy.com (20g free

https://copy.com?r=6BuEoY)

Chad - Mynt / Core Promoter Do You Know Your Life Score? http://choman.mymonavie.com Creating A More Meaningful Life

Some people, when confronted with a problem, think "I know, I'll use Windows." Now they have two problems.

Some people claim if you play a Windows Install Disc backwards you'll hear satanic Messages. That's nothing, if you play it forward it installs Windows

On Tue, Jul 29, 2014 at 9:35 PM, Jason notifications@github.com wrote:

Yes, it seems to be related to "OS pipe buffers filling up".

Use communicate() rather than .stdin.write, .stdout.read or .stderr.read to avoid deadlocks due to any of the other OS pipe buffers filling up and blocking the child process.

I'll play with some things and I should have a fix shortly

— Reply to this email directly or view it on GitHub https://github.com/JasonMillward/Autorippr/issues/53#issuecomment-50566994 .

JasonMillward commented 10 years ago

I made a quick bash file to print for i in {1..5000000}... and proc.communicate() handled it perfectly.

Can you please try again on branch 'issue-53' ?

git pull
git checkout issue-53

You can add back in your debug messages around line 103

choman commented 10 years ago

That seemed to work. I was gonna point that out, i use proc.communicate9) in most of my python scripts. But I wasn't 100% sure if the way you implemented it wasn't incorrect. I also noticed you're making similar calls in the other classes; such as makemkv. Will those be updated soon too, in reference to this bug?

On another note, may be a new bug. I moved to rip Star Trek (2009) and had an error. Don't have the info on me right now. I'll start a new bug if appropriate.

Together We Win! Looking for cloud storage, try copy.com (20g free

https://copy.com?r=6BuEoY)

Chad - Mynt / Core Promoter Do You Know Your Life Score? http://choman.mymonavie.com Creating A More Meaningful Life

Some people, when confronted with a problem, think "I know, I'll use Windows." Now they have two problems.

Some people claim if you play a Windows Install Disc backwards you'll hear satanic Messages. That's nothing, if you play it forward it installs Windows

On Tue, Jul 29, 2014 at 10:23 PM, Jason notifications@github.com wrote:

I made a quick bash file to print for i in {1..5000000}... and proc.communicate() handled it perfectly.

Can you please try again on branch 'issue-53' ?

git pull git checkout issue-53

You can add back in your debug messages around line 103 https://github.com/JasonMillward/Autorippr/blob/issue-53/classes/handbrake.py#L103

— Reply to this email directly or view it on GitHub https://github.com/JasonMillward/Autorippr/issues/53#issuecomment-50569341 .

JasonMillward commented 10 years ago

Yes I'll be updating those other calls now that I know I should be using proc.communicate()

choman commented 10 years ago

lmk when you're ready. I'll test

Together We Win! Looking for cloud storage, try copy.com (20g free

https://copy.com?r=6BuEoY)

Chad - Mynt / Core Promoter Do You Know Your Life Score? http://choman.mymonavie.com Creating A More Meaningful Life

Some people, when confronted with a problem, think "I know, I'll use Windows." Now they have two problems.

Some people claim if you play a Windows Install Disc backwards you'll hear satanic Messages. That's nothing, if you play it forward it installs Windows

On Wed, Jul 30, 2014 at 4:38 PM, Jason notifications@github.com wrote:

Yes I'll be updating those other calls now that I know I should be using proc.communicate()

— Reply to this email directly or view it on GitHub https://github.com/JasonMillward/Autorippr/issues/53#issuecomment-50683882 .

JasonMillward commented 10 years ago

I've pushed some changes to branch 'issue-53' if you'd like to test.

And if you're done with issue #50 now there's been an update, would you consider closing it?

JasonMillward commented 10 years ago

Hi @lesgrossman did you have a chance to test the changes yet? Just checking because it's been a while since you last responded.

choman commented 10 years ago

No sorry. Been busy with work. Now Now defcon. Will relook after tues On Aug 8, 2014 10:01 PM, "Jason" notifications@github.com wrote:

Hi @lesgrossman https://github.com/lesgrossman did you have a chance to test the changes yet? Just checking because it's been a while since you last responded.

— Reply to this email directly or view it on GitHub https://github.com/JasonMillward/Autorippr/issues/53#issuecomment-51677399 .

Chadarius commented 10 years ago

Jason,

I just put the script on my MythTV box and used 'issue-53' and it fixed the same problem for me. I love it! Thanks for your work on the script. If you have anything else you need me to test let me know. I've got a ton of ripping I'm going to do. I have a 3.6TB RAID5 array waiting for my DVD collection.

nachoman42 commented 10 years ago

Had same problem when running python autorippr.py --all , issue-53 branch allowed compression phase to complete. Although final output reports error:

2014-08-11 23:39:36 - Extras - INFO - Completed work on Inception
Traceback (most recent call last):
  File "autorippr.py", line 333, in <module>
    extras(config)
  File "autorippr.py", line 294, in extras
    if config['commands'] is not None and len(config['commands']) > 0:
KeyError: 'commands'
JasonMillward commented 10 years ago

You're probably missing lines 36+ from your config, see settings.example.cfg

nachoman42 commented 10 years ago

Yep, that was it. Thanks!

Chadarius commented 10 years ago

I was missing that part of the config. thanks!

On Tue, Aug 12, 2014 at 12:30 AM, Chris Purves notifications@github.com wrote:

Yep, that was it. Thanks!

— Reply to this email directly or view it on GitHub https://github.com/JasonMillward/Autorippr/issues/53#issuecomment-51875152 .

Regards, Chad Sutton

JasonMillward commented 10 years ago

Since @Chadarius and @PB-Chris have reported this issue to be fixed I'm going to merge the code into the master.

choman commented 10 years ago

Thanks, sorry about my delays

Together We Win! Looking for cloud storage, try copy.com (20g free

https://copy.com?r=6BuEoY)

Chad - Mynt / Core Promoter Do You Know Your Life Score? http://choman.mymonavie.com Creating A More Meaningful Life

Some people, when confronted with a problem, think "I know, I'll use Windows." Now they have two problems.

Some people claim if you play a Windows Install Disc backwards you'll hear satanic Messages. That's nothing, if you play it forward it installs Windows

On Sun, Aug 17, 2014 at 8:34 PM, Jason notifications@github.com wrote:

Closed #53 https://github.com/JasonMillward/Autorippr/issues/53 via 51708e7 https://github.com/JasonMillward/Autorippr/commit/51708e75b7ae5892fc3f837f25d8bce098b965c2 .

— Reply to this email directly or view it on GitHub https://github.com/JasonMillward/Autorippr/issues/53#event-153749837.