问题标签 [v4l2loopback]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
264 浏览

opencv - 使用 Gstreamer 同时在 2 个应用程序中使用视频设备

我正在尝试在 2 个不同的应用程序中使用我的 Jetson Nano(通过 SSH 无头运行)上的摄像头馈送。

从命令行,我可以运行

它通过 X11 窗口将视频从我的相机(连接到 Jetson Nano 的 IMX219)流式传输到我的桌面。

我想做的是以某种方式在 2 个不同的应用程序中使用相同的视频流。我的第一个应用程序是一个运行一些 OpenCV 东西的 python 程序,第二个应用程序是一个简单的 bash 脚本,它将视频记录到一个 *.mp4 文件中。

这样的事情可能吗?我已经研究过 using v4l2loopback,但我不确定这是否真的是最简单的方法。

0 投票
1 回答
574 浏览

ffmpeg - 为什么我不能在 Linux 上将 MJPEG 流从网络摄像头复制到 V4L2 环回设备?

我正在尝试使用运行最新 Raspbian (也是最小的 CPU 负载)。我正在使用 FFMPEG 版本 7:4.1.6-1~deb10u1+rpt2 和 v4l2loopback 版本 0.12.5.1。

的输出: ffmpeg -f v4l2 -list_formats all -i /dev/video0给了我以下信息:

3264x2448px 是原始 CCD 分辨率,图像用于机器视觉目的,所以我想以最高帧速率使用这个最大分辨率。使用环回设备的原因是,我可以使用命令查看/流式传输视频源(使用 GStreamer)并同时拍摄高分辨率 PNG 快照据ffmpeg -f v4l2 -video_size 3264x2448 -i /dev/video99 -frames 1 capture.png -y我了解,这意味着在此分辨率下有一个 MJPEG 流,根据命令v4l2-ctl -d /dev/video0 --list-formats-ext我可以管理15fps:

我觉得我已经尝试了所有可能的 GStreamer/FFMPEG 命令版本来实现这一点,并且取得了不同程度的成功,但我经常遇到“av_interleaved_write_frame():无法分配内存”或转换 M-JPEG 的一些问题为环回设备的 rawvideo...

我应该使用什么命令?我已经走到尽头了!

我试过了:

(编辑)给出:

(编辑)给出:

(编辑)给出:

我不确定接下来要解决什么问题 - 查看可用内存,没有问题,那么我做错了什么?这个提要的副本是拼图的最后一块......

0 投票
1 回答
335 浏览

v4l2 - modprobe:错误:无法插入“v4l2loopback”:模块中的未知符号或未知参数(请参阅 dmesg)

我正在尝试在 AWS EC2 实例上设置虚拟 v4l2 设备。我确实 apt installv4l2loopback-dkmsv4l2loopback-utils.

当我尝试设置设备时出现以下错误

sudo modprobe v4l2loopback device=8

modprobe: ERROR: could not insert 'v4l2loopback': Unknown symbol in module, or unknown parameter (see dmesg)

如果我检查dmesg: [87243.295525] v4l2loopback: Unknown symbol video_ioctl2 (err -2)

[87243.295553] v4l2loopback:未知符号 v4l2_ctrl_handler_init_class (err -2)

[87243.295582] v4l2loopback:未知符号 video_devdata(错误 -2)

[87243.295605] v4l2loopback:未知符号 v4l2_ctrl_new_custom(错误 -2)

[87243.295623] v4l2loopback:未知符号 video_unregister_device(错误 -2)

. . .

uname -a

5.4.0-1055-aws #58~18.04.1-Ubuntu SMP Wed Jul 28 03:04:50 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

你能帮我解决这个问题吗?

0 投票
0 回答
205 浏览

linux - v4l2loopback 虚拟摄像头在 Ubuntu 台式机上工作,但在 Jetson Nano 上不工作

我制作了这段代码,它获取相机视频,添加一个 mask.jpg 并从中创建一个新的“假”虚拟相机 ( v4l2loopback)。它在我的 Ubuntu 台式电脑上运行良好,但我无法在 Jetson Nano 上运行。花了一整天的时间,但仍然收到此错误。任何人都可以帮助我吗?(还尝试了 CSI 和 USB 网络摄像头,结果相同)

错误:

代码:

0 投票
0 回答
55 浏览

c++ - 使用 libfreenect2 和 V4L2Loopback 在 Linux 上将 KinectV2 用作网络摄像头

我正在尝试将我的 KinectV2 设置为 Linux 中的网络摄像头,使用libfreenect2与 Kinect 交互,并使用libv4l2cpp作为 C++ 的 V4L2 库的包装器。

