Почему извлечение одной секунды из видео по крайней мере не приводит к кратному времени кадра?
Пытаясь лучше понять, почему я не могу извлечь сегмент из фрагмента ролика с точным временем, даже если я учитываю частоту кадров клипа.
Например, если я запускаю следующую команду для видеоклипа со скоростью 29,97 кадров в секунду, пытаясь извлечь 1 секунду видео:
ffmpeg -i input.avi -ss 0 -t 1 -c:v huffyuv -an output.avi
продолжительность составляет 1,001 секунды.
Теперь это будет иметь больше смысла для меня, если результат на самом деле будет кратным 0,02997 секунд (29.97 fps / 1000 ms)
но делать математику, чтобы проверить кратные (0.02997, 0.05994, ..., 0.98901, 1.01898, 1.04895)
Я вижу, что ближайший множитель на самом деле будет 1.01898 или 1.04895
Что мне здесь не хватает?
1 ответ
Точная частота кадров не 29.97
, его 30000/1001
, Таким образом, каждый кадр имеет продолжительность 1001/30000
s, так что 30 кадров с такой скоростью занимают 1001*30/30000
знак равно 1.001
секунд.