Hi,
I have a DVD made by a colleague but I don't know which tool he has used but the encoding is very bad, not in term of video quality (more than bad but due to the source) but due to the MPEG encoding.
If I try to rip it with AVIdemux, I get regularly some video and audio freeze.
Original VOB: https://share.orange.fr/#CGVqdSn5GK35cfa6f18b
Example of freeze (at 17 s and after): https://share.orange.fr/#D5iWeqTRAE35cfa6f325
Could you help me?
I have tried virtualdub, VLC: nothing to correct the MPEG file.
Thanks for your help
Rmanal
Try StreamFab Downloader and download from Netflix, Amazon, Youtube! Or Try DVDFab and copy Blu-rays! or rip iTunes movies!
+ Reply to Thread
Results 1 to 10 of 10
Thread
-
-
If your VOB is smaller than 500mb, you can post directly to this forum. If you want to make a smaller sample, here is how to use DGIndwex ro make and post it https://forum.videohelp.com/threads/359295-Record-without-interlacing?p=2272359&viewfu...=1#post2272359. --so that readers don't have to navigate incredibly slow foreign-language host sites that force users to search for invisible download controls:
Offhand, from the streaming FLV on the host site, I don't see much hope. Better encoding won't "improve" an ugly source. Better encoding simply shows an ugly video as-is. Also, MPEG is lossy encoding. Lossy encoding loses a certain amount of data from the original source. After that data is lost, it can't be recovered.Last edited by LMotlow; 26th Nov 2017 at 07:25.
- My sister Ann's brother -
After fixing the timecode breaks with MPEG Streamclip, the fixed file plays without freezing and converts fine on my side.
Last edited by Case; 26th Nov 2017 at 14:46.
-
Try VOB2MPG with the original VOB set (including IFO files). Programs can usually handle MPG better than VOB. That might be enough for AviDemux to handle the video properly.
And you need to deinterlace your video before encoding progressive. Or encode interlaced so the player can deinterlace at playback. -
The attached "Li'l Better" mp4 plays a li'l better.
Sample frames below: original (left image) -vs- Li'l Better (right image):
But still looks awful. Garbage In = garbage out.- My sister Ann's brother -
Hi all
LMotlow: seems very better
How have you done that? Could you explain to a noob?
Thx a lot for your support
Rmanal -
I used Avisynth for the heavy work, then applied Virtualdub's ColorMill to the Avistynth script output for levels and color to boost midtones and lower the darkest blacks.
First thing I did was open the VOB in Virtualdub and save the audio track as a resampled WAV file. Next, I made a d2v project file from the VOB with DGIndex. Then I ran the following script, which processes only the brighter part of the VOB sample (the entire VOB takes too long). I would process the darker parts separately and increase the "enhance" value of the ContrastMask for darker parts.
Code:Import("Drive:\Avisynth\plugins\FixRipsP2.avs") Import("Drive:\Avisynth\plugins\RemoveDirtMC.avs") vid=MPEG2Source("Drive:\path\VTS_01_2.d2v") aud=WavSource("Drive:\path\VTS_01_2.wav") AudioDub(vid,aud) Trim(3093,3974) ContrastMask(6.0) ColorYUV(Cont_y=20,off_y=-10,off_v=-4,off_u=-3) SmoothLevels(16,1.0,255,16,235,protect=6) Crop(18,0,-20,-12,true).AddBorders(10,4,12,8) AssumeTFF() SeparateFields() RemoveDirtMC(40,false) FixRipsP2() TemporalDegrain(SAD1=100, SAD2=100, Sigma=4) AddGrainC(2.5,2.5) Weave() ### ----------------------------------------- ### ----- to RGB for VirtualDub filters ----- ConvertToRGB32(interlaced=true,matrix="Rec601") return last
Code:# ################ FixRipsP2 function, modified from poisondeathray median filter ###################################### # https://forum.videohelp.com/threads/343296-Transfer-of-real-bad-tape-to-pc-and-restore?p=2139402&viewfull=1#post2139402 # # required support plugins: # - RemoveGrain package or RgTools.dll # - DePan (with DepanEstimate & DePanInterleave) # - MvTools # - MaskTools # # ########################### for progressive video or SeparateFields() ################################################ function FixRipsP2(clip a) { a clense(reduceflicker=false).merge(last,0.5).clense(reduceflicker=false) mot=removegrain(11,0).removegrain(20,0).DepanEstimate(range=2) take2=a.depaninterleave(mot,prev=2,next=2,subpixel=2) clean1=take2.TMedian2().selectevery(5,2) sup1 = clean1.minblur(1).removegrain(11,0).removegrain(11,0) \ .mt_lutxy(clean1,"x 1 + y < x 2 + x 1 - y > x 2 - y ? ?",U=2,V=2) \ .msuper(pel=2,sharp=0) sup2 = a.msuper(pel=2,levels=1,sharp=2) bv22=sup1.manalyse(isb=true, truemotion=false,global=true,delta=2,blksize=16,overlap=8,search=5,searchparam=4,DCT=5) bv21=sup1.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=16,overlap=8,search=5,searchparam=4,DCT=5) fv21=sup1.manalyse(isb=false,truemotion=false,global=true,delta=1,blksize=16,overlap=8,search=5,searchparam=4,DCT=5) fv22=sup1.manalyse(isb=false,truemotion=false,global=true,delta=2,blksize=16,overlap=8,search=5,searchparam=4,DCT=5) interleave(a.mcompensate(sup2,fv22),a.mcompensate(sup2,fv21),a,a.mcompensate(sup2,bv21),a.mcompensate(sup2,bv22)) TMedian2().selectevery(5,2) sup3 = last.msuper(pel=2,sharp=2) bv33=sup3.manalyse(isb=true, truemotion=false,global=true,delta=3,blksize=8,overlap=4,search=5,searchparam=4,DCT=5) bv32=sup3.manalyse(isb=true, truemotion=false,global=true,delta=2,blksize=8,overlap=4,search=5,searchparam=4,DCT=5) bv31=sup3.manalyse(isb=true, truemotion=false,global=true,delta=1,blksize=8,overlap=4,search=5,searchparam=4,DCT=5) fv31=sup3.manalyse(isb=false,truemotion=false,global=true,delta=1,blksize=8,overlap=4,search=5,searchparam=4,DCT=5) fv32=sup3.manalyse(isb=false,truemotion=false,global=true,delta=2,blksize=8,overlap=4,search=5,searchparam=4,DCT=5) fv33=sup3.manalyse(isb=false,truemotion=false,global=true,delta=3,blksize=8,overlap=4,search=5,searchparam=4,DCT=5) last.mdegrain3(sup3,bv31,fv31,bv32,fv32,bv33,fv33,thSAD=499) interleave() return last } function MinBlur(clip clp, int r, int "uv") { uv = default(uv,3) uv2 = (uv==2) ? 1 : uv rg4 = (uv==3) ? 4 : -1 rg11 = (uv==3) ? 11 : -1 rg20 = (uv==3) ? 20 : -1 medf = (uv==3) ? 1 : -200 RG11D = (r==0) ? mt_makediff(clp,clp.sbr(),U=uv2,V=uv2) \ : (r==1) ? mt_makediff(clp,clp.removegrain(11,rg11),U=uv2,V=uv2) \ : (r==2) ? mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20),U=uv2,V=uv2) \ : mt_makediff(clp,clp.removegrain(11,rg11).removegrain(20,rg20).removegrain(20,rg20),U=uv2,V=uv2) RG4D = (r<=1) ? mt_makediff(clp,clp.removegrain(4,rg4),U=uv2,V=uv2) \ : (r==2) ? mt_makediff(clp,clp.medianblur(2,2*medf,2*medf),U=uv2,V=uv2) \ : mt_makediff(clp,clp.medianblur(3,3*medf,3*medf),U=uv2,V=uv2) DD = mt_lutxy(RG11D,RG4D,"x 128 - y 128 - * 0 < 128 x 128 - abs y 128 - abs < x y ? ?",U=uv2,V=uv2) clp.mt_makediff(DD,U=uv,V=uv) return(last) } # median of 5 clips from helpers.avs by G-force function Median2(clip "input_1", clip "input_2", clip "input_3", clip "input_4", clip "input_5", string "chroma") { chroma = default(chroma,"process") #default is "process". Alternates: "copy first" or "copy second" #MEDIAN(i1,i3,i5) Interleave(input_1,input_3,input_5) chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true) m1 = selectevery(3,1) #MAX(MIN(i1,i3,i5),i2) m2 = input_1.MT_Logic(input_3,"min",chroma=chroma).MT_Logic(input_5,"min",chroma=chroma).MT_Logic(input_2,"max",chroma=chroma) #MIN(MAX(i1,i3,i5),i4) m3 = input_1.MT_Logic(input_3,"max",chroma=chroma).MT_Logic(input_5,"max",chroma=chroma).MT_Logic(input_4,"min",chroma=chroma) Interleave(m1,m2,m3) chroma == "process" ? Clense(reduceflicker=false) : Clense(reduceflicker=false,grey=true) selectevery(3,1) chroma == "copy first" ? last.MergeChroma(input_1) : chroma == "copy second" ? last.MergeChroma(input_2) : last Return(last) } function TMedian2(clip c) { Median2(c.selectevery(1,-2), c.selectevery(1,-1), c, c.selectevery(1,1), c.selectevery(1,2) ) }
Last edited by LMotlow; 27th Nov 2017 at 12:07. Reason: I swear these typos are created after posting. Bigley.
- My sister Ann's brother -
Your expertise is too far from my knowledge
Thank you very much, If I have time, I will try -
The first Avisynth scirpt shown near the top of post #7 is a fairly typical script that imports some filter plugins, opens a video for filtering, and executes some Avisynth filter plugins. The script is opened in VirtualDub and saved as a new lossless AVI using VirtualDub controls. The Avisynth script at the bottom of post #7 was not designed by me (it's 'wsy too complicated!) but was written by Avisynth developers. The script's name is FixRipsP2. It can be copied and pasted into a text file and saved as an avisynth plugin. It's a filter executed by the shorter script.
Yes, Avisynth has a learning curve but it's manageable. It far outpaces VirtualDub or video editors for cleanup work. Most users learn it by following forum threads, looking at the way sample scripts are used, reading forum articles on what the filters are designed to do, and following documentation that comes with the plugins.- My sister Ann's brother -
For instance handbarke works perfectly, without correction.
Thx for that
Similar Threads
-
VOB File - DVD Output
By redmenhoops in forum DVD RippingReplies: 21Last Post: 17th Sep 2017, 03:01 -
app to convert from vob dvd file set
By iliketoeat2014 in forum Video ConversionReplies: 3Last Post: 4th Oct 2014, 09:31 -
Cannot demux DVD, VOB file has no cells.
By architectofpain in forum Authoring (DVD)Replies: 10Last Post: 14th Apr 2014, 02:15 -
Converting from a 'dvd shrink 3.2' VOB file to an mp4 file
By misstimtam in forum Video ConversionReplies: 6Last Post: 14th Jan 2014, 15:58 -
Rip Newer DVD to 1 Big VOB file?
By hamood_d10 in forum DVD RippingReplies: 34Last Post: 8th Jan 2013, 17:16