Вопрос

Я ищу среду Python, которая позволит мне воспроизводить видео, а также рисовать на нем (для маркировки).

Я пробовал Pyglet, но, похоже, это работает не очень хорошо - при рисовании на существующем видео возникает мерцание (даже при двойной буферизации и всем подобных вещах), и, похоже, нет способа чтобы получить индекс кадра в видео во время обратного вызова для каждого кадра (только время, прошедшее с момента последнего кадра).

Это было полезно?

Решение

Попробуйте оболочку Python для OpenCV, например ctypes-opencv.Ссылка на API C: здесь, и оболочка очень близка (любые изменения см. в строках документации).

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

Приблизительная схема звонков, которые вам нужны:

  • Загрузите видео с помощью cvCreateFileCapture, загрузите шрифт с помощью cvFont.
  • Захватите кадр с помощью cvQueryFrame, увеличьте счетчик кадров.
  • Нарисуйте фрейм с помощью cvPutText, cvEllipse и т. д. и т. п.
  • Отображение пользователю с помощью cvShowImage.

Другие советы

Qt (PyQt) имеет Phonon, который может помочь. PyQt доступен в виде GPL или платного ПО. (У Qt тоже есть LGPL, но у обёрток PyQt нет)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top