[FFmpeg-user] What does ffmpeg do when packs switch?

Mark Filipak markfilipak.windows+ffmpeg at gmail.com
Fri Feb 7 00:27:34 EET 2020


On 02/06/2020 10:05 AM, Carl Eugen Hoyos wrote:

Thanks, Carl,

>> Am 06.02.2020 um 13:14 schrieb Mark Filipak <markfilipak.windows+ffmpeg at gmail.com>:
>>
>> What does ffmpeg do when packs switch from hard-telecine to soft-telecine right in the middle of a GOP?
> 
> It doesn’t “do” anything because it doesn’t know the concepts of hard- and soft-telecine.
> It doesn’t “just” take what the decoders output, it assigns proper timestamps to the frames (as it does with all frames coming out of a decoder). If the input was soft-telecined, FFmpeg only sees progressive content, often 24000/1001 frames. Hard-telecined means 30000/1001 frames, the telecine effect can be undone if done properly.
> If the input contains both soft- and hard-teleconference content, FFmpeg sees variable framerate input (which it actually is).

Does ffmpeg automatically apply detelecine when telecine is encountered? 
Or does the user need to specify the detelecine filter 
(ffmpeg.org/ffmpeg-filters.html#detelecine)?

The filter has a 'pattern' option.
I know how to use 'top_field_first' & 'repeat_first_field' to determine 
whether the encoder applied 'pattern'='23' or 'pattern'='32', but ffmpeg 
seems to have no way to report packet metadata.
How is a script to know whether the encoder used '23' or '32'?
What happens if 'pattern' is wrong?
What happens if 'pattern' is null?

Thanks again,
Mark.


More information about the ffmpeg-user mailing list