Convert a HD-DVD to individual files playable in VLC and streamable over the network:
Ensure that AnyDVD HD is running with HD-DVD support enabled. The UDF driver needs to be installed, too, if you are using WinXP.
Note: Throughout this guide, I will use “d:\” to refer to your HD-DVD drive. Substitute this with your actual drive letter as necessary. Alternatively, if you have already used AnyDVD HD to rip the HD-DVD's contents to a folder on your hard disk, you can substitute it with the full path to that folder. Likewise, “c:\rips” will be the directory I use to store the intermediate files. Use whatever you want.
Note also that it's possible (and preferable for the sake of speed) to combine most of the `eac3to` commands in this guide, so you may want to read the whole document before starting. Alternatively you can run the commands individually to get the hang of it first, then combine them later.
From a command prompt, `cd` into the directory where you have extracted Eac3to to, then run `eac3to d:\`. This will display a list of titles (and streams, but ignore those) on the disc. Make a note of the titles you wish to extract (e.g. “1)”, “2)”, etc.).
Example title list for Serenity: 1) FEATURE_1.EVO+FEATURE_2.EVO, 1:58:46
"MainMovie" - VC-1, 1080p (16:9) - E-AC3, English, 5.1, 48khz - E-AC3, French, 5.1, 48khz - E-AC3, Italian, 5.1, 48khz, "Italian" - E-AC3, German, 5.1, 48khz - E-AC3, Spanish, 5.1, 48khz - E-AC3, English, 2.0, 48khz, "Director Joss Whedon Commentary"
2) FILMMAKER.EVO, 0:19:53
"A Filmmaker's Journey" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz
3) DS1.EVO+DS2.EVO+DS3.EVO+DS4.EVO+DS5.EVO+DS6.EVO+DS7.EVO+DS8.EVO+DS9.EVO, 0:14:39
"Deleted Scenes" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz - E-AC3, English, 2.0, 48khz, "Commentary"
4) RELIGHT.EVO, 0:09:41
"Re-lighting the Firefly" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz
5) WHATSFIRE.EVO, 0:06:33
"What's in a Firefly" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz
6) OUTTAKES.EVO, 0:06:05
"Outtakes" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz
7) FUTURE.EVO, 0:04:32
"Future History" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz
8) INTRO.EVO, 0:03:55
"Joss Whedon Intro" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz
9) DS5.EVO, 0:02:31
"Deleted Scene 5" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz - E-AC3, English, 2.0, 48khz, "Commentary"
10) DS3.EVO, 0:02:27
"Deleted Scene 3" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz - E-AC3, English, 2.0, 48khz, "Commentary"
11) DS8.EVO, 0:02:24
"Deleted Scene 8" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz - E-AC3, English, 2.0, 48khz, "Commentary"
12) DS4.EVO, 0:02:21
"Deleted Scene 4" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz - E-AC3, English, 2.0, 48khz, "Commentary"
13) FRUITY.EVO, 0:01:39
"We'll Have a Fruity, Oaty Good Time" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz
14) DS6.EVO, 0:01:36
"Deleted Scene 6" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz - E-AC3, English, 2.0, 48khz, "Commentary"
15) DS9.EVO, 0:01:16
"Deleted Scene 9" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz - E-AC3, English, 2.0, 48khz, "Commentary"
16) DS2.EVO, 0:01:14
"Deleted Scene 2" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz - E-AC3, English, 2.0, 48khz, "Commentary"
17) DS1.EVO, 0:00:30
"Deleted Scene 1" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz - E-AC3, English, 2.0, 48khz, "Commentary"
18) DS7.EVO, 0:00:21
"Deleted Scene 7" - MPEG2, 480i (4:3) - E-AC3, English, 2.0, 48khz - E-AC3, English, 2.0, 48khz, "Commentary"
For each desired title, run `eac3to d:\ T)`, where “T” is the title number that you made a note of earlier, e.g. “1”. Hopefully the disc author named the streams sensibly, so you can easily tell which streams you want. You will want a video stream, at least one audio stream, and possibly subtitles. Multiple audio streams and subtitles (e.g. for commentaries) are possible, as are multiple video streams, but this is less common. Make a note of the stream numbers you will need for each title (e.g. “1) 3:”, “1) 6:”, “1) 13:”, etc.), and also the format of each audio stream (AC3 or EAC3).
Example stream list for Serenity's “MainMovie” title: EVO, 1 video track, 6 audio tracks, 28 subtitle tracks, 1:59:01 “MainMovie” 1: Joined EVO file 2: Chapters, 20 chapters with names 3: VC-1, 1080p24 /1.001 (16:9) with pulldown flags 4: E-AC3, English, 5.1 channels, 1536kbps, 48khz, dialnorm: -27dB, 25ms 5: E-AC3, French, 5.1 channels, 768kbps, 48khz, dialnorm: -27dB, 8ms 6: E-AC3, Italian, 5.1 channels, 768kbps, 48khz, dialnorm: -27dB, 7ms
"Italian"
7: E-AC3, German, 5.1 channels, 768kbps, 48khz, dialnorm: -27dB, 7ms 8: E-AC3, Spanish, 5.1 channels, 768kbps, 48khz, dialnorm: -27dB, 7ms 9: AC3, English, 2.0 channels, 192kbps, 48khz, dialnorm: -27dB
"Director Joss Whedon Commentary"
10: Subtitle, English, “SDH” 11: Subtitle, French 12: Subtitle, Italian, “Italian” 13: Subtitle, German 14: Subtitle, Spanish 15: Subtitle, Portuguese 16: Subtitle, Dutch, “Dutch” 17: Subtitle, Korean 18: Subtitle, Swedish, “Swedish” 19: Subtitle, Danish, “Danish” 20: Subtitle, Finnish, “Finnish” 21: Subtitle, Norwegian, “Norwegian” 22: Subtitle, French, “Forced” 23: Subtitle, Italian, “Italian Forced” 24: Subtitle, German, “Forced” 25: Subtitle, Spanish, “Forced” 26: Subtitle, English, “Commentary” 27: Subtitle, French, “Commentary” 28: Subtitle, Italian, “Italian Commentary” 29: Subtitle, German, “Commentary” 30: Subtitle, Spanish, “Commentary” 31: Subtitle, Portuguese, “Commentary” 32: Subtitle, Dutch, “Dutch Commentary” 33: Subtitle, Korean, “Commentary” 34: Subtitle, Swedish, “Swedish Commentary” 35: Subtitle, Danish, “Danish Commentary” 36: Subtitle, Finnish, “Finnish Commentary” 37: Subtitle, Norwegian, “Norwegian Commentary”
For each desired video stream in each desired title, run `eac3to d:\ T) S: “c:\rips\main-video.mkv”`, where “T” is the title number and “S” is the stream number, changing the “main-video” filename for each stream. This process merely extracts the video – no transcoding is performed; therefore the result is full-quality, but also very large (for example, Serenity's main title is 14GB).
For this section I am going to convert any EAC3 audio streams to AC3 because nothing likes playing EAC3. There is a quality loss issue with that conversion, but no one can really tell the difference, so what's the point in worrying? It's not as if we're converting to 96kbps MP3 or anything.
For each desired audio stream in each desired title, check the audio format for that stream that you noted earlier. If it is an AC3 stream, we can just extract it without converting it, so run `eac3to d:\ T) S: “c:\rips\main-audio.ac3”`. If it's an EAC3 stream, we have to convert it first, so run `eac3to d:\ T) S: “c:\rips\main-audio.ac3” -libav`. Obviously you should change the filename that you save these streams to so that they don't overwrite each other. Again, for both of these commands, “T” is the title number and “S” is the stream number.
Feel free to skip this section if you don’t want/need subtitles.
For each of the desired subtitle streams in each of the desired titles, run `eac3to d:\ T) S: “c:\rips\main-subtitles.sup”`, changing the output filename as necessary. Again, “T” is the title number and “S” is the stream number.
As I said in the “Preparation” section of this guide, it is possible to combine most of the above commands. The “getting a list of titles/streams” commands need to be run separately, as you have no idea which title and stream numbers you need otherwise, but everything after that can (and should, for the sake of speed) be run as a single command. For example:
`eac3to d:\ 1) 4: “c:\rips\main-video.mkv” 6: “c:\rips\main-audio.ac3” -libav 7: “c:\rips\commentary-audio.ac3” 10: “c:\rips\main-subtitles.sup” 11: “c:\rips\commentary-subtitles.sup”` (Wrapped for readability - enter all on one line normally)
This would extract a video stream @ #4 to “main-video.mkv”, an EAC3 audio stream @ #6 to “main-audio.ac3”, an AC3 audio stream @ #7 to “commentary-audio.ac”, a subtitles stream @ #10 to “main-subtitles.sip” and a second subtitles stream @ #11 to “commentary-subtitles.sup”.
Note that this only seems to work on a per-title basis. You can combine commands to extract different streams from one title into a single command, but each title's commands need to be run separately.
Again, skip this section if you aren’t using subtitles.
Subtitles are extracted as “.sup” files, which is a format that virtually nothing can understand. You have two choices. You can convert them to DVD-style “VobSub” files (.idx and .sub), which is fastest and easiest, but results in a pretty massive quality loss (DVD subtitles were never very pretty at their native resolution – imagine what they’re like when upscaled to HD…). Alternatively you can OCR them into a text file (.srt - SubRipper format), which gives the best quality, but takes longer and requires input from you to manually recognise each glyph it sees in the subtitle stream. Once it's built up a decent-sized database of letters it's not too bad, but it can occasionally make false matches, so you should ideally proof-read its output.
This method resizes the subpictures used on HD-DVDs to match those used on standard DVDs, then saves the result as a .idx/.sub combination. You lose a lot of quality and end up with pretty ugly subtitle images on-screen – especially when scaled up to 720p, but it's a fast and easy process. Load Subtitle Creator; go to “Tools → Manipulate Sup or VobSub”; click “Open Sub” and load your .sup file; click “save sub”, choose “.idx format” and save it; selecting the language (probably English).
This method uses OCR (Optical Character Recognition) to convert the HD-DVD subpicture images to a plain text file that can be rendered at any resolution you like with no loss in quality. It results in much better quality than the VobSub method, however it requires time and effort from yourself and if you don't proof-read the results, you can end up with errors in your subtitles.
Open SupRip and use the “Open…” button to load your .sup file. The general idea, here, is to get the large text box on the right to say the same as the image across the middle of the window. A letter outlined in green is one that the OCR engine has recognised; one in red is one that it has not recognised, and one in yellow is the currently selected letter. The currently selected letter will be repeated at the bottom of the window. Type that letter into the small text box on the bottom right, then click “OK”. Repeat for every unrecognised letter on that page, then click the “OCR” button on the left (alternatively you can go through each line of the subtitle file individually using the < and > buttons on the top left & right, but that will take forever). If at any point you notice that it's recognised a character incorrectly, click that letter in the big image across the middle, type the correct letter in the small text box and click “OK”, just as if you were telling it what that character is the first time. Once it has finished the subtitle stream, click the “SRT” tab at the top-left then click the “Save…” button to save it to a .srt file. Ideally you should proof-read the output in that tab before saving it, but that sounds like a lot of effort to me. That said, video stream transcoding is going to take ages, so you might as well come back and proof-read the subtitles while the video is transcoding. Additionally, SupRip seems to have trouble telling certain characters apart, no matter how many times you tell it what they are. “O” vs “C” and “ff” vs “ft” were problematic in Serenity.
Unless you're happy having a 15GB 1080p video stream lying around, you will need to transcode the video stream to something smaller. I generally go for 2-pass 4096kbps 720p H.264, which RipBot will do easily. Obviously this takes a VERY long time (Serenity's main title took 3 hours for the first pass, then a further 7 hours for the second pass, on a Core2Duo E6600 @ 2.4GHz), but it drops the filesize from 15GB to ~5GB, which is worth it, in my opinion. Repeat this for each video stream (note that RipBot can queue transcoding jobs, so you can just leave the PC for a while).
Open MKVMerge GUI (part of MKVToolnix). For each title, drag the relevant files (the .mkv video file(s), .ac3 audio file(s) and any .srt/.idx+.sub subtitle files). Set the options below the track list for each track, set the output filename then click “Start muxing”. Once it's finished, you will have a finished .mkv file that you should be able to play in VLC and other such players.