[FFmpeg-user] Codec copy with -ss before -i and after -i is not documented [was: Re: Why are these different?]
Jim DeLaHunt
list+ffmpeg-user at jdlh.com
Mon Feb 12 05:28:45 EET 2024
Paul:
On 2024-02-11 13:42, Paul B Mahol wrote:
> Codec copy with -ss before -i and after -i is not documented that it gives different results because
> once you do not decode everything from start you basically can notexpect to get always (for any
> container and for any input) frame-accurate results in both cases.
I think you are saying something important here, but I am having a hard
time understanding what you mean. This sentence uses the word "not"
three times. I get lost.
Let me see if I can figure it out. Is this what you mean, Paul?
> [Definition of "codec copy operation": the copying of content from one
> file to another by demuxing packets from the input container (file),
> then muxing them unchanged into the output container (file). The "-c
> copy" option tells FFmpeg to perform a codec copy operation.]
>
> The FFmpeg documentation does not say that FFmpeg gives different
> results if you do a codec copy operation with a "-ss" option before
> the input argument, compared to a code copy operation with the same
> "-ss" option after the input argument. Nor does it say that FFmpeg
> gives the same results.
>
> It is unreasonable to expect FFmpeg to give frame-accurate results
> from a given "-ss" option both when the option is before and is after
> the input argument, for every container and for every input. Instead,
> one should expect that for some containers and for some inputs, and
> for some cases of the "-ss" option before or after the input argument,
> FFmpeg will give results which are inexact in the number of frames
> passed to the output.
>
> But one should not expect the FFmpeg documentation to be clear about
> which cases have frame-accurate results and which do not. The FFmpeg
> documentation leaves any statement of results being the same or
> different based on the position of the "-ss" option. The result of
> this is that the FFmpeg documentation does not need to engage with the
> task of clearly describing which cases give frame-accurate results and
> which do not.
I think Mark Filipak asked a reasonable and (eventually) well-defined
question. This thread has so far been 30 messages. I get the impression
that the answer to his question is:
> Because the FFmpeg project includes different implementations for
> different containers, input types, and "-ss" option positions, but:
>
> 1. The project does not require any of the implementations to give
> frame-accurate results for the codec copy operation, (though it is
> allowed), and
> 2. The project does not require the documentation to describe whether
> the results are frame-accurate or not, and
> 3. The project does not require the documentation to confess either
> #1 or #2.
> 4. Because of #1, any answer to whether or not a particular case is
> frame-accurate, or the the way in which it is inaccurate, or why,
> must come from studying the code.
>
> So one should not expect a person on this list to have the answer
> easily at hand. Mark's answer must come from studying the code.
>
I suspect Mark will not be delighted with that answer.
—Jim DeLaHunt
More information about the ffmpeg-user
mailing list