问题标签 [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.
opencv - 使用 Gstreamer 同时在 2 个应用程序中使用视频设备
我正在尝试在 2 个不同的应用程序中使用我的 Jetson Nano(通过 SSH 无头运行)上的摄像头馈送。
从命令行,我可以运行
它通过 X11 窗口将视频从我的相机(连接到 Jetson Nano 的 IMX219)流式传输到我的桌面。
我想做的是以某种方式在 2 个不同的应用程序中使用相同的视频流。我的第一个应用程序是一个运行一些 OpenCV 东西的 python 程序,第二个应用程序是一个简单的 bash 脚本,它将视频记录到一个 *.mp4 文件中。
这样的事情可能吗?我已经研究过 using v4l2loopback
,但我不确定这是否真的是最简单的方法。
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...
我应该使用什么命令?我已经走到尽头了!
我试过了:
和
(编辑)给出:
和
(编辑)给出:
和
(编辑)给出:
我不确定接下来要解决什么问题 - 查看可用内存,没有问题,那么我做错了什么?这个提要的副本是拼图的最后一块......
v4l2 - modprobe:错误:无法插入“v4l2loopback”:模块中的未知符号或未知参数(请参阅 dmesg)
我正在尝试在 AWS EC2 实例上设置虚拟 v4l2 设备。我确实 apt installv4l2loopback-dkms
和v4l2loopback-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
你能帮我解决这个问题吗?
linux - v4l2loopback 虚拟摄像头在 Ubuntu 台式机上工作,但在 Jetson Nano 上不工作
我制作了这段代码,它获取相机视频,添加一个 mask.jpg 并从中创建一个新的“假”虚拟相机 ( v4l2loopback
)。它在我的 Ubuntu 台式电脑上运行良好,但我无法在 Jetson Nano 上运行。花了一整天的时间,但仍然收到此错误。任何人都可以帮助我吗?(还尝试了 CSI 和 USB 网络摄像头,结果相同)
错误:
代码:
c++ - 使用 libfreenect2 和 V4L2Loopback 在 Linux 上将 KinectV2 用作网络摄像头
我正在尝试将我的 KinectV2 设置为 Linux 中的网络摄像头,使用libfreenect2与 Kinect 交互,并使用libv4l2cpp作为 C++ 的 V4L2 库的包装器。
问题是我无法让它显示我的图像,而我在相机设备上只能看到一个黑框......这是我的代码:
我究竟做错了什么?我从两个库的示例中复制了大部分内容,所以我希望它能够工作......我的猜测是它与我告诉 V4L2 使用的两种格式有关,但据我所知,V4L2_PIX_FMT_XBGR32
应该是适当的一种,根据 libreenect2 的文档,帧应该是原始 BGR 格式,每个像素使用 4 个字节,最后一个用作填充...
loopbackjs - 如何接收 Post 请求正文并将该正文传递给我在环回中的函数
我想创建动态模型、存储库和控制器
我需要帮助我应该如何创建将接收请求正文的 Post 方法,并且该正文将传递给我上面提到的函数,
目前我正在通过这个端点调用 dynamicModelsDemo 函数,
我想将此@get 转换为@post,以便我可以将我请求的正文传递给此函数..
python - VideoCapture 发布 - 无法分配缓冲区 (V4l2src) Jetson NX
我在 gstreamer 中使用 v4l2sink 来播放可以在 OpenCV 中访问的视频流。这在我打开视频捕获设备并获取帧时有效,但是在某些时候我想释放捕获设备并稍后在程序中重新打开它。当我释放设备时,我收到以下错误:
我像这样打开捕获设备:
像使用一样释放它cap.release()
,我的 gstreamer 管道是:
我使用以下方法创建 v4l2loopback 设备:
我必须指定 max_buffers=2 因为我遇到了与这篇文章相同的问题:Gstreamer v4l2src 在 Jetson Nano上运行时无法分配缓冲区,在开始时我遇到了无法分配缓冲区的错误。
当我尝试重新打开管道和捕获设备时出现主要问题,因为 gstreamer 给了我一个未协商错误的原因。
gstreamer - 查看是否有进程捕获 v4l2loopback 设备的最智能和最干净的方法
我有一个 gstreamer 管道,我将数据推送到 v4l2loopback 设备,然后从浏览器中获取它。
从 gstreamer 的 C 代码中,查看浏览器是否主动从设备捕获的最聪明的方法是什么?
我用 popen 打了一个fuser电话,但希望有更干净的东西:)
linux - 在 Google Cloud 中安装 v4l2loopback 内核模块
我正在尝试让 v4l2loopback 内核模块在 Google Cloud 中的 Debian Buster 实例上工作。
我尝试了以下三种方法(安装了当前内核的头文件):
apt-get install v4l2loopback-dkms
apt-get install v4l2loopback-source module-assistant && module-assistant auto-install v4l2loopback-source
- 克隆github 存储库并手动编译。
在所有情况下,内核都已成功安装/编译,但是当我尝试加载它时,我会Unknown symbol
从dmesg
. 具体来说,它们是:
我对内核模块知之甚少,无法真正理解这意味着什么,也不知道如何修复它。
这似乎是与机器相关的特定问题(Linux 4.19.0-17-cloud-amd64),因为我可以在本地机器上安装 v4l2loopback 模式而不会出现任何问题。
关于如何进行的任何建议?
应该改变什么才能成功加载内核?
您能否提出可能有用的其他信息?
linux - Raspberry Pi 摄像头模块无法被普通应用程序检测到
我为我的树莓派 4 2 GB 型号在亚马逊购买了一个 5 mp 摄像头模块。然后我对其进行了配置以供使用并使用 and 对其进行了测试raspistill
,raspivid
它按预期工作。但由于它是连接到 CSI 端口的模块而不是 USB 摄像头,因此某些常见应用程序无法检测到它。例如:- OBS(来自 Pi-Apps)、Zoom(来自 PI-Apps、Pi-Kiss 及其门户网站)。
我试过什么?--
通过 OBS 的虚拟相机。我能够安装 OBS,但我无法为虚拟相机和相机模块编译它的插件。它有很多错误。
IP 摄像头适配器:- 想法是在本地网络上流式传输摄像头源,然后将源转换为虚拟摄像头。是的,有很多这样的应用程序,但都只适用于 windows/Mac,而不适用于 Linux。即使是少数可用的也不支持 Raspberry pi 的架构。
是否有任何解决方法或技巧可以使模块像普通相机一样工作?
PS:-如果您想知道为什么问题出现在 Stackoverflow 上,那么我觉得这是一个与软件相关的问题,而 Stackoverflow 是最好的;)。