[FFmpeg-user] Apply format with overlay and -ss in front of inputfile is strange?
Carl Eugen Hoyos
cehoyos at ag.or.at
Mon Jul 13 22:51:28 CEST 2015
Nicolas George <george <at> nsup.org> writes:
> Le quintidi 25 messidor, an CCXXIII, Carl Eugen Hoyos a écrit :
> > I can confirm that there may be an issue
> > but it is not overlay-related:
> > $ ffmpeg -i input -vf
> > "split[x][z];[x]format=gray[x1];[x1]nullsink"
> > -strict -2 -vcodec jpeg2000 -ss 1 out1.avi
> >
> > $ ffmpeg -ss 1 -i input -vf
> > "split[x][z];[x]format=gray[x1];[x1]nullsink"
> > -strict -2 -vcodec jpeg2000 out2.avi
>
> If the issue is that the output is converted to
> gray too, then this is the expected behaviour.
In the first case (without "seeking") one "stream"
(this is not the right term I fear) is converted
the other one is left unchanged.
In the second case (with seeking) both streams
are converted to gray.
While I understand that the filterchain may not
be unambiguous, it looks identical in both cases.
Note that the following command produces gray
output in yuv420p, it appears that two scale
filters instead of the optimal one filter is
inserted:
$ ffmpeg -ss 1 -i input -vf
"split[x][z];[x]format=gray[x1];[z]format=yuv420p;[x1]nullsink"
-strict -2 -vcodec jpeg2000 out2.avi
[...]
> For the rare cases where it does matter, for
> example to be sure to deinterlace before
> converting, you need to insert the scale filter
> explicitly at the point you want the format
> conversion.
Which is in front of the format filter iiuc.
> In this particular case, my guess is that
> libavfilter decided to insert the scale filter
> before split. Insert explicitly after split
> and it should work as expected.
It does, yes.
Thank you for the explanation, Carl Eugen
More information about the ffmpeg-user
mailing list