[ffmpeg]Die Eingabesuche scheint zu einer falschen Dauer der Ausgabedatei zu führen, wenn der Suchwert mit -codec copy klein ist

[ffmpeg]Die Eingabesuche scheint zu einer falschen Dauer der Ausgabedatei zu führen, wenn der Suchwert mit -codec copy klein ist

Ich habe versucht, ein paar Sekunden vom Anfang einiger MP4-Dateien zu entfernen, ohne sie neu zu kodieren. Zuerst habe ich die Ausgabesuche verwendet, d. h.

E:\>ffmpeg -i input.mp4 -ss 00:00:05 -t 00:01:00 -c copy output.mp4

Allerdings kam es zu einem eingefrorenen Frame für einige Sekunden am Anfang der Ausgabedatei (ich vermute, es hing mit der Suche nach Keyframes zusammen, also habe ich versucht, das Flag -copyinkf hinzuzufügen, aber das hat nicht geholfen). Daher habe ich versucht, die Eingabesuche zu verwenden, d. h.

E:\>ffmpeg -ss 00:00:05 -i input.mp4 -t 00:01:00 -c copy output.mp4

Die resultierende Ausgabedatei war aufregend und wurde am Anfang reibungslos und genau abgespielt, außer dass die Dauerinformationen der Ausgabedatei vom tatsächlichen Wert abwichen. Der obige Befehl sollte eine Videodatei mit der Dauer 00:01:00 ergeben. Ich habe jedoch stattdessen eine Datei mit der Dauer 00:01:05 erhalten, die das 00:01:00 lange Video enthält. Ich habe es auch mit einem größeren Suchwert versucht und es hat gut geklappt.

E:\>ffmpeg -ss 00:00:10 -i input.mp4 -t 00:01:00 -c copy output10.mp4
E:\>ffmpeg -ss 00:00:15 -i input.mp4 -t 00:01:00 -c copy output15.mp4

Dieses Bild zeigt die Dauer der Ausgabedateien

Ich weiß nicht, warum es zwischen ihnen einen Unterschied gibt, und hoffe, dass mir jemand dabei helfen kann. Ich wäre für Ihre Hilfe dankbar.

Anmerkungen:

  1. ffmpeg-Version N-93439-gb073fb9eea. Ich habe einige ältere Versionen ausprobiert und die Ergebnisse waren dieselben.
  2. Die Video- und Audio-Codecs der Eingabedatei sind AVC bzw. AAC.

verwandte Informationen