[FFmpeg-user] ffmpeg architecture question #2

Mark Filipak markfilipak.windows+ffmpeg at gmail.com
Sat Apr 25 06:36:10 EEST 2020


On 04/24/2020 11:06 PM, pdr0 wrote:
> Mark Filipak wrote
>>
>>>
>>> If you take a soft telecine input, encode it directly to rawvideo or
>>> lossless output, you can confirm this.
>>> The output is 29.97 (interlaced content) .
>>>
>>>> When I do 'telecine=pattern=5', I wind up with this
>>>>
>>>> |<--------------------------1/6s-------------------------->|
>>>> [A/a_][A/a_][A/b_][B/b_][B/b_][C/c_][C/c_][C/d_][D/d_][D/d_] 55-telecine
>>>>
>>>> I have confirmed it by single-frame stepping through test videos.
>>>
>>> No.
>>
>> The above timing is for an MKV of the 55-telecine transcode, not for the
>> decoder's output.
> 
> That's telecine=pattern=5 on a 23.976p native progressive source
> 
> I thought this thread was about using a soft telecine source , and how
> ffmpeg handles that
> 
> because you were making assumptions "So, if the 'i30, TFF' from the decoder
> is correct, the following must be the full picture: "
> 
> Obviously i30 does not refer to a 23.976p native progressive source...
> 
> 
> 
>>> Pattern looks correct, but unless you are doing something differently ,
>>> your
>>> timescale is not correct
>>>
>>> When input is vob, mpeg2-ps or mpeg-es using soft telecine in my test,
>>> using
>>> telecine=pattern=5 the output frame rate is 74.925 as expected  (2.5 *
>>> 29.97
>>> = 74.925).
>>
>> Not for me. I've seen 74.925 FPS just one time. Since I considered it a
>> failure, I didn't save the
>> video and its log, so I don't know how I got it.
>>
>>> This mean RF flags are used, 29.97i output from decoder. Since
>>> its 74.925fps, the scale in your diagram for 1/6s is wrong for
>>> telecine=pattern=5
>>
>> For this command line:
>>
>> ffmpeg -report -i "00001.018.m2ts" -filter_complex
>> "telecine=pattern=5,split=5[A][B][C][D][E],[A]select='eq(mod(n+1\,5)\,1)'[F],[B]select='eq(mod(n+1\,5)\,2)'[G],[C]select='eq(mod(n+1\,5)\,3)'[H],[D]select='eq(mod(n+1\,5)\,4)'[I],[E]select='eq(mod(n+1\,5)\,0)'[J],[F][G][H][I][J]interleave=nb_inputs=5"
>> -map 0 -c:v libx264 -crf 20 -codec:a copy -codec:s copy
>> "C:\AVOut\00001.018.4.MKV"
>>
>> MPV playback of '00001.018.4.MKV' says "FPS: 59.940 (estimated)" (not
>> 74.925fps).
> 
> Is that m2ts a soft telecine BD's ? This thread was about soft telecine...

I see your misunderstanding. Here's my original diagram:


|<--------------------------1/6s-------------------------->|
[A/a__________][B/b__________][C/c__________][D/d__________] source
[A/a_______][B/b_______][B/c_______][C/d_______][D/d_______] hard telecine
[A/-_][-/a_][B/-_][-/b_][B/-_][-/c_][C/-_][-/d_][D/-_][-/d_] i30-TFF
[A/a_______][B/b_______][B/c_______][C/d_______][D/d_______] deinterlace
[A/a__________][B/b__________][C/c__________][D/d__________] detelecine
[A/a_][A/a_][A/b_][B/b_][B/b_][C/c_][C/c_][C/d_][D/d_][D/d_] 55-telecine

So, you see, the source is p24. "i30-TFF" is what I thought came out of the decoder -- that is based 
on the latest info (and it is what took me by surprise as I'd always thought that ffmpeg decoders 
always output frames).

Soft telecine is nowhere in that diagram. Sorry for the confusion.

> Most film BD's are native progressive 23.976

Yes, that is the "source" in the diagram.

>>> Both ffplay and mpv look like they ignore the repeat field flags, the
>>> preview is progressive 23.976p
>>
>> I use MPV. I'm unsure what you mean by "preview". ...and "preview" of
>> what? The decoder output or
>> the MKV output video?
> 
> The "preview" of the video is what you see when ffplay window opens or mpv
> opens. It's a RGB converted representation what you are using as input to
> mpv or ffplay .

Oh, I didn't know there was a distinction. I thought it was just the playback.

> So I'm referring to a soft telecine source, because that's
> what you were talking about

I hope that confusion is resolved.




More information about the ffmpeg-user mailing list