【问题标题】:Not able to generate stable video stream over v4l2loopback device with python无法使用 python 在 v4l2loopback 设备上生成稳定的视频流
【发布时间】:2012-12-13 15:56:14
【问题描述】:

我正在为我的视频映射集开发流生成器,但我无法使图像稳定。 我用python-v4l2打开一个v4l2loopback设备,通过它生成一个基于png的视频流,这样就可以在我的vj集中生成实时视频,静态视频映射它们并应用效果。

测试用例: 1) 加载 v4l2loopback 模块

2) 运行python:

import fcntl, numpy
from v4l2 import *
from PIL import Image
height = 600
width = 634
device = open('/dev/video4', 'wr')
print(device)
capability = v4l2_capability()
print(fcntl.ioctl(device, VIDIOC_QUERYCAP, capability))
print("v4l2 driver: " + capability.driver)
format = v4l2_format()
format.type = V4L2_BUF_TYPE_VIDEO_OUTPUT
format.fmt.pix.pixelformat = V4L2_PIX_FMT_RGB32
format.fmt.pix.width = width
format.fmt.pix.height = height
format.fmt.pix.field = V4L2_FIELD_NONE
format.fmt.pix.bytesperline = format.fmt.pix.width * 4
format.fmt.pix.sizeimage = format.fmt.pix.width * format.fmt.pix.height * 4
format.fmt.pix.colorspace = V4L2_COLORSPACE_SRGB
print(fcntl.ioctl(device, VIDIOC_S_FMT, format))
img = Image.open('img/0.png')
img = img.convert('RGBA')
while True:
    device.write(numpy.array(img))

3) 运行 Cheese 或其他 v4l2 流查看器。

结果是一个颜色和大小合适的图像,但它会从左到右跳跃每一帧,并且总是向左多一点,所以你会得到一个滑动和跳跃的视频结果。 我做错了什么?

最好的问候,

哈里波

ps:如果您想查看结果,请查看:link 到目前为止,LiVES、puredate、gem 视频映射设置在 v4l2 流中运行良好。

【问题讨论】:

  • 我做了更多测试,似乎与图像大小有关。在之前使用的自定义像素格式中,它看起来像这样:youtube.com/watch?v=7_iD9A0P7mc 但如果我在 640x480 中渲染相同的视频流,图像会保持静止,在错误的位置 doh:youtube.com/watch?v=Ajq4RsAPKGA 在 1024x768 渲染时会保持静止并在正确的位置,但每隔几帧仍然会产生垃圾:youtube.com/watch?v=eHO7CYGdp7E这是一个错误还是我转换图像数据错误?

标签: python video-capture v4l2


【解决方案1】:

所以我得到了它的一种工作方式,但不确定它是否是正确的方法。稳定的视频流需要做什么:

1) 不要使用自定义分辨率,它们会变得混乱。

2) 每帧发送两次。我认为这与隔行扫描/顶部/底部框架有关。

3) 对于 640x480,将阵列中的所有像素向左移动 260 个空格,否则图像不直,对于 1024x768 不正确...不知道为什么会这样。

4) 程序可以生成的播放帧速率略低。

毕竟它是每 10 秒稳定 99%。大约有一个越野车框架。我认为这一定是程序生成的帧率不是 100% 稳定的。

仍然欢迎就我为什么或如何更好地做到这一点提出建议。

有关更新,请参阅:https://github.com/umlaeute/v4l2loopback/issues/32

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多