OpenCV выдает неправильный FPS и количество кадров видеоPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 OpenCV выдает неправильный FPS и количество кадров видео

Сообщение Anonymous »

Я пытаюсь прочитать, выполнить некоторую обработку, а затем сохранить видео .mp4 с помощью OpenCV в Python, но cap.get(cv2.CAP_PROP_FPS) возвращает неправильный FPS для некоторых видео.

Поэтому я не буду вдаваться в подробности того, что делает код, потому что это не имеет отношения к рассматриваемой проблеме. Я заметил, что выходное видео из моей программы воспроизводится слишком быстро, и во время отладки я решил просто посмотреть, как оно выглядит, когда я просто воспроизвожу входное видео.

Итак, код воспроизведения выглядит примерно так:

Код: Выделить всё

cap = cv2.VideoCapture(video_path)
video_fps = cap.get(cv2.CAP_PROP_FPS)
#returns 49.8

while cap.isOpened():
ret, frame = cap.read()
if ret:
cv2.imshow('a', frame)
cv2.waitkey(int(1000/video_fps))
else:
break
Но видео воспроизводится слишком быстро, поэтому я щелкаю правой кнопкой мыши -> свойства -> подробности, и действительно там написано количество кадров в секунду: 49.. . но я знаю, что большинство моих видео имеют частоту 25 кадров в секунду (что составляет примерно половину от 49,8), поэтому просто из любопытства я увеличиваю задержку вдвое: cv2.waitkey(int(2000/video_fps)) И вдруг видео воспроизводится на идеальной скорости.

Еще одна странность заключается в том, что когда я делю результат cap.get(cv2.CAP_PROP_POS_FRAMES) на длину видео в секундах, я снова получаю 49.8, и поскольку я знаю, что длина должна быть правильной, я могу только догадываться, что OpenCV неправильно определяет количество кадров (?)

Поэтому мои вопросы:

1) Что здесь, черт возьми, происходит?

2) Есть ли лучший\более надежный способ проверить fps видео и количество кадров?

Подробнее здесь: https://stackoverflow.com/questions/541 ... of-a-video
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»