PDA

View Full Version : Vob direct to mp4/aac without crashing or seek issues?


creedo
31st December 2007, 13:10
I promise I read the faqs & used the search.

I wanna combine 8 DVDs. I saw it's possible to combine the various .VOB files in a dvd into a single VOB just using the dos copy /B command. So with each of my 8 dvd's, I combined VTS_01_1.VOB, VTS_01_2.VOB, etc. into 1 file. Seems to have worked... the resulting vob plays fine, is the correct length, seeks fine, etc.

So now I have eight 4GB VOBs. I want to combine them into a single mp4 file (h264/aac). I know, "why would you want to do that?!"... but humor me.

So copy /B on these eight vobs was dumb, cuz my resulting giant VOB apparently has 8 different bits of seek information. It still works, except for the length not showing up correctly. It keeps playing after it reaches the end of the seek bar on my media player.

I dunno if it's this seek issue or something else, but every attempt I've made to convert this giant VOB has failed.
What I've tried:

Super - produces an output that just doesn't play, no error.
Plus, it seems like every movie I've ever produced with super desyncs even tho I've put in the correct 29.97 fps.

YAMB - has trouble decoding the aac audio? I get a meaningless error (some programmery thing about init_field failed to intialize, whatever).

Open the VOB in virtualdubMod, where it reconstructs the missing index block (yay!) but if I try to encode to anything, even divx/mp3 - it just hangs, won't even start.

Open the VOB in dgindex, split it into and m2v and wav file, then try to remux them using muxman - zzzz it remuxes them into 4 separate split files to make it like a typical dvd?! And the audio is hosed. Also the WAV I get doesn't seem readable by anything (like virtualdub). I guess it's just raw aac. It won't play in winamp despite my winamp having an aac plugin. I can't seem to open it in anything to play with it.

Try to use the m2v and wav file in virtualdubMod - see above, it hates that wav.

Try converting the m2v into an avi with super and then worry about remuxing audio later - FAIL.

Try converting with megui - I follow the tutorial step by step, and it crashes with a meaningless error, I forget what already... was the first method I tried. Also I find megui clunky and uses lots of steps.

So is there a single program that isn't horribly clunky that can do this in a single pass and doesn't produce errors or garbage output? Maybe there's just something wrong with my PC. I can make mp4's fine out of other stuff, and they all play fine... I'm trying to use the latest x264 codec... but even then I have either audio desync issues or it gives errors, esp. if I try to save to an avi container (not that I really want to make an .avi, would prefer a proper .mp4).

Try to imagine how much fine I'm having when each of these attempts takes like a full day before I found out it failed =_=

