1

Я использую FFmpeg для работы с видео с отрицательным временем запуска:

$ ffmpeg -i test.mp4 -ss 0 out.mp4
...
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'test.mp4':
  Metadata:
    major_brand     : mp42
    minor_version   : 1
    compatible_brands: mp41mp42isom
    creation_time   : 2018-01-03 11:35:13
  Duration: 00:00:06.16, start: -1.238906, bitrate: 1425 kb/s
...
Output #0, mp4, to 'out.mp4':
...
frame=  222 fps=0.0 q=-1.0 Lsize=     166kB time=00:00:07.44 bitrate= 182.9kbits/s

Есть ли способ обрезать видео в момент 0? т.е. выход должен иметь продолжительность 6,16, а не 7,74. Я попытался установить -avoid_negative_ts для всех различных значений. Очевидно, я мог бы вручную прочитать отрицательное значение и запустить его снова с правильным смещением, используя -ss , но я ищу автоматическое решение.

1 ответ1

2

Обычно, -ss как опция ввода работает как относительное смещение от начала файла. Поскольку ваше начальное время отрицательно и будет заранее неизвестно, вы можете включить seek_timestamp для поиска абсолютного значения временной отметки.

ffmpeg -seek_timestamp 1 -ss 0 -i test.mp4 out.mp4

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .