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. |
3rd July 2020, 15:42 | #1 | Link |
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() |
3rd July 2020, 16:01 | #2 | Link | |
Registered User
Join Date: Sep 2003
Location: Berlin, Germany
Posts: 3,079
|
DGPulldown won't help you here. From the manual:
Quote:
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). |
|
3rd July 2020, 16:26 | #3 | Link |
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) |
3rd July 2020, 17:32 | #4 | Link | |
brainless
Join Date: Mar 2003
Location: Germany
Posts: 3,653
|
Quote:
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. |
|
3rd July 2020, 18:46 | #5 | Link |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,695
|
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.
|
4th July 2020, 00:11 | #6 | Link | |
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:
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. |
|
4th July 2020, 02:58 | #7 | Link |
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. |
4th July 2020, 03:37 | #8 | Link | |
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:
|
|
4th July 2020, 19:07 | #9 | Link | |
Registered User
Join Date: Jul 2004
Posts: 98
|
Quote:
Less judder? |
|
4th July 2020, 19:09 | #10 | Link | |
Registered User
Join Date: Jul 2004
Posts: 98
|
Quote:
Any suggested blend script for the interpolation to 19.98? I'm curious to give that route a try and see the results |
|
4th July 2020, 19:46 | #11 | Link | |
Moderator
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
|
Quote:
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: Last edited by manono; 4th July 2020 at 19:59. |
|
5th July 2020, 01:29 | #12 | Link | |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,695
|
Quote:
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. |
|
5th July 2020, 14:39 | #13 | Link | |
Registered User
Join Date: Jul 2004
Posts: 98
|
Quote:
|
|
5th July 2020, 14:48 | #14 | Link | |
Registered User
Join Date: Jul 2004
Posts: 98
|
Quote:
|
|
5th July 2020, 15:52 | #15 | Link | |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,695
|
Quote:
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 |
|
9th July 2020, 00:59 | #18 | Link | |
Moderator
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
|
Quote:
And I had nothing to do with removing those off-topic posts. A different stealth mod must have done it. |
|
|
|