View Full Version : dgpulldown use
I wanted to convert a pal interlaced movie to ntsc wide screen so I thought I would give dgpulldown a try. Per the guide, I used tmpgenc to change the movie from interlace to progressive and change the aspect ratio to 720 x 480 to conform to the ntsc mpeg standard. This took a greater than 3 hours to do. Am going about this in the wrong manner? I was hoping for a rather easy and quick fix. If the source is interlace and at wrong AR then a re-encode would take a long (if not less time). I could have just created my d2v and re-encoded the movie. Wouldn't that work, or would I still have audio and video sync problems? Thanks for any help. :D
Having completed almost the entire task I would have to say the results were very good using dgpulldown. The audio and and video was is sync throughout the entire movie (playback of the resultant vobs on the computer). However when I tried to author it using tmpgAuthor, I recived the following error message "GOP is too long".
So I then have two questions. 1) Can I ignore this error and burn a dvd
disc that will play in my standall player? and 2) did I do something wrong? I was just looking to do a frame rate conversion in a fast and easy manner while keeping the audio and video in sync and without having to do a reencode. :confused:
Again thanks
Where is this guide that you followed? When you encode the MPEG2 you must choose NTSC DVD compliant parameters.
The DGPulldown process is intended to eliminate the need to modify the audio. It doesn't remove the need for (sometimes lengthy) re-encoding of the video.
The guide I used was written by you. The link is here:
http://neuron2.net/dgpulldown/dgpulldown.html
I think you misunderstood what I was saying. I never modified the audio. The only thing I tried to do was to deinterlace and resize the video. I saved the tmpgenc template that I used and will paste it below. After using tmpgenc I used gspot to make sure that the video was still at 25fps and at the right size. I might have done something wrong at this step in tmpgenc. Perhaps there is an easier way to deinterlace and resize using an avs script. The deinterlace and resizing took the most time in the whole process(> 3 Hrs). Assuming everything up till this point was done correctly, I dont know why I'd get the error "GOP is to long" when trying to author.
The resultant m2v file after running it thru gspot told me that it is ntsc dvd complient and the movie plays wonderfully in mplayer classic.
Thanks for the reply
and here is the template I used in tmpgenc
object TMPEGConfigFile
MPEG.Text = '$$DVD_NTSC'
MPEG.WizardCategoryName = '$$HIDE'
MPEG.WizardTargetMedia = MPEGConfig_TargetMediaType_Unknown
MPEG.WizardAutoCalcVideoBitRate = False
MPEG.WizardAutoChooseList.EnableVideoSize = False
MPEG.WizardAutoChooseList.VideoSize = <>
MPEG.WizardAutoChooseList.EnableVideoGOP = False
MPEG.WizardAutoChooseList.VideoGOP = <>
MPEG.OutputStreamType = MPEG_OutputStreamType_VideoOnly
MPEG.OutputStreamType_ReadOnly = False
MPEG.Video.StreamType = MPEGVideoEncoder_StreamType_MPEG2
MPEG.Video.StreamType_ReadOnly = True
MPEG.Video.Width = 720
MPEG.Video.Width_ReadOnly = True
MPEG.Video.Height = 480
MPEG.Video.Height_ReadOnly = True
MPEG.Video.YUVFormat = 1
MPEG.Video.YUVFormat_ReadOnly = True
MPEG.Video.DC_prec = 1
MPEG.Video.DC_prec_ReadOnly = False
MPEG.Video.VideoEncodeMode = MPEGVideoEncoder_VideoEncodeMode_Progressive
MPEG.Video.VideoEncodeMode_ReadOnly = False
MPEG.Video.FrameRate = 3
MPEG.Video.FrameRate_ReadOnly = False
MPEG.Video.AspectRatio = 3
MPEG.Video.AspectRatio_ReadOnly = False
MPEG.Video.RateControlMode = MPEGVideoEncoder_RateControlMode_CQ
MPEG.Video.RateControlMode_ReadOnly = False
MPEG.Video.MaxBitRate = 8000000
MPEG.Video.MaxBitRate_ReadOnly = False
MPEG.Video.MinBitRate = 2000000
MPEG.Video.MinBitRate_ReadOnly = False
MPEG.Video.MinAvgBitRate = 0
MPEG.Video.MinAvgBitRate_ReadOnly = False
MPEG.Video.CBR_BitRate = 7000000
MPEG.Video.VBR_MultipassVBRAlgorithm = MPEGVideoEncoder_MultipassVBRAlgorithm_MultipassCQ
MPEG.Video.VBR_AvgBitRate = 7000000
MPEG.Video.VBR_MaxBitRate = 8000000
MPEG.Video.VBR_MinBitRate = 2000000
MPEG.Video.VBR_MaxPassCount = 2
MPEG.Video.VBR_EnablePadding = False
MPEG.Video.MVBR_MaxBitRate = 8000000
MPEG.Video.MVBR_MinBitRate = 2000000
MPEG.Video.MVBR_EnablePadding = False
MPEG.Video.AVBR_MaxBitRate = 8000000
MPEG.Video.AVBR_MinBitRate = 2000000
MPEG.Video.AVBR_EnablePadding = False
MPEG.Video.CQ_MaxBitRate = 8000000
MPEG.Video.CQ_MinBitRate = 2000000
MPEG.Video.CQ_EnablePadding = False
MPEG.Video.VBVBufferSize = 229376
MPEG.Video.VBVBufferSize_ReadOnly = True
MPEG.Video.GOP_SeqHeaderInterval = 1
MPEG.Video.GOP_SeqHeaderInterval_ReadOnly = True
MPEG.Video.GOP_I_FrameCount = 1
MPEG.Video.GOP_I_FrameCount_ReadOnly = True
MPEG.Video.GOP_P_FrameCount = 5
MPEG.Video.GOP_P_FrameCount_ReadOnly = True
MPEG.Video.GOP_B_FrameCount = 2
MPEG.Video.GOP_B_FrameCount_ReadOnly = True
MPEG.Video.GOP_BitStreamForEdit = True
MPEG.Video.GOP_BitStreamForEdit_ReadOnly = False
MPEG.Video.GOP_MaxFrameCount = 18
MPEG.Video.GOP_MaxFrameCount_ReadOnly = True
MPEG.Video.QuantizeMatrix_Intra_ReadOnly = False
MPEG.Video.QuantizeMatrix_NonIntra_ReadOnly = False
MPEG.Video.Profile = 4
MPEG.Video.Profile_ReadOnly = True
MPEG.Video.Level = 8
MPEG.Video.Level_ReadOnly = True
MPEG.Video.VideoFormat = 2
MPEG.Video.VideoFormat_ReadOnly = True
MPEG.Video.DisplayWidth = 0
MPEG.Video.DisplayWidth_ReadOnly = False
MPEG.Video.DisplayHeight = 0
MPEG.Video.DisplayHeight_ReadOnly = False
MPEG.Video.MotionSearchSpeed = MPEGVideoEncoder_MotionSearchSpeed_MotionEstimate
MPEG.Video.MotionSearch_AlwaysHalfPel = False
MPEG.Video.UseFloatDCT = False
MPEG.Video.QuantizeMode = False
MPEG.Video.QuantizeModeVal_Intra = 35
MPEG.Video.QuantizeModeVal_NonIntra = 35
MPEG.Video.YUVBasicYCbCr = False
MPEG.Video.QuantizeMatrix_Intra = {
081013161A1B1D22101016181B1D222513161A1B1D22222616161A1B1D222528
161A1B1D202328301A1B1D202328303A1A1B1D22262E38451B1D23262E384553}
MPEG.Video.QuantizeMatrix_NonIntra = {
1011121314151617111213141516171812131415161718191314151617181A1B
14151617191A1B1C151617181A1B1C1E1617181A1B1C1E1F1718191B1C1E1F21}
MPEG.Video.VBR_Quality_P = 0.000000000000000000
MPEG.Video.VBR_Quality_B = 20.000000000000000000
MPEG.Video.MVBR_Quality_P = 0.000000000000000000
MPEG.Video.MVBR_Quality_B = 20.000000000000000000
MPEG.Video.AVBR_Quality = 50.000000000000000000
MPEG.Video.CQ_Quality = 65.000000000000000000
MPEG.Video.CQ_Quality_P = 0.000000000000000000
MPEG.Video.CQ_Quality_B = 20.000000000000000000
MPEG.Audio.StreamType = MPEGAudioEncoder_StreamType_MPEG1_Layer2
MPEG.Audio.StreamType_ReadOnly = True
MPEG.Audio.SamplingFrequency = 48000
MPEG.Audio.SamplingFrequency_ReadOnly = True
MPEG.Audio.ChannelMode = 0
MPEG.Audio.ChannelMode_ReadOnly = False
MPEG.Audio.CantUseMono = True
MPEG.Audio.BitRate = 384000
MPEG.Audio.BitRate_ReadOnly = False
MPEG.Audio.CalcCRC = True
MPEG.Audio.CalcCRC_ReadOnly = True
MPEG.Audio.OriginalFlag = False
MPEG.Audio.OriginalFlag_ReadOnly = False
MPEG.Audio.CopyrightFlag = False
MPEG.Audio.CopyrightFlag_ReadOnly = False
MPEG.Audio.PrivateFlag = False
MPEG.Audio.PrivateFlag_ReadOnly = False
MPEG.Audio.EmphasisType = 0
MPEG.Audio.EmphasisType_ReadOnly = False
MPEG.System.StreamType = MPEGSystemEncoder_StreamType_MPEG2_Program
MPEG.System.StreamType_ReadOnly = True
MPEG.System.EnableCommentText = False
end
midnightsun
2nd May 2005, 00:17
I see your GOP setting is 1/5/2 (I/P/B) yielding a GOP length of 18 at 25f/s. Running this mpeg through dgpulldown will give a 29.97f/s file where adjacient I frames are farther than 18 frames apart, thus becoming non-compliant.
[If I'm not mistaken GOP length is calculated on displayed frames as opposed to encoded frames, or so mpucoder once said on these forums]
So set up your GOP as 1/4/2, max interval between I frames=15 and the authoring software should not complain anymore
Originally posted by sbt5
The guide I used was written by you. LOL :)
midnightsun nailed it. I need to add the GOP length issue to the "guide". Thanks for bringing that to light.
midnightsun
2nd May 2005, 08:46
no prob :cool:
I was not sure myself how GOP length was calculated when pulldown comes into play (I am a PAL guy so I don't usually deal with pulldown), but since I read mpucoder's post a while ago, I took his word on that.
Thanks neuron2 and midnightsun for replying to this thread. But forgive me for asking so many questions I am so what of a newbie and was just trying to follow the guide. I dont know what GOP is and I am just starting to understand how the dropdown process works. But really this is what I want to do and if either one of you could clear answer:
Since there is so much content in pal format I would like an easy way to convert pal => ntsc dvd format. dgpulldown would be an exelent tool to do this except that 1) i must resize to 720x480 and 2) i must have a progessive m2v. If I dont have those 2 requirements I must spend hours using an tmpgenc just to deinterlace and resize. All other methods that Ive tried always gave me sync problems. Is there quicker way to deinterlace and resize the process with dgpulldown without resorting to a reencode with tmpgenc. If the answer is no, can I just take the pal vob, create my avs script and encode with any mpeg2 encoder. I hope that I made my question is clear. Others might be trying to do the same thing. Thanks
NTSC DVD requires you to resize; you can't avoid that. Pulldown requires progressive input; so you can't avoid deinterlacing if your source is interlaced. That leaves just the possibility that some other process may be faster than TMPGEnc at resizing and deinterlacing. I would do it entirely in Avisynth, using LeakKernelDeint to do the deinterlacing, and using crop and LanczosResize to do the resizing. Obviously, you can't avoid having to re-encode the resulting stream with an MPEG2 encoder. TMPGEnc is not the fastest one. You could save some time by using a faster one, such as CCE.
mkla2000
6th May 2005, 20:37
I tried the following these steps (Axterix & Obelix Contre Cesar - R2). I used a short script to resize and fed it into CCE. The resulting M2V was then fed into gspulldown to get the 29.97 M2V. However, the audio is not in sync with the video....(I tried BSweet to change the framerate of the audio to 29.97, but the result was even worse).
Sorry if this has been answered before, but could anyone tell me what I am doing wrong?
Originally posted by mkla2000
I tried the following these steps (Axterix & Obelix Contre Cesar - R2). I used a short script to resize and fed it into CCE. The resulting M2V was then fed into gspulldown to get the 29.97 M2V. Sorry, I never heard of "gspulldown".
However, the audio is not in sync with the video....(I tried BSweet to change the framerate of the audio to 29.97, but the result was even worse).
Sorry if this has been answered before, but could anyone tell me what I am doing wrong? When you use DGPulldown to convert 25fps to 29.97fps, you should not alter the audio! The video and the audio should have the same playing duration without touching the audio. That's the whole reason for DGPulldown to exist! When you did it without the audio adjustment, how big was the desync and did it stay constant? Did you take into account the delay reported by DGIndex (or equivalent)?
mkla2000
6th May 2005, 22:56
sorry for the mistype on dgpulldown :p
I think I figured what I was doing wrong... I was reading a couple of different PAL to NTSC guides and I just mixed them up together (it's the first time I've tried to convert a PAL to NTSC disc) - I "corrected" the framerate under AVISYNTH and then used dgpulldown again... I will start from scratch and see what happens (i.e. just convert the framesize, encode in CCE, and then use dgpulldown).
Thanks!
OK, good plan. Write again if you run into any problems.
mkla2000
7th May 2005, 16:44
Went home and checked my avisynth script.
the only thing I am doing there is resizing the PAL to NTSC (720,480). I didn't do any change in framerate in avisynth.
I fed the video into CCE and recoded. then used dgpulldown (25 -> 29.97) and used that to reauthor with the m2v file that I got out of DVD2AVI... no dice...
the sync is getting worse as the movie progresses (audio is faster than video).
Any suggestions will be greatly appreciated.
Originally posted by mkla2000
used that to reauthor with the m2v file that I got out of DVD2AVI You're totally confusing me!
Please give a description of your current complete process with all scripts.
mkla2000
9th May 2005, 17:42
sorry if I was not being clear... My computer crashed over the weekend, so bear with me...
movie: Axterix and Obelix Contre Cesar (R2)
DVD2AVI indicates 25FPS, Interlaced
AVISYNTH script:
moviesource="E:/work/1.d2v"
loadpluggin("E:/AVISYNTH/decomb.dll")
aviSource(moviesource)
bilinearResize(720,480)
resampleaudio(44100)
CCE: loaded AVISYNTH script, and recoded
Are you using DVD2AVI to make the D2V? Which version?
You are opening a D2V with AVISource()?! That's a neat trick. How did you manage that? I've never seen that before.
Why are you resampling the audio and how did you source it into your AVS script?
And where is the DGPulldown application?
What DVD authoring tool did you use?
This hardly looks like the complete and accurate description of your process that I asked for.
DGPulldown needs to be the last operation on an M2V before it goes into your DVD authoring application. That means you should have demuxed audio and video that are remuxed to DVD VOBs by the DVD authoring program.
mkla2000
9th May 2005, 19:37
apologies....
it should have said mpegsource(moviesource)
using DVD2AVI 1.76
used dgpulldown on the output from CCE
left the AC3 file (demuxed by DVD2AVI) alone
resampling audio - it's something that I have always done - I think it had to do with cce needing a dummy audio or something like that to perform correctly. Audio is not processed by CCE.
using DVD Studio (Mac software), fed both dgpulldown M2V and AC3 - audio is out of sync (progressively more so)
again, excuse my poor responses and clarity.
Sorry, never heard of "mpegsource" and I have no Mac knowledge. Can't see how I can help you.
The only thing I can suggest is to determine the playing times of the M2V and the AC3 and see if they differ. If not, then your DVD authoring tool is at fault.
mkla2000
9th May 2005, 23:40
thanks - will try
I tried again to do the pal -> ntsc with a small clip from a movie. The source again was interlaced, so I had to deinterlace and size the picture. This time I changed the GOP in TMPGenc to 1/4/2 as was suggested. After doing the pulldown with dgpulldown, I first tried to mux the m2v and ac3 with muxman (that failed, ???), however TMPGenc Author took it without complaining this time.
Not to keep this thread going on for ever, but I would like to understand more about the GOP (I think it stands for group of pictures - I'm certaiinly not an expert). Could you recommend a good site that will explain this in more or less layman terms and perhaps some of the more advanced options of mpeg encoders.
Nice piece of software thanks for putting it out there.:D
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.