[FFmpeg-user] ffprobe bug in 'interlaced_frame'?

Mark Filipak markfilipak.windows+ffmpeg at gmail.com
Mon Jan 27 06:07:16 EET 2020


On 01/26/2020 09:02 PM, Carl Eugen Hoyos wrote:
> Am Mo., 27. Jan. 2020 um 02:42 Uhr schrieb Mark Filipak
> <markfilipak.windows+ffmpeg at gmail.com>:
>> What I'd prefer is to encode the NTSC TV sections as 30i and encode
>> the movie clips as 24p.
> 
> Isn't that what happens if you do the following?
> $ ffmpeg -i input out.mkv
> (You may need to enable interlaced encoding, x264 is smart enough
> to only use it for frames that need it)

I'm using HandBrake. I assume that HandBrake uses ffmpeg libs. The 
HandBrake team gave me the impression that making progressive frames, 
only, was an ffmpeg requirement.

> Or is your problem that the input is cfr and hard-telecined? Maybe
> fieldmatch and mpdecimate help (I have never tried but you can
> force mpdecimate to only throw away identical frames). But note that
> mpdecimate is not supposed to reduce output file size for a modern
> codec if you only throw away identical frames, so if your issue is
> really file size, it shouldn't matter.

I'm not using ffmpeg directly. Should I be using ffmpeg directly?

I submitted a feature request that HandBrake list, in the log file it 
creates during a transcode, the ffmpeg parameters it used, but the 
HandBrake team refused the feature request.

HandBrake allows user parameters to be added as text, via a text box, 
but there's no documentation regarding what those user parameters might be.

>> I think it's possible to mix those two [30i & 24p] as separate GOPs, but I must
>> confess that I'm not sure.
> 
> I don't think this is necessary.

So, ffmpeg's encoder is smart enough to detect the difference, eh? Wow.

>> Right now, if I detelecine both sections, of course I get extreme
> 
> You cannot detelecine the "TV sections"...

That's exactly what HandBrake does (and it looks awful of course). The 
HandBrake team explains that HandBrake simply takes the decoder's 
progressive output (which is why I have to transcode to 60p). I could 
simply decomb the 30p pictures, but I can plainly see the difference 
between that and the 60p line-doubled version, and I much prefer the 60p 
version. In fact, the 60p version is often smoother -- better motion 
objects -- than the source. I originally asserted that no transcode 
could be better than the source, but I was wrong. I was wrong because I 
didn't consider motion objects. I can see the difference between 30i 
versus 30p that's been decombed versus 30i that's been detelecined to 
24p. The differences are subtle, but seeing them came as a revelation.

>> combing in the NTSC TV sections, and if I hard telecine both sections, I
>> get judder in the movie clips.
> 
> This is difficult to understand because you (again) change the subject
> here (first from soft-telecine that is not supported by FFmpeg to vfr
> encoding that is supported except for mov, now to combing artefacts).

All 3 approaches are interrelated, are they not? When some sections of a 
video are 60 fields/sec and others are 24p that is soft-telecined to 
30i, the various approaches (detelecine + decomb, versus hard telecine + 
decomb, versus line-doubling to 60p) are interrelated; there are 
tradeoffs for each approach.

You would not believe how long I worked on understanding this stuff 
before I realized that modern "NTSC" DVD movies are actually 24p with 
30i metadata (i.e., soft-telecined). Modern "NTSC" DVDs are marked "NTSC 
30i", but they aren't really 30i; they're closer to BDs and can be 
transcoded to 24p without adding any filters -- another revelation.

> The fact that an output file is larger than an input file is by itself
> not related to anything of the above: If you need best quality, it
> is actually expected.

Well, whenever I transcode from h262 source to h265 target I invariably 
get a reduction of almost 50%. So, why not go with h265? What modern 
player doesn't support h265? Right now my media server is filled with 
ISOs. I want to replace all of them with MKVs.
Why not use an h265 encoder? <-- this is a serious question.

> If you want the "best" output file, you should not re-encode if
> output file size matters (it sadly always does, even for archivists).

I tried using MKVToolNix to simply repackage h262 as an MKV without 
transcoding. The result was fine, but transcoding to h265 was better, 
especially at 60p.

> Did you tell the encoder that parts of your video are interlaced?

In HandBrake, I always have deinterlace enabled. There appears to be no 
penalty for having it enabled, even when it's not needed.

Thanks for your help, Carl. I'm trying hard to understand every word you 
write. Even when you say that something doesn't matter, even though you 
don't recognize that you're giving me valuable clues, that's what you're 
doing. I hope that has meaning to you. Thank you.


More information about the ffmpeg-user mailing list