#java #opencv
#java #opencv
Вопрос:
Я работаю над видеофайлом 119,88 кадров в секунду, 1080P H.264. Я делаю резюме, чтобы узнать, был ли маркер виден в данном кадре или нет. Мне нужно найти время разности между последовательными «положительными» кадрами. Проблема в том, что currentVC.get(Videoio.CAP_PROP_POS_MSEC) не согласуется с currentVC.get(Videoio.CAP_PROP_POS_FRAME) вообще. Например, для 24510-го кадра:
pos-код фрейма OpenCV: 24510.416438356166
Временная метка OpenCV: 149105.03333333333
Общая частота кадров: 119.8801198804266
Общее количество кадров: 31775.8493150685
Отметка времени для последнего кадра: 193303
Итак
24510/31775 = прошло 77 процентов видеозаписи
149105 / (193301) = 77 процентов видео истекло.
Пока все хорошо, НО
31775 / 120 кадров в секунду * 1000 мс — это около 4 с половиной минут, а не 3:12 минуты, как предполагает окончательная временная метка.
Пожалуйста, дайте мне знать, каким должен быть наилучший способ определения времени моих кадров.
Комментарии:
1. (31775.8493150685 * 1000) / 193303 = 164.38363251 кадров в секунду, если я не ошибся.
2. Привет, Мика. Еще раз спасибо за вашу помощь! Означает ли это, что информация о FPS для видео неверна?
3. либо видео, либо интерпретация opencv, либо fps не являются постоянными. Вы сами записали видео?