Opencv компилирует видео с неправильным fpsPython

Программы на Python
Ответить
Anonymous
 Opencv компилирует видео с неправильным fps

Сообщение Anonymous »

У меня есть код Python, который генерирует кадры с помощью pil, а затем opencv компилирует их в видео. На компьютере все работает отлично, но теперь я пытаюсь запустить тот же код на планшете и не могу получить правильную частоту кадров/продолжительность. Информация о файле показывает, что это 60 кадров в секунду, но продолжительность составляет всего 1 с, тогда как должна быть 7 с.
Потом я попробовал добавить Sleep(0.017)(60 кадров в секунду) между компиляцией кадров, и это работает! Но теперь мне нужно ждать столько же, сколько будет видео...
Я не знаю, что делать. На планшете Python используется opencv 4.3.0, и я не могу его обновить...
Функция генерирует информацию для спортивного видео. В спорте бросок и результат длятся 7 секунд (бросок 5 секунд и результат 2 секунды). Таким образом, он генерирует кадры с помощью pil, а затем с настройками opencv и fps создает нужное количество кадров в цикле for.
Вот код:
duration = [5,2]
def create_video(frames, fps, duration, name):
duration_flip = 0
videodims = frames[0].size
fourcc = cv2.VideoWriter_fourcc(*'avc1')
cwd = os.getcwd()
video = cv2.VideoWriter(cwd + "\\" + name + ".mp4",fourcc, fps,videodims)
#goes through all the generated frames
for frame in frames:
#print(frame)
# generates right amount of frames relative to fps
for fps_frame in range(duration[duration_flip] * fps):
video.write(cv2.cvtColor(np.array(frame), cv2.COLOR_RGB2BGR))
#sleep(0.017)
duration_flip = 1 - duration_flip
video.release()
return 0


Подробнее здесь: https://stackoverflow.com/questions/798 ... -wrong-fps
Ответить

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

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

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

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

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