问题是我无法让它显示我的图像,而我在相机设备上只能看到一个黑框......这是我的代码:

我究竟做错了什么?我从两个库的示例中复制了大部分内容,所以我希望它能够工作......我的猜测是它与我告诉 V4L2 使用的两种格式有关,但据我所知,V4L2_PIX_FMT_XBGR32应该是适当的一种,根据 libreenect2 的文档,帧应该是原始 BGR 格式,每个像素使用 4 个字节,最后一个用作填充...

0 投票
1 回答
34 浏览

loopbackjs - 如何接收 Post 请求正文并将该正文传递给我在环回中的函数

我想创建动态模型、存储库和控制器

我需要帮助我应该如何创建将接收请求正文的 Post 方法,并且该正文将传递给我上面提到的函数,

目前我正在通过这个端点调用 dynamicModelsDemo 函数,

我想将此@get 转换为@post,以便我可以将我请求的正文传递给此函数..

0 投票
0 回答
114 浏览

python - VideoCapture 发布 - 无法分配缓冲区 (V4l2src) Jetson NX

我在 gstreamer 中使用 v4l2sink 来播放可以在 OpenCV 中访问的视频流。这在我打开视频捕获设备并获取帧时有效,但是在某些时候我想释放捕获设备并稍后在程序中重新打开它。当我释放设备时,我收到以下错误:

我像这样打开捕获设备:

像使用一样释放它cap.release() ,我的 gstreamer 管道是:

我使用以下方法创建 v4l2loopback 设备:

我必须指定 max_buffers=2 因为我遇到了与这篇文章相同的问题:Gstreamer v4l2src 在 Jetson Nano上运行时无法分配缓冲区,在开始时我遇到了无法分配缓冲区的错误。

当我尝试重新打开管道和捕获设备时出现主要问题,因为 gstreamer 给了我一个未协商错误的原因。

0 投票
0 回答
8 浏览

gstreamer - 查看是否有进程捕获 v4l2loopback 设备的最智能和最干净的方法

我有一个 gstreamer 管道,我将数据推送到 v4l2loopback 设备,然后从浏览器中获取它。

从 gstreamer 的 C 代码中,查看浏览器是否主动从设备捕获的最聪明的方法是什么?

我用 popen 打了一个fuser电话,但希望有更干净的东西:)

0 投票
0 回答
87 浏览

linux - 在 Google Cloud 中安装 v4l2loopback 内核模块

我正在尝试让 v4l2loopback 内核模块在 Google Cloud 中的 Debian Buster 实例上工作。

我尝试了以下三种方法(安装了当前内核的头文件):

  1. apt-get install v4l2loopback-dkms
  2. apt-get install v4l2loopback-source module-assistant && module-assistant auto-install v4l2loopback-source
  3. 克隆github 存储库并手动编译。

在所有情况下,内核都已成功安装/编译,但是当我尝试加载它时,我会Unknown symboldmesg. 具体来说,它们是:

我对内核模块知之甚少,无法真正理解这意味着什么,也不知道如何修复它。

这似乎是与机器相关的特定问题(Linux 4.19.0-17-cloud-amd64),因为我可以在本地机器上安装 v4l2loopback 模式而不会出现任何问题。

关于如何进行的任何建议?

应该改变什么才能成功加载内核?

您能否提出可能有用的其他信息?

0 投票
1 回答
98 浏览

linux - Raspberry Pi 摄像头模块无法被普通应用程序检测到

我为我的树莓派 4 2 GB 型号在亚马逊购买了一个 5 mp 摄像头模块。然后我对其进行了配置以供使用并使用 and 对其进行了测试raspistillraspivid它按预期工作。但由于它是连接到 CSI 端口的模块而不是 USB 摄像头,因此某些常见应用程序无法检测到它。例如:- OBS(来自 Pi-Apps)、Zoom(来自 PI-Apps、Pi-Kiss 及其门户网站)。

我试过什么?--

  1. 通过 OBS 的虚拟相机。我能够安装 OBS,但我无法为虚拟相机和相机模块编译它的插件。它有很多错误。

  2. IP 摄像头适配器:- 想法是在本地网络上流式传输摄像头源,然后将源转换为虚拟摄像头。是的,有很多这样的应用程序,但都只适用于 windows/Mac,而不适用于 Linux。即使是少数可用的也不支持 Raspberry pi 的架构。

是否有任何解决方法或技巧可以使模块像普通相机一样工作?

PS:-如果您想知道为什么问题出现在 Stackoverflow 上,那么我觉得这是一个与软件相关的问题,而 Stackoverflow 是最好的;)。