[FFmpeg-user] Filter documentation -- PTSs

Mark Filipak (ffmpeg) markfilipak at bog.us
Mon Feb 15 03:54:50 EET 2021


On 02/14/2021 08:44 PM, Paul B Mahol wrote:
> On Mon, Feb 15, 2021 at 2:39 AM Mark Filipak (ffmpeg) <markfilipak at bog.us>
> wrote:
> 
>> On 02/14/2021 08:28 PM, Paul B Mahol wrote:
>>> On Mon, Feb 15, 2021 at 2:23 AM Mark Filipak (ffmpeg) <
>> markfilipak at bog.us>
>>> wrote:
>>>
>>>> On 02/14/2021 08:13 PM, Paul B Mahol wrote:
>>>>> On Mon, Feb 15, 2021 at 1:46 AM Mark Filipak (ffmpeg) <
>>>> markfilipak at bog.us>
>>>>> wrote:
>>>>>
>>>>>> On 02/14/2021 07:34 PM, Paul B Mahol wrote:
>>>>>>> On Mon, Feb 15, 2021 at 12:50 AM Mark Filipak (ffmpeg) <
>>>>>> markfilipak at bog.us>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Disclosure: Everything that follows may be wrong.
>>>>>>>>
>>>>>>>> I reckon that, except for a few filters, the important metric is
>> PTS,
>>>>>> not
>>>>>>>> the frame #s assigned at a
>>>>>>>> filter's input node nor its wall-clock arrival time at a filter's
>>>> input
>>>>>>>> node. For example,
>>>>>>>> 'interleave' performs frame interleaves based on the PTSs of
>> incoming
>>>>>>>> frames -- at least, that's
>>>>>>>> what I think.
>>>>>>>>
>>>>>>>> Am I correct?
>>>>>>>>
>>>>>>>> If so, wouldn't it be helpful if filter documentation included how
>> it
>>>>>>>> generates PTSs?
>>>>>>>>
>>>>>>>
>>>>>>> PTS are not generated.
>>>>>>
>>>>>> ffmpeg -i SOURCE -vf telecine TARGET
>>>>>>
>>>>>> What are the PTSs of the first 5 frames at the output of the filter?
>>>>>>
>>>>>>
>>>>> Interpolated by very complex formula.
>>>>
>>>> So, the PTSs are generated.
>>>>
>>>> What is the formula? Certainly it can't be anywhere nearly as complex as
>>>> the differential equations
>>>> and boundary conditions that control air flow through a duct of
>> arbitrary
>>>> shape or the air flow
>>>> across an aircraft wing of arbitrary profile. I guess if I can handle
>>>> those, I'll be able to handle
>>>> the generated PTSs of a periodic series of frames, eh?
>>>>
>>>
>>> You need TB aka timebase too.
>>>
>>> TB is rational.
>>> PTS is 64bit integer.
>>
>> Thank you, Paul. I promise I can handle it. What is the formula?
>>
>>
> See source code of telecine filter. ...

I can't read 'C'.

>... It is doing all calculations avoiding
> floats.
> But formula in floats are pretty trivial and straightforward to write.

Then my request should be easy for you. What is the formula?

> Note that when you change pts in wrong way like you do, you need to change
> timebase too
> or you will get many problems out of nowhere.

Indeed. I unknowingly make mistakes because I'm ignorant. That costs me hours and days and weeks of 
my life.

Look, let's be straight with each other. You developers made the decision that, unlike other video 
tools, you will use PTSs & TBs in lieu of frame numbers. That was an excellent decision and I 
applaud it, and I applaud you. But if I can't predict and control PTSs & TBs, then I'm disarmed. 
Surely you see that, eh?


More information about the ffmpeg-user mailing list