[FFmpeg-user] 1080i AVC-I 100 frame rate conversion

Mark Filipak (ffmpeg) markfilipak at bog.us
Fri Mar 26 22:12:27 EET 2021


On 2021-03-26 10:02, Bruce Roberts wrote:
> Hello,
> 
> I'm looking for advice on the best ways to convert 23.976fps and 29.97fps
> AVC-I 100Mbps content to 25fps (also interlaced AVC-I 100Mbps).

Hello Bruce,

I think we may be treading parallel paths, you: from the west to east (FILM & NTSC to 50fps), me: 
from the east to west (FILM & PAL to 60fps).

In addition to what ffmpeg offers (e.g. minterpolate), I've tried single-pass, motion-vector 
interpolation via havsfunc.InterFrame running in VapourSynth while piping InterFrame's raw frames to 
ffmpeg for down conversion and HEVC encoding. The InterFrame pipe approach produced incredible 
results but took 3+ days to convert a 2 hour movie from 24fps to 60fps with a 3.3GHz, 8 thread CPU, 
so I seek a faster way that still produces acceptable picture synthesis and sharpness while avoiding 
judder.

I'm currently pursuing weighted pixel, fractional picture mixing (ffmpeg -filter_complex 
"...mix...") at 120fps (or 240fps) followed by custom frame decimation. The sane way to do that is 
to write a filter specific to that task -- buffer pictures modulo 4 and synthesize new pictures 
modulo 5 via weighted mixing -- but I don't write 'C', so I'm trying to do the job with what ffmpeg 
provides: mainly shuffleframes and/or telecine (using peculiar patterns).

For your 50fps objective, the common-framerate modulos are much larger but they still involve a 
basic 4:5 fractional picture synthesis, so what I'm doing is applicable to what you want to do.

The approach is conceptually simple, and it should be much quicker while still producing very good 
motion vector compression in the encoder (and consequently, small output sizes). Though I have the 
fractional picture synthesis working, I'm finding that shuffleframes has undocumented PTS quirks 
that screw up the final cadence. So, I'm currently exhaustively testing shuffleframes to determine 
its quirks (and/or other methods to control PTSs). For some reason, the ffmpeg developers object to 
this approach, so they've not been forthcoming.

I hope to post a working mixer filter complex that synthesizes 60fps from FILM in a few days. Stay 
tuned.

Regards,
Mark.


More information about the ffmpeg-user mailing list