Log in

View Full Version : 1080i 29.970 to 720p 23.976


phate89
5th February 2012, 15:03
Hi.. I usually use avisynth + megui to convert 720p 23.976 video to an xvid of 25 fps to sync with pal audio...i'm not a great expert but i usually use different filters and avisynth without problems..
To do this i usually use assumefps(25) and it's enough but this time i want to try to go from a 1080i 29.970 fps recorded from us tv to the pal 25 one...
To do that i have to switch before to 23.976 without stretch (to not loose the sync of the audio) so i can then assume the fps to 25... but i have no clue how to do this... i see there are convertfps and changefps... is this what i need? it seems odd to me... I also read about tivtc, tfm, tdecimate.. but i don't know where to start
I also have to deinterlace the source right?

Guest
6th February 2012, 01:07
Hi.. I usually use avisynth + megui to convert 720p 23.976 video to an xvid of 25 fps to sync with pal audio? Just curious, where are you getting 720P video at 23.976 fps?

pbristow
7th February 2012, 11:41
To do this i usually use assumefps(25) and it's enough but this time i want to try to go from a 1080i 29.970 fps recorded from us tv to the pal 25 one...
To do that i have to switch before to 23.976 without stretch (to not loose the sync of the audio) so i can then assume the fps to 25... but i have no clue how to do this... i see there are convertfps and changefps... is this what i need? it seems odd to me... I also read about tivtc, tfm, tdecimate.. but i don't know where to start
I also have to deinterlace the source right?

OK, a lot depends on the characteristics of the source, but from what you've said, would I be correct in assuming it's material that was originally filmed at 24(ish) frames per second, progressive, and then encoded as 1080i (e.g. for TV transmission)? If so, then the basic technique is the same as for converting NTSC-encoded (480i30) movies back to 24(ish) fps.


I'll use simplified numbers (24, 30, 60) for convenience. The steps you need are:

1. Find the correct pairs of fields, from the 60 that arrive every second, to make up 24 full frames per second. Output from this step is 1080p24

2. Resize to 720 and/or change frame rate to 25fps using your usual technique.


For step 1, the options to look at are the second set you listed: TDecimate etc. Its a while since I've done one of these and I always forget which option works best and have to go researching again (anyone know where I can buy a replacement memory? :rolleyes:), but if you search for terms like "3:2 pulldown", or phrases like "convert NTSC to 24fps", you'll find it.


If it's *not* filmed material, but actual proper 1080i60 full-motion video (*SIGH* Why is there not more of this around? Especially in the porn market... ;) ), then you have a different set of options:
The simplest is to bob-deinterlace the material to 60fps (using any reasonably good bob-deinterlacer, such as Yadif(mode=1), then select 5 out of every 6 frames (so that you have 50fps), and create a new 25fps interlaced stream from them:


# Reduce width, to speed up processing:
BicubicResize(1024,width)

# Convert to double-rate progessive, and pick out required frames:
Yadif(mode=1)
SelectEvery(6, 0,1,2,3,4)

# Resize to 1024x576 (for square pixels) or 704x576 (for DVD)
BicubicResize(1024,576)

SeparateFields.SelectEvery(4, 0,3)
# or: SeparateFields.SelectEvery(4, 1,2)
# ... but usually it's 0,3 you want.
Weave


You may also need to throw in AssumeTFF or AssumeBFF before Yadif, to get the field sequence right.

N.B. you need to do all your resizing *before* re-weaving to PAL. (You can pick a better resizer than Bicubic, but while testing things like this I like to use a fast resizer until I've got everything else working right. And sometimes Bicubic is good enough anyway. :) )