[FFmpeg-user] simple bob -- How?

Mark Filipak (ffmpeg) markfilipak at bog.us
Tue Dec 29 12:36:39 EET 2020


On 12/29/2020 05:26 AM, Mark Filipak (ffmpeg) wrote:
> On 12/29/2020 05:07 AM, Paul B Mahol wrote:
>> On Tue, Dec 29, 2020 at 10:50 AM Mark Filipak (ffmpeg) <markfilipak at bog.us>
>> wrote:
>>
>>> On 12/29/2020 04:39 AM, Paul B Mahol wrote:
>>>> On Tue, Dec 29, 2020 at 10:32 AM Mark Filipak (ffmpeg) <
>>> markfilipak at bog.us>
>>>> wrote:
>>>>
>>>>> On 12/29/2020 04:09 AM, Mark Filipak (ffmpeg) wrote:
>>>>>> On 12/29/2020 04:04 AM, Paul B Mahol wrote:
>>>>>>> On Tue, Dec 29, 2020 at 9:56 AM Mark Filipak (ffmpeg) <
>>>>> markfilipak at bog.us>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> On 12/29/2020 03:41 AM, Paul B Mahol wrote:
>>>>>>>>> On Tue, Dec 29, 2020 at 5:51 AM Mark Filipak (ffmpeg) <
>>>>>>>> markfilipak at bog.us>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>> I seek a way to do simple bob (i.e. repeat fields at 2xFPS) with no
>>>>>>>> other
>>>>>>>>>> filtering. Can you help me?
>>>>> -snip-
>>>>>>>>> After so much time you still struggle a lot, buy some GUI tools and
>>> be
>>>>>>>>> happy ever after.
>>>>>
>>>>> Here's what I've tried so far:
>>>>> -filter_complex
>>>>> "split[a][b],[a]separatefields[c],[b]separatefields[d],[c][d]join"
>>>>> -filter_complex
>>>>> "split[a][b],[a]separatefields[c],[b]separatefields[d],[c][d]interleave"
>>>>> -vf "separatefields,shuffleframes=0 0,weave"
>>>>> -vf separatefields,scale=720x480
>>>>> -vf separatefields,scale=w=iw:h=2*ih
>>>>> -filter_complex "split[a][b],[a]separatefields[c],[c][b]scale2ref"
>>>>>
>>>>
>>>> Do you want interlacer or deinterlacer? It is very unclear from your
>>>> subject what you need.
>>>>
>>>> Simple bob deinterlacer takes every single field and than interpolates
>>>> missing fields with bilinear interpolation iirc.
>>>
>>> I think that bob just separates fields (e.g. [720x480] ->
>>> [720x240][720x240]), then line doubles
>>> (e.g. [720x240][720x240] -> [720x480][720x480]). When it is played back,
>>> horizontal lines in the
>>> video appear to bob up and down (but at 60Hz, that's not very noticeable).
>>>
>>
>> Try this filtergraph:
>>
>> separatefields,split[a][b],[a][b]vstack,il=l=i:c=i
> 
> Ah! I get it. I think that will work. ...I'll be back.

That is exactly what I wanted. Very cleaver. Thanks! I never would have stumbled on that on my own. 
NOW I see why bwdif exists. The bobbing isn't noticeable at 60FPS, but the aliasing sure is.  ;-)

Okay, bwdif is my choice for this job.


More information about the ffmpeg-user mailing list