I captured from VHS to mpeg2 using an August VGB100. The capture works well in general, but for one particular VHS, the resulting video plays too fast. It was a previous capture from film to VHS, so I am not sure where the speedup occurred, but the footage pans back & forth too fast.
I understand that some VHS players may have the ability to slow down playback - I can try to pick up an old one of those.
There is no audio to worry about. Is there also a way to re-encode the mpeg to slow down playback without loss of quality?
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 30 of 45
Thread
-
Last edited by tns1; 24th Jul 2014 at 13:34.
-
For clarification, are you saying the VHS plays too fast before capturing, or only the capture is sped up? Also what kind of "film" are you talking about, feature film, 8mm home movie...?
Most likely your VHS was recorded at a speed your current player can't handle. -
Some type of old 16mm film was transferred to VHS some years ago. The film no longer exists, so I have no way of knowing if the original was too fast. What I do know is the VHS playback is too fast, and the captured mpeg seems even faster. You get dizzy watching it. I'd like to create a capture that is maybe twice as slow as what I have. If I can get there just by re-encoding the capture I have, that would be the quickest way. VirtualDub or other method?
-
I think you'll find that 16mm film usually had a framerate of either 24fps or 18(?)fps if there was no sound. When it's transferred to video the film projector is often sped up to run the film through at 25fps to make it easier to film with a video camera also running at 25fps. You may be able to correct the speed after capture, but whatever software you use will be making the additional frames needed from what's already there, so you may find that the resulting video is rather jerky.
I'm sure that others with FAR more experience in this area will probably jump in at some point.
Good Luck!
Edit: Just noticed that you're in the USA, so my framerates here in the UK are almost certainly different to the ones you're using there, but the principle is probably the same.Last edited by TimA-C; 25th Jul 2014 at 05:56. Reason: Regional variations!
-
NTSC VHS only comes at one speed: 59.94 fields per second. If it was any different it would not display properly on TV and no capture card could capture it. If your video is too fast then it happened when the film was telecined, Ie, the film projector was sped up to match the video camera's frame rate. You can slow it down with the right software but it will get a little jerky.
-
Is VirtualDub one of the SW that can slow it down? I have it loaded for a different purpose, but didn't consider that it might be able to do that.
-
You can try with DGPulldown, since you said there's no audio to worry about. I'll assume it's running at progressive 29.97fps, no telecine. That might be incorrect though (MediaInfo will tell you). But if true, if there's audio, even silent audio, you'll have to demux. Try first opening the MPG in DGIndex and set it for 19.98->29.97 and see if that works to slow it considerably. If it complains about not being an elementary stream you'll have to demux (DGIndex, File->Save Project and Demux Video), followed by running the resulting M2V through DGPulldown as described.
That won't reencode the video so you'll get the same quality effectively slowed to 20fps. If it works but it's still too fast for you, you'll have to reencode. If it makes a mess and you see lots of interlacing then it's telecined and will also have to be properly filtered and reencoded.
A short ten-second sample will help decide what you have. -
It may not be the best but yes, you can use VirtualDub to slow the video. Use the Video -> Frame Rate... dialog.
If you upload a short segment with moderate motion I (as well as others, probably) will take a look at it and give you suggestions. Also, what is your plan for the video? Make a new DVD? Just a video file to watch on the computer or standalone media player?Last edited by jagabo; 26th Jul 2014 at 19:57.
-
I want to preserve it in a form that can be played on a standard DVD player , as well as a file on a pc. The quality of my mpeg2 capture is fine except for the speed. The video is less than 10min duration, so size is not a concern.
-
manono,
Attached is a short clip of the unprocessed mpg capture. By watching the people in the video, I can see now that most of 'panning too fast' problem I was complaining about is really due to the original cameraman swinging the camera back and forth too quickly. Parts of the video are fine, but parts pan by a little too quickly.
I did exactly what you suggested (demux, then 19.98->29.97), and was able to slow down the playback to reasonable levels. I don't see much if any loss in quality, but as several suggested, it is not as smooth as I would like. Some of the jerkiness seems like it may be from the person holding the camera, but also frame-to-frame misalignment of the film when it was captured to VHS. It seems like there should be digital methods to correct for these.
BTW, how do I convert from d2v back to mpg? -
VirtualDub isn't really the tool for this but if you wanted to do it there:
1) Open the MPG file.
2) Add the Deinterlace filter, Yadif, double frame rate, top field first.
3) Add the Interlace filter, Progressive Frames, Even field first.
4) Go to Video -> Frame Rate...
5) In the Source Rate Adjustment section enable Change Frame Rate To, set the frame rate you think the source was, say 18 fps.
6) In the Frame Rate Conversion section enable Convert To FPS and set the rate to 29.97.
Encode with those settings with a codec that supports interlaced encoding. Make sure it's set to interlaced and top field first.
With all the blended fields the better method would be to use AviSynth and the SRestore filter. That will remove most of the blended frames and leave you with clear progressive frames at the original frame rate. In theory. You can then change the frame rate to something suitable for DVD. It's more work than I want to deal with right now, maybe tomorrow. Manono will probably have something for you. -
I might have been able to help but the encoding computer is down at the moment. In any event, as it is now this video isn't a fit candidate for DGPulldown. To fix it it'll have to be unblended and reencoded.
Since I doubt tns1 will want to learn how to use AviSynth for this, his choices come down to following what you suggested, or leaving it alone. -
Back in business. The video sample is on the MPEG at 20fps. It seems to be too fast. I slowed it to 18fps and that's probably still too fast, but the sample isn't good enough or long enough to be able to tell what it's supposed to be with any certainty. The only way to 'fix' it is with an AviSynth script. 18 (or 16)fps isn't allowed for DVD so something would have to be done to bring it up to at least 19.98fps. I've included an MP4 of the scene unblended and slowed to 18fps. This is the script used:
MPEG2Source("test.d2v")
Yadif(Mode=1)#or the better QTGMC
Srestore(Frate=19.98)
AssumeFPS(18)#set the 'real' framerate -
Thought I would give AviSynth a try so I loaded 2.58.
It chokes on the MPEG2Source() - 'no such animal'.
Seems I need DGDecode, and when I finally find that and add:
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll")
It complains my d2v file was created with an incompatible version of DGIndex (1.58), but I see no other version.
I am starting to understand why this tool is considered difficult. -
Wait til you want to use QTGMC or McTemporalDenoise!
So you made the d2v file with the version of DgIndex that came with the DgDecode.dll you are using?
Next you're going to need SRestore and the filters it relies on: http://avisynth.nl/index.php/Srestore -
Did you read the instructions included in the DGMPGDec package? They're probably the best tutorials to using AviSynth with DVD/MPEG sources. And, yes, the versions used of DGDecode and DGindex have to be from the same 'package. If you didn't get DGMPGDec from this site, maybe begin again by clicking on the link.
-
OK, got that straightened out. Now about Yadif. I got it from here, and put the dll in with the other avisynth plugins. It is version 0.9.0.0, and in properties it states it is for avisynth 2.5, so why does it claim it is incompatible?
http://www.avisynth.nl/users/warpenterprises/
Also ver 1.7.0.0 from below also gets the "not an AviSynth 2.5 plugin" error.
http://avisynth.org.ru/yadif/yadif.htmlLast edited by tns1; 29th Jul 2014 at 23:56.
-
Read the doc included with Yadif to find out how it's to be used in a script. In your own link it says:
Implemented as Avisynth C-plugin (not regular Avisynth plugin).
Must be loaded with Load_Stdcall_plugin("yadif.dll") or LoadCplugin("yadif.dll") (not LoadPlugin !). Do not use autoloading. (Note: in Avisynth v2.5.7-2.5.8 there is no need in explicit loading of Avisynth_c.dll by user for such plugins.)
LoadCPlugin("C:\Path\To\Yadif.dll")
.
.
Yadif(Mode=1) -
I can never remember the syntax for LoadCPlugin(), and the path to the filter. So I put the following line in a file called Yadif.avsi in my AviSynth plugins folder:
Load_Stdcall_plugin("C:\Program Files (x86)\AviSynth 2.5\plugins\yadif.dll")
Since avsi files in the plugins folder autoload when AviSynth starts up yadif is always autoloaded. -
I did finally track down all the pieces and got the avs script to play in VDub and WMP:
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\DGDecode.dll")
LoadCPlugin("C:\Program Files\AviSynth 2.5\plugins\yadif.dll")
LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\mt_masktools-26.dll")
MPEG2Source("mympg1.d2v")
Yadif(Mode=1)#or the better QTGMC
Srestore(Frate=19.98)
AssumeFPS(18)#set the 'real' framerate
Correct me here, but so far this has just slowed the framerate, and not attempted to improve the quality. In VDub, the input vs output does not look any different. Now that I have seen those Van De Putte restoration examples, I have higher expectations. There remains a bunch of dirt, noise, scratch, jitter, blur issues. Realistically what kind of further improvement could I expect since I am not starting with film?
Where does the 19.98 and 18fps come from (vs 25fps)? MediaInfo and DGIndex both report 29.97 (the VHS capture rate). Are these best guesses of the original film rate, and how does knowing this help? The use of these filter functions suggest it does matter, but I thought all that would be lost once it was put on VHS.
What is the recommended process flow for restoration in my circumstances? One posting says "source -> crop -> deinterlace -> resize -> denoise". -
That's right, and I never claimed any quality improvement. Slowing it down was the subject of both the thread title and your first post. I suspect it's still too fast and maybe it's supposed to be 16fps, not sure. You can decide. Just adjust the AssumeFPS line if you wish to experiment.
In VDub, the input vs output does not look any different.
There remains a bunch of dirt, noise, scratch, jitter, blur issues.
Realistically what kind of further improvement could I expect since I am not starting with film?
Where does the 19.98 and 18fps come from?
...vs 25fps
29.97fps (actually 59.94 fields per second) is required for both NTSC VHS and DVD. The person that made this had to somehow get from the 'base' framerate he picked (20fps) to 29.97fps and then did it the worst possible way (field-blending). -
(bypassing all the extra "clean up the film" possibilities for now)
Once you get to the [AssumeFPS()] portion of your AVISynth script, your video is at 16, 18, etc FPS. You could encode that at that framerate to an MP4 or something for PC-only use, but if you intend to create a version that is DVD-Video compatible, you'll need something that is 29.97FPS (NTSC). There are a number of ways to go about this:
1. Blending/Interpolating, with or without Motion-compensation
2. Field/Frame repetition (aka Pulldown), whether hard-encoded (video) or soft-encoded (flags)
None of those ways are perfect. Personally, I like soft-encoded pulldown flags. DGPulldown is a great too for this ("Custom" change option).
Scott -
First let me thank everyone for the help so far. I know a lot of effort has gone into these tools. I have had some exposure to mpeg, and broadcast video, but there is much more when it comes to restoration.
The video began life as either 8mm or 16mm done in mid '30s to mid '40s era. It was captured to VHS (NTSC) probably in late '70s, and I did the recent capture from VHS to mpeg2 (my only option with the SW, HW I have). I could clean up the VHS heads, but I think most of the problems were already in the recording, and other VHS tapes I play & capture look very clean.
I hadn't used Vdub much, but I should have realized the avs file with all the avisynth filtering creates the input file that Vdub sees. It would be nice to see the input vs output, but I'll trust that avisynth has the better filters.
There are a couple of people walking in the video, and changing to AssumeFPS(14) gives a very believable result.
I added some clipping in the d2v file to remove the black borders - not sure if it is better to do this in the script.
To make sure I understand, the script output I have now is progressive, uncompressed, 14fps video?
Is this the right starting point for going forward with cleanup?
Vdub says there are 4300 frames in this ~5min video, which at 14fps makes sense. If I save as AVI, that 5min of video is >4G.
When I eventually want to put that back onto an mpeg or dvd, what tool do I use? I don't see rendering plugins for avisynth. -
Yes, you have 14 fps progressive video at the end of the script. But consider 14.99 (15000/1001) instead. You can make it into 29.97 fps for DVD by simply duplicating each frame. That will be smoother than going from 14 to 29.97. Even if you decide to use motion interpolation techniques going from 14.99 to 29.97 will interpolate one frame between each of the existing frames. That way the original frames are kept intact.
DoubleFPS2(): https://forum.videohelp.com/threads/329754-Help-deinterlacing-IVTC-ing-VHS-material-con...=1#post2042689
Apply denoising and other filters before motion interpolation. -
To see before/after with AVISynth, it's best to use a sidechain that bypasses all you do, then a stackhorizontal-type filter to place them side-by-side, etc (though there can be problems with items of different colorspaces, framerates).
Clipping should NOT be done in the d2v file, but rather in the AVISynth script proper, where it can accommodate anomalies due to interlacing. Also, you may not want to clip at all: VHS was SD. DVD is SD. SD is a specific size (720x480 when digital). It must stay that size to be compliant. You could resize (after cropping), but then you bring up a whole other wealth of complications.
Script output now progressive, uncompressed 14fps - yes. Correct starting point (if you undo the cropping business).
5min of uncompressed 4:2:0 SD should be around 4-6GB (depending upon how you calculate it).
Encode to MPEG2/DVD via AVISynth script frameserving to HCEnc encoder (or TMPGEnc, etc). AVISynth doesn't render by itself.
Scott -
Be careful with SRestore(). If you seek around with with VirtualDub you'll find that it's not always frame accurate. For example, if you open a file then seek to frame 1000, then seek to frame 2000, then back to 1000, the second seek to 1000 may not be exactly the same frame as the first. That can lead to problems when dealing with other filters. Sometimes you have to perform a partial filter chain and save as a lossless AVI. Then perform more filtering on that AVI.
QTGMC(preset=fast).SRestore(19.98).AssumeFPS(15000 ,1001) then ChangeFSP(30000,1001) vs. DoubleFPS2():Last edited by jagabo; 30th Jul 2014 at 18:57.
-
OK, but I thought one reason for clipping early was so the irregular border didn't interfere with other filtering. If that isn't a problem, then I don't care if it remains, or if it is overlayed at some point with a fixed width border (windowboxing) to keep the size constant.
Last edited by tns1; 30th Jul 2014 at 21:13.
-
-
Yes, on the left was duplicate frames (ChangeFPS) on the right motion interpolated frames (DoubleFPS2). But beware, motion interpolation often results in bad artifacts.
https://forum.videohelp.com/threads/352741-Frame-interpolation?p=2215502&viewfull=1#post2215502 -
Replacing:
Yadif(Mode=1)
with
QTGMC(preset="fast")#single threaded version
reduces playback speed by about half. Is it supposed to do that or is my PC bogging down?
Adding DoubleFPS2() doubles the number of frames, so playback speed is now one-fourth.
Code:LoadCPlugin("C:\Program Files\AviSynth 2.5\plugins\yadif.dll") MPEG2Source("bucklew1.d2v") #minimal clipping would be: Clipping=16,24,6,0 #Yadif(Mode=1)#or the better QTGMC QTGMC(preset="fast")#slows down playback compared to yadif Srestore(Frate=19.98) AssumeFPS(15000, 1001)#set the 'real' framerate #ChangeFPS(29.97) DoubleFPS2()#twice the frames, half the speed function DoubleFPS2(clip source) { super = MSuper(source, pel=2, hpad=0, vpad=0, rfilter=4) backward_1 = MAnalyse(super, chroma=false, isb=true, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24)) forward_1 = MAnalyse(super, chroma=false, isb=false, blksize=16, searchparam=3, plevel=0, search=3, badrange=(-24)) backward_2 = MRecalculate(super, chroma=false, backward_1, blksize=8, searchparam=1, search=3) forward_2 = MRecalculate(super, chroma=false, forward_1, blksize=8, searchparam=1, search=3) backward_3 = MRecalculate(super, chroma=false, backward_2, blksize=4, searchparam=0, search=3) forward_3 = MRecalculate(super, chroma=false, forward_2, blksize=4, searchparam=0, search=3) MBlockFps(source, super, backward_3, forward_3, num=2*FramerateNumerator(source), den=FramerateDenominator(source), mode=0) }