小编Dav*_*vid的帖子

v4l2 Python-流视频-映射缓冲区

我正在为Raspbian(Raspberry Pi 2)中的Python开发视频捕获脚本,由于在内存映射缓冲区方面没有成功,因此无法为v4l2使用Python绑定。

我需要的:

  • 从HD-WebCam捕获视频(稍后将同时捕获其中的2个视频)。
  • 能够通过WLAN流传输该视频(在网络负载和处理速度之间妥协)。
  • 将来,可以在流式传输之前对图像应用滤镜(不是必须的)。

我尝试过的

  • 使用OpenCV(cv2)。它非常易于使用,但是由于它将网络摄像头的JPEG帧转换为原始图像,因此增加了很多处理负载,然后我不得不将它们转换回JPEG,然后再通过WLAN发送。
  • 直接从“ / dev / video0”读取。太好了,因为网络摄像头发送已压缩的帧,而我可以读取并发送它们,但是看来我的相机不支持该帧。
  • 对Python使用v4l2绑定。到目前为止,这是最有前途的选择,但是当我不得不映射视频缓冲区时,我陷入了困境。我发现没有办法克服这些东西似乎需要的“内存指针/映射”。

我读过的东西:

我的问题:

  1. 有一个更好的方法吗?否则
  2. 我可以告诉OpenCV不要解压缩图像吗?最好使用OpenCV来应用将来的扩展。我在这里发现这是不允许的。
  3. 如何解决Python中的映射步骤?(任何可行的例子吗?)

这是我的(缓慢的)OpenCV工作示例:

import cv2
import time

video = cv2.VideoCapture(0)

print 'Starting video-capture test...'

t0 = time.time()
for i in xrange(100):
    success, image = video.read()
    ret, jpeg = cv2.imencode('.jpg',image)

t1 = time.time()
t = ( t1 - t0 ) / 100.0
fps = 1.0 / t …
Run Code Online (Sandbox Code Playgroud)

opencv video-capture v4l2 python-2.7

5
推荐指数
2
解决办法
3219
查看次数

标签 统计

opencv ×1

python-2.7 ×1

v4l2 ×1

video-capture ×1