View Full Version : Want to Convert Film-Sourced PAL DVDs from 25 fps to 23.976 fps
SteveLarson
9th May 2026, 04:49
I own many PAL DVDs (film-originated discs encoded in both interlaced and progressive) that I wish to convert from 25 fps to 23.976 fps in Hybrid or VS editor. When I’ve uploaded some PAL-sourced files into Hybrid that I initially ripped using MakeMKV, it usually recognizes the image scan as TFF.
Your suggestions for a conversion process for both progressive and interlaced transfers are most welcome and appreciated. Should I use sRestore at all? Also, I want to be able to re-sync the original 4 percent sped-up audio to the new converted frame rate.
Emulgator
13th May 2026, 12:53
You will need to framestep every source since there may be more than one method encountered when it comes to reverting any Film-to-PAL norm conversion.
There is the rare 2:2:2:2:2:2:2:2:2:2:2:2:3 pulldown which you will have to find and reverse.
With the more regular 25/24 PAL speedup (+4 1/6%) you will hopefully encounter progressive content.
I would not expect to need srestore in that process, unless your source had been borked beyond these 2 methods, or a NTSC scan had been involved.
More often than not Audio takes manual finetuning beside any resampling.
RetsimLegin
14th May 2026, 08:52
I have done umpteen of this type of conversion using the GUI app avidemux, and have yet to encounter a film-sourced PAL disc that wasn't "simply" a frame-accurate speedup which simply deinterlaces (TFF usually, see MediaInfo for confirmation) to progressive and will then slow down accurately to 23.976fps progressive. Along with the preset PAL to film audio speedup which appears to be as accurate as it needs to be. Not to say that "odd" telecines don't exist out there, just that I haven't yet encountered one so suspect they are rare. I suggest (whatever tool you use) you try it "simply" first and only start delving deeper if that hasn't worked.
hello_hello
14th May 2026, 11:30
Film-sourced PAL shot in a PAL country and intended for broadcast there is usually shot at 25fps.
If a PAL disc contains progressive content, it shouldn't need to be de-interlaced, however it's very common for PAL to have fields out of alignment, something like:
A B C D E F - top field
B C D E F G - bottom field
So it looks like it needs de-interlacing even though it's progressive, but all that's needed is to match up the fields with something like TFM from the Avisynth TIVTC plugin (or whatever the VapourSynth equivalent is).
There's a difference between a DVD containing interlaced video and the video being encoded as interlaced. DVDs can contain video encoded as progressive or interlaced, but 99% of PAL DVDs are encoded as interlaced even when the content is progressive. MediaInfo reports the encoding method used but it can't know if the content is really interlaced.
Conversions from 23.976 to 25fps using pulldown aren't very common but they do exist, as are conversions using field blending, which is not all that uncommon for older DVDs.
It appears Hybrid includes a VapourSynth function for changing the frame rate:
https://github.com/Selur/VapoursynthScriptsInHybrid/blob/master/ChangeFPS.py
For Avisynth, you can simply add
AssumeFPS(24000,1001)
to a script to slow PAL down to 23.976fps, although I usually slow it down to exactly 24fps myself.
SteveLarson
15th May 2026, 02:43
You will need to framestep every source since there may be more than one method encountered when it comes to reverting any Film-to-PAL norm conversion.
There is the rare 2:2:2:2:2:2:2:2:2:2:2:2:3 pulldown which you will have to find and reverse.
With the more regular 25/24 PAL speedup (+4 1/6%) you will hopefully encounter progressive content.
I would not expect to need srestore in that process, unless your source had been borked beyond these 2 methods, or a NTSC scan had been involved.
More often than not Audio takes manual finetuning beside any resampling.
Interesting exploratory options to consider! Fortunately, I have not yet encountered a PAL DVD with a 2:3 pulldown. I tried sRestore and did not have any sync or pitch issues with my PAL source! Frames and audio appear to mesh well.
SteveLarson
15th May 2026, 03:01
Film-sourced PAL shot in a PAL country and intended for broadcast there is usually shot at 25fps.
Thanks for reminding me of that as I forgot about said fact. When you say, "intended for broadcast," you mean TV, cable, and satellite mediums, right?
What about film-sourced PAL productions photographed in a PAL nation intended for theatrical exhibition? Would those be shot at 25 fps or 24 fps? That's really key for me when I map out my conversion process.
There's a difference between a DVD containing interlaced video and the video being encoded as interlaced. DVDs can contain video encoded as progressive or interlaced, but 99% of PAL DVDs are encoded as interlaced even when the content is progressive.
Exactly! Yes, it seems most PAL discs are going to need to undergo some deinterlacing even if the video is progressive.
It appears Hybrid includes a VapourSynth function for changing the frame rate:
https://github.com/Selur/VapoursynthScriptsInHybrid/blob/master/ChangeFPS.py
Thanks! Yeah, I think I found that filter function under the main Frame tab in Hybrid.
hello_hello
15th May 2026, 03:36
What about film-sourced PAL productions photographed in a PAL nation intended for theatrical exhibition? Would those be shot at 25 fps or 24 fps? That's really key for me when I map out my conversion process.
24fps, I assume.
Exactly! Yes, it seems most PAL discs are going to need to undergo some deinterlacing even if the video is progressive.
I actually meant the opposite. They don't necessarily need de-interlacing.
The basic difference, the way I understand it, is progressive encoding encodes each frame as a whole, whereas interlaced encoding separates each frame into fields and encodes the fields separately, but if it's progressive video encoded as interlaced you should be able to simply decode it and re-encode it as progressive without needing to de-interlace.
If the fields are out of phase they can be matched up correctly with a field matcher such as TFM and once again, they shouldn't need to be de-interlaced.
A fairly simple way to tell is to apply de-interlacing that de-interlaces PAL to 50fps progressive by interpolating each field into a full frame (so you de-interlace from 50 fields per second to 50 frames per second), which is definitely the better way to de-interlace truly interlaced video anyway. For Avisynth, something like Yadif(Mode=1) would do for testing. When you step through the frames after de-interlacing, if each frame is unique where there's movement, then the source is interlaced. If each frame is repeated (there'll be minor differences, but if every second frame is a duplicate) the source is progressive.
It's because for truly interlaced video, each field is a slightly different moment in time, so when they're interpolated into full frames, each frame is a different moment in time and therefore unique. For progressive content each field is the same moment in time as they're from the same progressive frame, so when the fields are interpolated into full frames, every second frame ends up being a duplicate.
Of course there's situations where a source can be a combination of interlaced and/or telecine and/or progressive, but ignoring that for the moment.....
hello_hello
15th May 2026, 04:02
Interesting exploratory options to consider! Fortunately, I have not yet encountered a PAL DVD with a 2:3 pulldown. I tried sRestore and did not have any sync or pitch issues with my PAL source! Frames and audio appear to mesh well.
PAL DVDs don't use 2:3 pulldown (https://en.wikipedia.org/wiki/Telecine#2:3_pulldown). That's an NTSC thing for converting film to 59.94 fields per second. There's a few types of pulldown used for PAL, although they're not very common for DVDs. The one described by Emulgator is called Euro pulldown (https://en.wikipedia.org/wiki/Telecine#Euro_pulldown).
The purpose of SRestore is to undo a field blended conversion. It's not really the best tool for standard de-interlacing or pulldown removal.
Selur
15th May 2026, 11:00
Of course there's situations where a source can be a combination of interlaced and/or telecine and/or progressive, but ignoring that for the moment.....
Mixed content is plain evil!
SteveLarson
16th May 2026, 03:43
The basic difference, the way I understand it, is progressive encoding encodes each frame as a whole, whereas interlaced encoding separates each frame into fields and encodes the fields separately, but if it's progressive video encoded as interlaced you should be able to simply decode it and re-encode it as progressive without needing to de-interlace.
Yeah, so that squares with everything I've learned about the differences between the two. In the VapourSynth view in Hybrid, I can check "Overwrite input scan to" and select progressive from the pulldown so it's very easy to do a progressive re-encode.
I have several Greek DVDs (e.g., films by Theo Angelopoulos) which I know via published reviews are progressively encoded. Eureka's Masters of Cinema series used to specify that their DVD transfers were progressive.
If the fields are out of phase they can be matched up correctly with a field matcher such as TFM and once again, they shouldn't need to be de-interlaced.
A fairly simple way to tell is to apply de-interlacing that de-interlaces PAL to 50fps progressive by interpolating each field into a full frame (so you de-interlace from 50 fields per second to 50 frames per second), which is definitely the better way to de-interlace truly interlaced video anyway. For Avisynth, something like Yadif(Mode=1) would do for testing. When you step through the frames after de-interlacing, if each frame is unique where there's movement, then the source is interlaced. If each frame is repeated (there'll be minor differences, but if every second frame is a duplicate) the source is progressive.
While I often use MediaInfo to scan my files, I have found that Hybrid's processing scanner tends to be a bit more reliable and even more specific. For some of my recent PAL disc rips, it states that the scan is "top field first" so I can select that in the (De-)Interlace/Telecine tab. For the deinterlacing, it gives me options to do QTGMC (with the Neo-FFT3DFilter pre-checked by default). I also can alter that altogether by switching to TIVTC which would probably be the better option, huh?
VS also has a Yadifmod option where I can choose between EEID3, NNEDI3, or NNEDI3CL
Selur
16th May 2026, 05:23
For determining whether a source is interlaced or not in Hybrid, I (quite a while ago) wrote:
If you are uncertain if a source is interlaced, telecined,... it helps to look at the frame patterns that occur if you Bob deinterlace the content.
That said, here are the typical patterns you might encounter:
Typical interlace patterns:
content is progressive:
applying AssumeTFF().Bob()* you will see: stop -> forward_movment -> stop -> forward_movement **
applying AssumeBFF().Bob()* you will see: stop -> forward_movment -> stop -> forward_movement **
content is field shifted:
applying AssumeTFF().Bob()* you will see: backwards_movment -> forward_movment -> backwards_movment -> forward_movment **, ***
applying AssumeBFF().Bob()* you will see: forward_movment -> stop -> forward_movement -> stop **, ***
content is interlaced TFF:
applying AssumeTFF().Bob()* you will see: forward_movment -> forward_movment -> forward_movment -> forward_movement **
applying AssumeBFF().Bob()* you will see: forward_movment -> backwards_movment -> forward_movement -> backwards_movment **
content is interlaced BFF:
applying AssumeTFF().Bob()* you will see: forward_movment -> backwards_movment -> forward_movement -> backwards_movment **
applying AssumeVFF().Bob()* you will see: forward_movment -> forward_movment -> forward_movment -> forward_movement **
content is interlaced XFF with blending:
same as the corresponding interlaced pattern, but you will also see some blended (= ghosted) frames in-between
content is telecine:
applying AssumeTFF().Bob()* you will see 3 times forward_movement 2 still frames
content is mixed:
applying AssumeTFF().Bob()* you will see a mix of any of the above
* in Hybrid you would use QTGMC+Bob
** then moving through the content
*** or vice versa
source: [INFO] Interlacing patterns (https://forum.selur.net/thread-3010.html)
Cu Selur
SteveLarson
17th May 2026, 04:33
@Selur Oh, yeah! Now I remember that you posted the interlaced/progressive guide on your own forum.
So if I were to check if my native source is indeed TFF after bobbing the 25 fps, could I play the video (post QTGMC/Bob processing) in a player app like PotPlayer to verify that there's:
forward_movment -> forward_movment -> forward_movment -> forward_movement ?
I don't know if you've ever used PotPlayer, but it allows the user to advance to keyframes by the second. It probably has more features and widgets than any video player out there. What do you use to check the movement?
Fairly recently, I imported some of my videos into StaxRip and after analyzing them, the main screen tells me whether or not they're interlaced or progressive. I haven't done enough of a deep dive yet to ascertain if it can tell me whether one's top field first and another's bottom field first, but I'll open its GUI soon and see if it can specify the scan type, too.
Selur
17th May 2026, 08:07
Don't use PotPlayer or similar (no clue where that idea comes from), simply use the Vapoursynth Preview.
No clue, what StaxRip does, my guess is that it uses the same analysis MeGui uses. => better trust your eyes.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.