Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage
Register FAQ Calendar Today's Posts Search

Reply
 
Thread Tools Search this Thread Display Modes
Old 3rd July 2020, 15:42   #1  |  Link
frubsen
Registered User
 
Join Date: Jul 2004
Posts: 98
16p and 18p to DVD

Hey all

I'm just trying to figure out the best way to convert film frame rates of 16p and 18p to a DVD.

I have been using the simple avisynth script of:

Code:
ChangeFPS(59.94)
separatefields()
Selectevery(4,0,3)
weave()
It seems to produce decent results, but I've read about encoding at the native frame rate and then using DGpulldown to add a soft pulldown. My issue is, is there an MPEG2 encoder out there that will natively encode at 16fps or 18fps? And then does DGpulldown allow a pulldown from 16 or 18 to 29.97?
frubsen is offline   Reply With Quote
Old 3rd July 2020, 16:01   #2  |  Link
manolito
Registered User
 
manolito's Avatar
 
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,079
DGPulldown won't help you here. From the manual:
Quote:
The input frame rate can be freely chosen, but it must be greater than or equal to 2/3 of the output frame rate, and less than or equal to the output frame rate.
For an output rate of 29.97 this means that the input fps cannot be lower than 19.98 fps.

Your method will work (as long as you can live with the motion judder). Just keep in mind that the output will be interlaced, so your encoder needs interlaced parameters.

Another method would be to use frame interpolation. FrameRateConverter by MysteryX is about the best free option, and the quality is quite good. But beware of some typical interpolation artifacts (depending on the source characteristics).
manolito is offline   Reply With Quote
Old 3rd July 2020, 16:26   #3  |  Link
johnmeyer
Registered User
 
Join Date: Feb 2002
Location: California
Posts: 2,695
Your code is correct. If you find that the field order is wrong, use selectevery(4,1,2) instead.

You want to be searching for DGPulldown, not DGIndex. DGPulldown works by adding pulldown flags that are different than the normal 23.976 to 29.97 film to video conversion flags that let 24 fps film material be encoded natively on a DVD, but then played on a CRT that was hard-wired to only play 29.97 fps material.

The problem, however, is that the DGPulldown "trick" only works with 19.98 fps material and above. It cannot let you directly encode 16 fps and 18 fps silent film at native rate, but have it play at 29.97.

Years ago, before I discovered the ChangeFPS approach, I developed my own pulldown patterns. I encoded a LOT of 18 fps material using this script:

Code:
# Pulldown for 18 fps using all weaves normal-weave-normal-weave-normal (I like this the best)
separatefields()
selectEvery(6, 0,1, 0,3, 2,3, 2,5, 4,5)
johnmeyer is offline   Reply With Quote
Old 3rd July 2020, 17:32   #4  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,653
Quote:
Originally Posted by manolito View Post
DGPulldown won't help you here. From the manual:

For an output rate of 29.97 this means that the input fps cannot be lower than 19.98 fps.
Just create a PAL-DVD. Thus you'll end up with a Framerate as low as 16 2/3 fps.

I used it before. It works great, even though Pulldown hasn't been mentioned in the DVD standard for PAL. (But it is not forbidden, too. ;-) )
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 3rd July 2020, 18:46   #5  |  Link
johnmeyer
Registered User
 
Join Date: Feb 2002
Location: California
Posts: 2,695
Quote:
Originally Posted by scharfis_brain View Post
Just create a PAL-DVD. Thus you'll end up with a Framerate as low as 16 2/3 fps.

I used it before. It works great, even though Pulldown hasn't been mentioned in the DVD standard for PAL. (But it is not forbidden, too. ;-) )
I never thought of that because, here in the states, most older DVD players don't play PAL discs. However, some newer ones do, and your suggestion would be a very good way to achieve the OP's goal if he has a player that handles PAL.
johnmeyer is offline   Reply With Quote
Old 4th July 2020, 00:11   #6  |  Link
manono
Moderator
 
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
I'd interpolate to 19.98fps, encode for DVD and then run DGPulldown on that.

Quote:
Originally Posted by frubsen View Post
My issue is, is there an MPEG2 encoder out there that will natively encode at 16fps or 18fps? And then does DGpulldown allow a pulldown from 16 or 18 to 29.97?
The answers to your questions are 'no' and 'no'. You encode to 23.976fps (adding an "AssumeFPS(23.976)" line to your script) and then fix it during the pulldown stage. Using DGPulldown with the custom box checked and 19.98->29.97 chosen will fix the length/framerate.

Also, you'll want to jack up the bitrates for the encoding by a factor of 23.976/19.98, min and max and average bitrates.

