我正在寻找一个 Python 框架,它将使我能够播放视频并在该视频上绘图(用于标记目的)。

我尝试过 Pyglet,但这似乎效果不是特别好 - 在现有视频上绘图时,会出现闪烁(即使使用双缓冲和所有这些好东西),而且似乎没有办法在每帧回调期间获取视频中的帧索引(仅自上一帧以来经过的时间)。

有帮助吗?

解决方案

尝试使用 OpenCV 的 Python 包装器,例如 ctypes-opencv. 。C API 参考是 这里, ,并且包装器非常接近(有关任何更改,请参阅文档字符串)。

我用它在视频上绘图,没有任何闪烁,所以你应该没有问题。

您需要的通话的粗略轮廓:

  • 使用 cvCreateFileCapture 加载视频,使用 cvFont 加载字体。
  • 使用 cvQueryFrame 抓取帧,增加帧计数器。
  • 使用 cvPutText、cvEllipse 等在框架上绘制。
  • 使用 cvShowImage 向用户显示。

其他提示

Qt(PyQt)有Phonon,可能有所帮助。 PyQt可作为GPL或付费软件使用。 (Qt也有LGPL,但PyQt包装器没有)

尝试使用 GStreamer的Python绑定

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top