Batch Convert 1000+ DVD to Digital

paecificjr

Honorable
Nov 24, 2013
65
0
10,630
Hello everyone, I wish I had come here before I started this project, but where is the fun in that right? At work we have/had 3 shelves full of DVDs that were just sitting there. Thus I came up with the idea to make them digital. I did some poking around and figured that imgBurn was the right tool to convert them to ISO. Every ISO is correct and the ISO plays fine in VLC player. The problem is that I now have 1 TB of data that needs converted to MP4 or MKV so that other people can use them easier. I have tried everything. I started with Handbrake, but that wouldn't see all of the tracks. I have now tried MakeMKV, which gets 5 of 6 in my test (2 sources 3 tracks each). The one that it doesn't get will only output 27 seconds of the 13 minute long video.

So in summary my questions is, what software should I have used to digitize them? What should I use to convert them to another format? How can I get some batch processing to work, because I am way too lazy to do this one by one?
 
Solution
Ok.. It was my understanding that makemkv could create directories but maybe not. What if you create the directory first with mkdir command? the if else statement just tests weather the directory already exist..
Code:
@echo off
for %%X in (*.iso) do (
    if not exist "C:\Users\Administrator\Documents\TestOutput\%%~nX" (
        echo creating directory "C:\Users\Administrator\Documents\TestOutput\%%~nX"
        mkdir "C:\Users\Administrator\Documents\TestOutput\%%~nX"
    )
    else (
        echo directory "C:\Users\Administrator\Documents\TestOutput\%%~nX" already exists
    )

    "C:\Program Files (x86)\MakeMKV\makemkvcon.exe" mkv iso:"%%X" all "C:\Users\Administrator\Documents\TestOutput\%%~nX"
)
Converting from the physical DVD to digital is only ever going to be one by one.

You have to manually add each track into handbrake for the audio, otherwise it will just select the default english.

You can certienly convert ISO to MKV with handbrake and do a batch job:
http://www.homemultimedianetwork.com/Guides/Converting-a-DVD-to-an-MKV-using-Handbrake.php
http://www.howtogeek.com/199993/converting-videos-by-the-batch-with-handbrake/

But you cant add in a bunch of special things (like multiple audio tracks) in a batch job, its just not going to happen.


Also for a media player, I recommend using Kodi software. It will provide you with a very nice front end, and will catalog your movie collection and import all of the imdb data as well as dvd covers and fan images.
 

paecificjr

Honorable
Nov 24, 2013
65
0
10,630
I forgot to mention that these were created by my company. They are all in English, with zero subtitles and a single audio track. The problem I have been facing with Handbrake is that it doesn't see all of my tracks inside of the ISO, trust me I have tried.
 

paecificjr

Honorable
Nov 24, 2013
65
0
10,630
There are multiple video tracks. For example one ISO might have 3 videos inside of it that are all separated. When you view the ISO in VLC player you can select which one you want to view in a menu.
 
If the DVD was setup to view each video as a "chapter" then that is fine.

If the videos are all separate files then you first need to convert each one individually, then you can merge them together with handbrake:
http://www.addictivetips.com/windows-tips/batch-convert-or-merge-an-entire-folder-of-videos-with-handbrake-hb-batch-encoder-mk2/
 
I would use makemkv in automatic (commandline) mode. Combined with a for loop That should convert most of the disks. Any that fail you then look at individually.

And of course you should report that to the makemkv developers as They are very responsive and fix bugs quickly

Can you post output of
Code:
makemkvcon -r info diskname.iso

Copy all titles from first disc and save as MKV files:
Code:
 makemkvcon mkv disknamegoeshere.iso all c:\outputfolder

http://www.makemkv.com/developers/usage.txt
 

dmroeder

Distinguished
Jan 15, 2005
1,366
23
20,765
I second skittle's recommendation, makemkv is great. I have a script that will use makemkv to convert the disk to mkv (any title longer than 60 minutes), then use Handbrake to reduce it's size a bit. Just pop in the disk, run the script, wait for the disk to pop out.
 

paecificjr

Honorable
Nov 24, 2013
65
0
10,630
I could if necessary, I just tried someone else's program, Movies2MKV Converter. It struggled because my video's have multiple titles. Would your script work better with that?

Also I'm about ready to head home for the day so I will get back to any posts sometime tomorrow.

 
It's not even really a script. If you read the makemkvcon documentation I posted you can find this option. For example 60min=3600s

makemkvcon --minlength=3600 all filename.iso c:\outputfolder

Of course specifying 60min minimum length will skip over a 13min track. I would omit it all together to just say output all tracks if you dont know a absolute minimum length. Try this on the disk and see what it outputs.. Change file names and paths appropriately.

Code:
c:/makemkv/makemkvcon mkv c:/iso/diskname.iso all c:/outputfolder

Automating this is easy in dos or bash or python... It's a one line for loop.
 

dmroeder

Distinguished
Jan 15, 2005
1,366
23
20,765


Yeah the MakeMKV can be done with a single command. Where the script came in handy for me was for adding Handbrake in the mix. Then when the whole process was done, the disk ejects, so now I know when to put a new disk in and run it again.

#! /bin/bash

# stuff for the output file name
i=0
filename="ripped"
extension=".mkv"

echo "About to rip"
# rip the disk with makemkv
makemkvcon --minlength=3600 -r --decrypt --directio=true mkv disc:0 all ~/Videos/
#makemkvcon --minlength=1200 -r --decrypt --directio=true mkv disc:0 all ~/Videos/

# get all the mkv files
for entry in ~/Videos/*.mkv
do
# make our file name
output="$filename$i$extension"
# transcode with handbrake using my preset
HandBrakeCLI -i "$entry" -o $output --preset="Normal"
i+=1
done

echo "Rip complete"

# eject the disk
eject /dev/cdrom

I saved it in ~/Videos as rip.sh. If you save it elsewhere, there is a path in the middle of the script that you'll have to edit because I'm not that great at bash. Make sure you have MakeMKV installed and Handbrake CLI installed. When you run it, it will convert all titles that are 60 minutes or longer to MKV, then handbrake them using the "Normal" preset. This would take the typical 1.5hr video from ~5GB to about 800MB.
 
You can string together various unix tools to grab only the longest title, or as I suggested earlier just have makemkvcon dump all titles in the disc. Or set minimum time to 5min...

Use handbrake or ffmpeg to compress.

You can make a simple for loop in bash (linux) or on windows use the dos batch scripting.
 
So just have it grab all the titles. What is the problem? The command looks something like this:
Try it out on one iso, if it works the way you like then proceeded to stick the command in a for loop to do it for all the iso.

Code:
c:/makemkv/makemkvcon.exe mkv ISO:"c:/iso/diskname.iso" all c:/outputfolder
 

paecificjr

Honorable
Nov 24, 2013
65
0
10,630
I am running

makemkvcon.exe mkv ISO:"C:\Users\Administrator\Documents\Input Test\Global Agriculture and Beterinary Medicine DV-5257.iso" all "C:\Users\Administrator\Documents\TestOutput"

I tried adding the --progress and it failed.