I would never encode as interlaced because of the huge quality hit you'll take for interlaced 29.97fps material as compared to encoding progressive 23.976fps.

Last edited by manono; 5th July 2020 at 03:02.
manono is offline   Reply With Quote
Old 4th July 2020, 02:58   #7  |  Link
johnmeyer
Registered User
 
Join Date: Feb 2002
Location: California
Posts: 2,695
FWIW, I have created hundreds of DVDs from 12, 15, 16, and 18 fps material. I strongly advise against using any sort of motion interpolation. The reason for this is that not only does motion interpolation sometimes create really awful artifacts, but because of the huge temporal gap between frames in low fps amateur silent film, those artifacts are far more frequent and far more severe than what you would get with higher frame rate material.

I live in NTSC land. I tried pretty much every option proposed in this thread, but always came back to simply adding the pulldown fields using the code in post #1. You get no weird artifacts. Having said that, low frame rate material is going to judder like crazy during horizontal pans, and that judder is going to be accentuated by the pulldown fields.

When that judder gets to be too much to stand, I have occasionally encoded some of the material using motion interpolation and the rest using pulldown and then joined them using Womble's MPEG-VCR or VideoRedo, both of which let you join MPEG-2 files without re-encoding.
johnmeyer is offline   Reply With Quote
Old 4th July 2020, 03:37   #8  |  Link
manono
Moderator
 
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
Then blend to create the new frames. I use the Motion.dll for that. I repeat, encoding interlacing at 29.97fps absolutely kills quality relative to encoding progressive 23.976fps with soft pulldown.
Quote:
FWIW, I have created hundreds of DVDs from 12, 15, 16, and 18 fps material.
12 and 15 are easy. Just double the framerates. And I've created dozens of DVDs from silent films at all kinds of framerates from 16 to 20 originally. Not to mention all the ones at higher framerates.
manono is offline   Reply With Quote
Old 4th July 2020, 19:07   #9  |  Link
frubsen
Registered User
 
Join Date: Jul 2004
Posts: 98
Quote:
Originally Posted by johnmeyer View Post
Your code is correct. If you find that the field order is wrong, use selectevery(4,1,2) instead.

You want to be searching for DGPulldown, not DGIndex. DGPulldown works by adding pulldown flags that are different than the normal 23.976 to 29.97 film to video conversion flags that let 24 fps film material be encoded natively on a DVD, but then played on a CRT that was hard-wired to only play 29.97 fps material.

The problem, however, is that the DGPulldown "trick" only works with 19.98 fps material and above. It cannot let you directly encode 16 fps and 18 fps silent film at native rate, but have it play at 29.97.

Years ago, before I discovered the ChangeFPS approach, I developed my own pulldown patterns. I encoded a LOT of 18 fps material using this script:

Code:
# Pulldown for 18 fps using all weaves normal-weave-normal-weave-normal (I like this the best)
separatefields()
selectEvery(6, 0,1, 0,3, 2,3, 2,5, 4,5)
Any reason you would use that over the standard selectevery(4,0,3).

Less judder?
frubsen is offline   Reply With Quote
Old 4th July 2020, 19:09   #10  |  Link
frubsen
Registered User
 
Join Date: Jul 2004
Posts: 98
Quote:
Originally Posted by manono View Post
Then blend to create the new frames. I use the Motion.dll for that. I repeat, encoding interlacing at 29.97fps absolutely kills quality relative to encoding progressive 23.976fps with soft pulldown.

12 and 15 are easy. Just double the framerates. And I've created dozens of DVDs from silent films at all kinds of framerates from 16 to 20 originally. Not to mention all the ones at higher framerates.
I'm pretty much only dealing with 16 or 18fps reels.

Any suggested blend script for the interpolation to 19.98? I'm curious to give that route a try and see the results
frubsen is offline   Reply With Quote
Old 4th July 2020, 19:46   #11  |  Link
manono
Moderator
 
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
Quote:
Originally Posted by frubsen View Post
Any suggested blend script for the interpolation to 19.98? I'm curious to give that route a try and see the results
BlendFPS(19.98,0.5)
That works for 16fps. For 18fps I seemed to get the best results with an aperture of 0.15:
BlendFPS(19.98,0.15)

The idea is to get a blended frame after every 4 'good' frames at 16fps and after every 9 'good' frames at 18fps. Not more blends and not duplicate frames. You might have to play with the apertures. I'll include the Motion.dll and the doc:
Attached Files
File Type: rar Motion.rar (64.9 KB, 12 views)
File Type: rar MotionDoc.rar (4.3 KB, 12 views)

Last edited by manono; 4th July 2020 at 19:59.
manono is offline   Reply With Quote
Old 5th July 2020, 01:29   #12  |  Link
johnmeyer
Registered User
 
