我想使用 python 在(2D)numpy 数组中从 libvlc 中获取每个视频帧。我希望将 vlc.MediaPlayer.video_set_callbacks(...) 与 [callbacks][1] 一起使用来管理一个 numpy 数组,但是没有关于在 python 中使用回调的文档。
任何想法或替代方法?
[1]: 用 vlc.cb.VideoLockCb 和它的朋友装饰
也许看看PyFFmpeg?我不使用这个 python 模块,因此我不知道它的工作情况如何,但它确实宣传了您需要的功能。
编辑
OpenCV也值得一试。它可能更稳定。OpenCV 提供不少于两个 python 绑定。后者更好的是 cv2 与 numpy 集成。它比旧的 cv 模块更容易使用。例如,您可以使用以下代码读取视频帧:
import cv2
filename = 'myfile.mpg'
capture = cv2.VideoCapture(filename)
retval, im = capture.read()
每次调用.read
都会输出一个新的视频帧。