[ffmpeg] Поиск входных данных, по-видимому, приводит к неправильной длительности выходного файла, если значение поиска мало с -codec copy

[ffmpeg] Поиск входных данных, по-видимому, приводит к неправильной длительности выходного файла, если значение поиска мало с -codec copy

Я пытался удалить пару секунд из начала некоторых файлов mp4 без перекодирования. Сначала я использовал выходной поиск, т.е.

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

Однако это привело к замораживанию кадра на несколько секунд в начале выходного файла (я предполагаю, что это было связано с поиском ключевого кадра, поэтому я попробовал добавить флаг -copyinkf, но это не помогло), поэтому я попытался использовать поиск ввода, т. е.

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

Полученный выходной файл был воодушевляющим, так как воспроизводился плавно и точно в начале, за исключением информации о длительности выходного файла, которая отличалась от фактического значения. Предполагалось, что указанная выше команда приведет к получению видеофайла с длительностью 00:01:00. Однако вместо этого я получил файл с длительностью 00:01:05, который содержит длинное видео 00:01:00. Я также пробовал с большим значением поиска, и все получилось просто отлично.

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

На этом изображении показана продолжительность выходных файлов.

Я не знаю, в чем разница между ними, и надеюсь, что кто-то сможет мне в этом помочь. Я буду признателен за вашу помощь.

Примечания:

  1. Версия ffmpeg N-93439-gb073fb9eea, я пробовал некоторые более старые версии и получал тот же результат.
  2. Видео- и аудиокодеки входного файла — avc и aac соответственно.

Связанный контент