Join Date: Feb 2002
Location: California
Posts: 2,695
Quote:
Originally Posted by frubsen View Post
Any reason you would use that over the standard selectevery(4,0,3).

Less judder?
Possibly, but probably not.

With really low-framerate material, you have several ways you can create pulldown. I did experiment with all of them, back when I first started doing this 20+ years ago. Unfortunately, I didn't put the notes in my engineering notebook so I don't remember if there was any significant differences. The code you posted works automatically with any frame rate and, as I remember, it does properly use repeated fields, rather than repeated frames, something that is required if you want to make the result play as smoothly as possible.

You should probably just keep using your script, although I can post the other patterns if you want, and you can put 30 seconds of the same material on a DVD (use fast motion!), using each of the different pulldown patterns and see if you can detect any differences.

The other Selectevery option I posted can be useful if you want to use TFF instead of BFF. Remember that, even though your source material is progressive, the whole point of pulldown is to let you play that progressive material on a 29.97 interlaced display.

These days, depending on what you are really trying to do, I would advise considering not doing pulldown at all, but instead simply encode the 12, 15, 16, 18, or 24 fps material and then play that directly on your set. All modern TVs are very happy playing any fps video you can throw at them. Of course you can't do this on a traditional video DVD, but you can save the results on a data DVD.
johnmeyer is offline   Reply With Quote
Old 5th July 2020, 14:39   #13  |  Link
frubsen
Registered User
 
Join Date: Jul 2004
Posts: 98
Quote:
Originally Posted by manono View Post
BlendFPS(19.98,0.5)
That works for 16fps. For 18fps I seemed to get the best results with an aperture of 0.15:
BlendFPS(19.98,0.15)

The idea is to get a blended frame after every 4 'good' frames at 16fps and after every 9 'good' frames at 18fps. Not more blends and not duplicate frames. You might have to play with the apertures. I'll include the Motion.dll and the doc:
Great thanks, will play around with this!
frubsen is offline   Reply With Quote
Old 5th July 2020, 14:48   #14  |  Link
frubsen
Registered User
 
Join Date: Jul 2004
Posts: 98
Quote:
Originally Posted by johnmeyer View Post
These days, depending on what you are really trying to do, I would advise considering not doing pulldown at all, but instead simply encode the 12, 15, 16, 18, or 24 fps material and then play that directly on your set. All modern TVs are very happy playing any fps video you can throw at them. Of course you can't do this on a traditional video DVD, but you can save the results on a data DVD.
I always push people to go the file route when I scan film for them. Most of the time people are happy with an MP4 file which I can provide at the native frame rate. However some people insist on DVD copies so I'm just trying to figure out the best method.
frubsen is offline   Reply With Quote
Old 5th July 2020, 15:52   #15  |  Link
johnmeyer
Registered User
 
Join Date: Feb 2002
Location: California
Posts: 2,695
Quote:
Originally Posted by frubsen View Post
I always push people to go the file route when I scan film for them. Most of the time people are happy with an MP4 file which I can provide at the native frame rate. However some people insist on DVD copies so I'm just trying to figure out the best method.
Yes, I still sell almost as many DVDs as I do HD versions on thumb drive, when I produce "The Nutcracker" production each year.

One great advantage of DVD is that it likely has the best longevity of any media on which you could deliver your transfers. So I fully understand why you are going this route.

Last edited by johnmeyer; 6th July 2020 at 01:38. Reason: typo
johnmeyer is offline   Reply With Quote
Old 7th July 2020, 20:32   #16  |  Link
Ghitulescu
Registered User
 
Ghitulescu's Avatar
 
Join Date: Mar 2009
Location: Germany
Posts: 5,769
I remember it was a nice thread about 8mm and Super8 dealing exactly with these things.
__________________
Born in the USB (not USA)
Ghitulescu is offline   Reply With Quote
Old 8th July 2020, 00:01   #17  |  Link
Cary Knoop
Cary Knoop
 
Cary Knoop's Avatar
 
Join Date: Feb 2017
Location: Newark CA, USA
Posts: 397
Quote:
Originally Posted by johnmeyer View Post
So I fully understand why you are going this route.
I don't, but that seems to be subject to censorship over here.
Cary Knoop is offline   Reply With Quote
Old 9th July 2020, 00:59   #18  |  Link
manono
Moderator
 
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
Quote:
Originally Posted by Cary Knoop View Post
I don't, but that seems to be subject to censorship over here.
Geez, again? That question was already asked and answered. You don't have to agree with frubsen's reasoning, although I do.

And I had nothing to do with removing those off-topic posts. A different stealth mod must have done it.
manono is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 15:33.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.