[FFmpeg-user] Meaning of ffprobe output

Ulf Zibis Ulf.Zibis at gmx.de
Tue Jan 29 21:50:25 EET 2019

Hi Carl Eugen,

thanks again for your patience.

Am 29.01.19 um 04:58 schrieb Carl Eugen Hoyos:
> (So apparently the next sentence is wrong and Lou
> does offer release support - but unfortunately only
> to you because he closed ticket #7697 this week
> explaining there is no release support...)
OK, but I see 2 differences: The user referred the more old version
3.4.4 compared to 4.1 I use and a segmentation fault is another class of
problem than interlace analysis data.

> The release version contains more known bugs (and there
> are indications that it contains more unknown bugs) and
> less features than current git head and there is no release
> support on this mailing list.
So for each post a new day I have to download and install a new git
build with the risk, of slightly different results each day?

>>>> [Parsed_idet_0 @ 0x6e71900] Single frame detection: TFF: 18738 BFF:
>>>> 12770 Progressive: 42496 Undetermined: 40680
>>>> [Parsed_idet_0 @ 0x6e71900] Multi frame detection: TFF: 36759 BFF: 19705
>>>> Progressive: 58193 Undetermined:    27
>>> This is not conclusive, possibly mixed progressive - interlaced or
>>> interlaced with many scenes without movement.
>>> Visual inspection should clarify.
Except ~1 min. at the beginning, the whole video has motion. With visual
inspection I can not see something, which would give me clarity. If you
want I could upload a 6 min. chunk with 300 MB.

>> Does that mean, that my vob stream is partly interlaced and partly
>> progressive?
>> I guess, TFF means top first frame and BFF bottom first frame, right?
>> This is weird, as the stream comes from a DVD which was recorded from a
>> VHS cassette with a hardware DVD recorder.
> This basically explains it: Such material is always low-quality, I
> wonder if de-interlacing is possible at all (I don't immediately see
> how from a theoretical pov, feel free to prove me wrong).
My intention is not to transform to a deinterlaced progressive video. as
the interlaced one promises better visual quality, but the mixed one
makes me worrying to understand basic things. My intention is to have a
video which I can view without a DVD hardware, and which is better
compressed than with MPEG-2. Optionally I want to give some effort in
filtering some VHS artefacts, see my threads "How to filter VHS cassette
artifacts", "How to duplicate 1st line​", "Calculating offset of shifted
line​". It appears, that with "crop" I can't extract and process single
lines because of interlaced material, so I came to the idea, to
intermediately extract the interlaced fields separately, do the
filtering and again compose them back to an interlaced stream. With this
in mind I opened this thread, because ffprobe from the vob stream says
"yuv420p(tv, bt470bg, top first)", where I interpreted "top first" as an
indication, that this is a interlaced stream, but the ffprobe from the
transcoded mp4 stream does no more say "top first", so I was wondering
if the transcode process automatically does deinterlacing.

My understanding is, that a VHS cassette player always provides a fully
interlaced analogue stream (50 half-frames per sec. for PAL). With this
a DVD recorder has two options, (1) a interlaced vob stream or (2) a
deinterlaced progressive vob stream. Why should it create a mixed
stream? My explanation is, that the original VHS was marked with copy
protection, so the DVD recorder by legal reasons has to sustain the copy
protection by creating an intentionally corrupted DVD file system (which
is not readable from a computer) and additionally a corrupted vob
stream, which is detected and forbidden to copy by legal DVD copy
software. With dvd::rip (mplayer -dumpstream does the same) I was able
to work around the corrupted DVD file system and extract the also
corrupted vob stream, which is playable, but with broken time line and
with some audio errors. Remuxing this with ffmpeg -c copy repaired this,
but the result seems to be a mixture of interlaced and progressive frames.

I guess, my problem is, that I do not fully understand the ffmpeg data
model for video streams.
It seems to me, a 25 fps interlaced stream has 25 frames per sec., each
with 2 fields, top and bottom (50 fields per sec. in total) and a 25 fps
progressive stream has 25 frames per sec., each with 1 field.
So my video with "TFF: 36759 BFF: 19705 Progressive: 58193
Undetermined:    27" has 36759*2+19705*2+58193+27 = 171148 fields in
total, partly half, partly full ones. But idet says: "Repeated Fields:
Neither:114683 Top:     1 Bottom:     0"

Can you please help me to understand this?

>> Also I do not understand, that after the transcoding to mp4 the numbers
>> are different. I interpret this, that the transcoding process does some
>> deinterlacing, but you say, the encoder does not. The vob with 114684
>> frames at 25 fps results in 1:16:27.36 length, but the resulting mp4 with
>> 114502 frames is 1:16:20.08.
> (Please understand that while I completely understand that you
> have different questions, it is not always easy to remember
> what issues were already discussed: I am sure you can calculate
> the number of frames from the duration, the vob file is likely vfr,
> FFmpeg only support writing cfr to mov, the last status line
> has more information.)

I'm pleased to understand that. From my side there is the problem, that
I can not answer if the time gap is too small. I need concentration on
the subject and additionally time to translate my thoughts from german
to english.
What is vfr and cfr?

- Ulf

More information about the ffmpeg-user mailing list