buzzqw
31st December 2007, 16:17
just use dgindex and create the d2v and the ac3 audio file (remember that wav file can't be over 4gb or loose index)

do the avs script and then encode...

BHH

creedo
31st December 2007, 17:12
I think the 4 GB limit might be a problem, the wav for the giant .vob will be huge, maybe bigger than 4GB.

I also don't know how to use avisynth =_=
I guess I'll read the faq. But it sounds like the file's huge size will be a problem, it's 33 GB.

buzzqw
1st January 2008, 10:19
yes.. but your vob have ac3 or wav audio ?

also.. with avisynth you can do this

directshowsource("c:\my_big_vob.vob")


open this in virtualdub and the vob is at your hands

BHH

blizard
3rd January 2008, 03:47
Creedo you are asking for problem with such a large file size in VOB transcoded to MP4 container with H.264 video and AAC sound. If you take a look at your file system you will notice that even NTFS have problem with increasing fragmentation when file size grows. This result also in slower encoding as time goes by (=the longer you get in transcoding the longer time it will take to write pieces on hard disk where it is free space).

I don't question your reason to build a large 8 DVD movie into one single MP4 container. It is only very impractical as file system and hard disk isn't really design to handle super large sized files.

Could you use AVInaptic (http://forum.doom9.org/showthread.php?t=123076) and/or MediaInfo (http://mediainfo.sourceforge.net/en)to find out more info about each DVDs VOB file? As now we don't know if some DVD are NTSC or PAL/SECAM standard or all have the same standard? What kind of Aspect Ratio is in use and other information that might be different between those DVD might be useful to help you in your creation of a single file.

You could also try out AVIdemux (http://fixounet.free.fr/avidemux/) which both can join VOB (or any other container which is numbered in order file_1.mpg file_2.mpg etc), edit and make use of filters or only make use of copy mode. It might be that you would have better success if you change container to MPEG2 PS (A+V) in avidemux as that is compliant with VOB (for DVD). My TV-tuner create very large MPG (MPEG2) which I run in copy mode to reduce file size (after deleting commercials). In your case it is possible to reduce size from unnecessary container format as you might want to cut out AC3 (stereo) [might have both AC3 5.1 sound and AC3 stereo] or sub titles in languages you will not transcode in any way and that take up place on hard disk.

With AVIdemux you can also append file to a large file and maybe re-index time, if that is what you want, into a large file. Save that file in copy mode (=no encoding, just change of container) and process this new file with another encoder.

or

Next step would be to make transcoding as normal for each DVD and then use YAMB or MP4box.exe from YAMB to join all MP4 into one single chain. In between those transcoding I would clean up and make use of Windows Disk defragmenter to keep fragmentation down. If you have two or more hard disk and set up partition for each in a convenient way you could do this rather fast.

There are different option here on how to do this, but I believe that the most easiest would be to transcode each DVD to desired MP4 and then join them. YAMB offer tools which for my part work great both to split and join video/audio. MEncoder do also have tools to do this (take a look at buzzqw AutoMen where you can control some setting from GUI for MEncoder and the rest from within a simple text file called bat - created when you start AutoMen transcoding).

_____
YAMB isn't decoding anything. It is only handling MP4 container (MP4box.exe) information for what kind of file that is stored and some tagging for player to read.

_____
What player are you using?

ilovejedd
3rd January 2008, 05:06
Wookie... First, work with the original VOB files (or the copy /b per movie VOBs). Open the necessary VOB files with DGIndex, set Audio >> Output Method to Demux AC3 Track to WAV, make sure the Use Full Paths option is checked and save project. Now copy the .d2v and .wav files to the same folder as your Avisynth script.

As for the actual script, below is the simplest version you can use:


loadplugin("path\to\dgdecode.dll")

video1 = mpeg2source("movie1.d2v")
audio1 = wavsource("audio1.wav")

video2 = mpeg2source("movie2.d2v")
audio2 = wavsource("audio2.wav")

video3 = mpeg2source("movie3.d2v")
audio3 = wavsource("audio3.wav")

video4 = mpeg2source("movie4.d2v")
audio4 = wavsource("audio4.wav")

video5 = mpeg2source("movie5.d2v")
audio5 = wavsource("audio5.wav")

video6 = mpeg2source("movie6.d2v")
audio6 = wavsource("audio6.wav")

video7 = mpeg2source("movie7.d2v")
audio7 = wavsource("audio7.wav")

video8 = mpeg2source("movie8.d2v")
audio8 = wavsource("audio8.wav")

audiodub(video1,audio1) ++ audiodub(video2,audio2) ++ audiodub(video3,audio3) ++ audiodub(video4,audio4) ++ audiodub(video5,audio5) ++ audiodub(video6,audio6) ++ audiodub(video7,audio7) ++ audiodub(video8,audio8)


movie1.d2v and audio1.wav, etc are the file names of the saved project/audio tracks from DGIndex so just edit the script as necessary.

Basically, just open the .avs script with MeGUI or something and convert. You might also want to add some filtering, etc to the script prior to encoding. Anyway, good luck on your endeavor.

Oh yeah, the Avisynth script is basically a simple text file whose extension has been changed to .avs

creedo
3rd January 2008, 05:06
Well, I have good news.

I successfully encoded my 33 GB VOB file into a 4.4 GB mp4 file. It seeks correctly.

I followed buzz's advice, which was a lot like the megui tutorial... make a d2v, then make an avisynth script, then choose audio compression and queue that. Where megui crashed for me was using the one-step encoder or whatever it's called. This time I just manually queued audio, then video. It took over 2 days to make the mp4 video but it worked.


Now for the audio. I think I ran into the problem buzz mentioned. Megui made a 9 GB wav file, but despite the .wav extension I think it's pure AAC because winamp has trouble playing it. But it loaded fine in Cooledit.

The problem is that it's 2 hours, 20 minutes. It's supposed to be 14+ hours. Megui's log had an error, something like "neroaacencode.exe not found". I don't know how to make the correct 14 hour wav/aac file. I'd be happy to make it into mp3 also. Anything, as long as it's continuous 14 hours and I can later mux it with my mp4 easily.

Any ideas?

PS: blizard, thanks also for your help. I would have tried your idea next I think, since I've made mp4s out of a single DVD without problems... I just was lazy and hoped to avoid the extra step of converting then joining. But it's caused so many problems that next time that's exactly what I'll do, probably.

Sharktooth
4th January 2008, 02:32
:readguid: you have to manually get the nero encoder from the nero website.... etc, etc...

creedo
5th January 2008, 01:48
erf, yeah, sorry not to have searched that.

So I finally have my mp4, and it's pretty amazing... nice quality, 720p, 14+ hours... only 4.8 GB. The sound desyncs by a very small amount towards the end but I cbf to redo it.

Thanks everyone for the help.