dcardille / video4fuze

Automatically exported from code.google.com/p/video4fuze
GNU General Public License v3.0
0 stars 0 forks source link

DVD/Blu-ray movie support #52

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
I have made a number of enhancements fuze.py and vthumb.py.

Users who have a media server, such as Windows Media Server or Sage TV often 
have a graphic (often the front cover of the DVD or a movie poster) in the same 
directory as the movie. Fuze and vthumb will now look first for this type of 
file for creating the thumbnail, rather than always extracting it from the 
first 100 frames of the movie.

I have also enabled vthumb.py to be run from the command line and added support 
for specifying the range of frames for it to use when creating the thumbnail.

I have all of my DVD and Blu-Ray movies copied to my hard drive (using DVDFab), 
preserving the original DVD/BR structure (but stripping out menus, FBI 
warnings, previews, etc). For DVDs, this places multiple VOB files in a 
directory called VIDEO_TS. For a Blu-ray movie, multiple M2TS files are placed 
in the directory BDMV/STREAM. The updated command line version of fuze.py, 
allows you to specify the base directory for the movie and will automatically 
select all of the VOB or M2TS files (in alphabetical order) and pass them to 
mencoder.

Currently it only works if all of the VOB/M2TS files are part of the main movie 
(i.e. the DVD copy cannot include DVD menus, extra features, etc.) Mencoder 
fails for movies that include any of this extra stuff. Typically all of the VOB 
files comprising the main movie will have names something like VTS_mm_n.VOB, 
where n is replaced by a number for each section of the movie (each section 
being 1 GB in size) and mm is replaced by the number of the VTS set, 01, 02, 
etc. When only the main movie is present, its name will be like VTS_01_n.VOB. 
When alternate tracks, DVD menus, etc. are present, the main movie will often 
have an mm value of 03, 04 or higher. A workaround could be implemented to only 
pass to mencoder the VOB files that correspond to the set of VOB files that 
share a value of mm and have the largest size (since the largest track on the 
DVD is usually the movie). Since 99% of my movies don't have menus I have not 
done this.

fuzeall.py is a new command line file that will walk a directory structure and 
convert all of the DVD/Blu-ray files that it finds, since the video4fuze UI 
doesn't not support passing only a set of directories.

Currently there is one major bug with this solution. Mencoder gives a frame 
error when switching from one VOB to the next. The resulting AVI file plays 
fine with most video players, but the Fuze often aborts playback of the movie 
when it hits this frame. When this happens, my kids re-select the movie and 
fast forward past the spot where the frame error occurred and then can continue 
watching the movie without problems. Most movies consist of 2-5 VOB files and 
the abort typically happens once or sometimes twice per movie.

Original issue reported on code.google.com by russs....@gmail.com on 16 Jan 2011 at 11:10

Attachments:

GoogleCodeExporter commented 8 years ago
This is great! Unfortunately I don't don't have much free time in the next 
weeks to dedicate to this, but it's great! I'll try to find some time for it, 
and maybe re-package for all platforms.

The GUI support for what fuzeall does should'nt be very difficult to implement. 
I'll revise them and upload them to svn as soon as I can (or would you like 
commit acces to the svn repo?)

In a quick sight I've spotted 'os.path.exists (ddir)'. It's OK in most cases, 
but it could exist and be a file instead of a directory... in that case 
os.path.isdir() is more specific.

Original comment by ssorga...@gmail.com on 16 Jan 2011 at 11:43

GoogleCodeExporter commented 8 years ago

Original comment by ssorga...@gmail.com on 16 Jan 2011 at 11:44

GoogleCodeExporter commented 8 years ago
Your changes have been merged in the svn repository, including the fuzeall.py 
functionality into fuze.py. 

Could you please try if it still works? (I don't have any DVD or Blueray movie 
to test with)

Now I'm working into GUI support for it.

Original comment by ssorga...@gmail.com on 22 Jan 2011 at 10:59

GoogleCodeExporter commented 8 years ago
I'll try to download the code and test it within the next couple of days,
hopefully tomorrow.

Original comment by russs....@gmail.com on 23 Jan 2011 at 1:32

GoogleCodeExporter commented 8 years ago
I only had a few minutes, today. I installed an SVN tool (which I have never
used before) and downloaded the latest source. I saw that at least some of
my changes were there, so I knew I had the right code. However, I was not
able to get it to run; I was getting an error about not being able to find
an include file, so I don't think I have it configured correctly. When I get
more time, I'll figure out what is wrong and then test it.

If you wanted to try copying DVDs or Blu-ray disks to you hard drive, DVDFab
has a two week free evaluation and you can rip as many movies as you want
during that time. DVDs typically only take 10-15 minutes to copy and there
is no loss in quality (you must specify the DVD9 setting in the program or
some DVDs will have a quality loss).

Regardless, I'll try to get back to it in the next couple of days.

Original comment by russs....@gmail.com on 24 Jan 2011 at 4:53

GoogleCodeExporter commented 8 years ago
Make sure you have all its dependencies installed: that includes python 2.6 or 
higher, or 2.4 or higher with this: 
http://pypi.python.org/pypi/multiprocessing/ (this requirement is new, so it 
could be what's wrong)

You also need PyQt4(http://www.riverbankcomputing.co.uk/software/pyqt/download) 
and PIL (http://www.pythonware.com/products/pil/) to be able to run it from 
source.

BTW, I don't have any (physical or not) DVD or Blueray media to test it on. 
Well, in fact, I don't even have a fuze anymore!

Original comment by ssorga...@gmail.com on 24 Jan 2011 at 7:46