问题标签 [video4linux]
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.
c++ - 如何在不使用opencv的情况下直接在c/c++中从USB网络摄像头读取h264流作为文件?
我能够读取 h264 格式的视频文件并在其上进行一些机器学习推理。该代码对于来自文件的输入非常有效。下面的代码是来自Deepstream SDK的示例代码
什么是要求?
- 从 Logitech c920 网络摄像头读取视频文件。
- 我知道如何使用 opencv 从网络摄像头读取数据。但我不想在这里使用opencv。
我的研究
- 使用 v4l 我们可以获取流并将其显示在 vlc 中。
- 相机支持以下格式。
@ubox:~$ v4l2-ctl --device=/dev/video1 --list-formats
ioctl:VIDIOC_ENUM_FMT 索引:0 类型:视频捕获像素格式:'YUYV' 名称:YUYV 4:2:2
索引:1 类型:视频捕捉像素格式:“H264”(压缩) 名称:H.264
索引:2 类型:视频捕捉像素格式:“MJPG”(压缩) 名称:Motion-JPEG
- 在 Linux 中读取 USB 网络摄像头的输出
vlc v4l2:///dev/video1 --v4l2-chroma=h264
- 这会显示来自网络摄像头的视频。
这个怎么做? - 现在如何将此实时流输入到上面的示例代码中,以便它从网络摄像头而不是文件中读取?
[update-1] - 换句话说,v4l 是否有一些选项可以将视频流写入 h264 共振峰?这样,当它(v4l)写入磁盘时,我可以像以前(上面的代码)一样读取该文件。
[update-2] - 我们可以使用ffmpeg代替 v4l。如果有任何使用ffmpeg将视频流连续保存到磁盘的解决方案,以便其他程序读取该文件?
c - 尝试从 /dev/video0 读取设备信息时出现 Video4Linux ioctl 错误 (#25)
我目前正在尝试使用以下代码检索内置网络摄像头的设备信息:
当代码执行时,进入 else 块,从而给出以下内容:
由此看来,设备以错误的方式打开,以至于 ioctl 无法使用文件描述符。我肯定错过了什么; 这里有人可以帮我打开 /dev/video0 设备吗?
谢谢!
ps如果之前在其他地方已经回答过,请告诉我。如果这个问题无论如何都是无效的,那么请接受我的道歉。
video - 使用 ffmpeg 在 beaglebone 上将原始视频转换为 mp4
我真的很感谢这个帮助。我正在使用我的 beaglebone black 通过网络摄像头录制视频。相机支持的格式如下所示。
当我录制原始 4:2:2 YUV 视频剪辑时,无法将其回放以查看,因此我尝试使用 ffmpeg 将其转换为 mp4。
它指出 yuyv422 是一种不兼容的像素格式,所以我尝试首先使用以下命令将视频转换为 420p,output_422.yuv 是我从相机录制的视频。
结果是:
然后我尝试将其转换为 mp4,如下所示:
看起来转换成功了,但是当我尝试通过 vlc 播放器播放时,我没有视频,只是闪烁了几秒钟。我尝试过更改分辨率、帧速率等,但没有任何乐趣。某处有问题,但不确定在哪里。
有人会知道可能出了什么问题吗?谢谢
ubuntu-16.04 - 网络摄像头 + 外接摄像头故障,无法访问 /dev/video*:没有这样的文件或目录
我希望有人可以帮助我!
我正在使用 Toshiba SATELLITE-L50-A-1DN,将相机连接到 USB 端口时遇到问题,以及无法识别集成网络摄像头。
我正在使用内核 4.13.0-45-generic 的 Ubuntu 16.04
插入外部网络摄像头后,lsusb
没有变化,表示没有识别出任何设备。
ls -ltrh /dev/video*
返回错误:ls: cannot access '/dev/video*': No such file or directory
我已经尝试安装 uvcvideo,但已经安装了最新版本。与此相关,我无法访问使用我尝试使用的两台摄像机之一所需的 Video4Linux 模块。
我知道这里发布了同样的问题:无法访问/dev/video*:没有这样的文件或目录,但我似乎无法使该解决方案适合我。
c++ - 如何交叉编译 linux 和 udev 的 arm 视频
我正在尝试使我们的应用程序在 Arm 设备上运行,规格:
为此我安装了必要的交叉编译器
由于我们使用 Qt,我还为这个特定的架构交叉编译了 Qt:
我们的应用程序与 linux 的视频链接,因此我们有以下编译行:
而且由于我显然没有为 linux 交叉编译视频,所以我收到了以下错误消息:
问题来了:
我从哪里获得 video4linux 的源代码,以及如何为我的架构交叉编译它们?请注意,我从https://www.linuxtv.org/downloads/找到了名为 v4l-utils 的东西,但是:
- 它需要与libudev链接(交叉编译库的目录中不存在,我不知道从哪里得到它)
- 我不认为这是我需要的:)
谢谢您的帮助
c - OpenCV无法识别网络摄像头,但mplayer成功
作为大型项目的第一步,我尝试使用 OpenCV 显示来自网络摄像头的图像:
这将返回一个错误代码(!cap.isOpened()
通过,用 gdb 确认)。最初我有0
而不是-1
. 搜索此站点-1
时建议使用,但无济于事。我也试过1
了3
正如另一位用户建议的那样,
我可以使用 mplayer 显示我的网络摄像头,更具体地说是mplayer tv:// -tv driver=v4l2
.
ffmpeg - 如何配置 vlc/ffplay/cheese(或其他)以在我的 3 个网络摄像头之间自动循环/旋转?
我有 3 个网络摄像头,它们在 Ubuntu 18.04 中注册为 /dev/video0、/dev/video1 和 /dev/video2。这三个在 Cheese 和 ffplay 中都很好(但由于某种原因不是 vlc ......对于这个问题并不重要)。
我想要的是打开一个查看窗口,让图像自动从设备 0 移动到设备 1 再到设备 2 并每隔 X 秒回到 0,而无需关闭窗口或调整大小。
我认为最终的解决方案将来自创建一个假视频设备(比如说 /dev/video3),用程序观看它并使用 ffmpeg 或其他命令行脚本来更改 /dev/video3 的流。(v4l2loopback 似乎很有希望)
不幸的是,我在这上面花了几个小时却一无所获。任何帮助,将不胜感激。
ffmpeg - ffmpeg 覆盖 v4l2-ctl 配置 -> 如何将真正的原始设备复制到网络?
我需要对 tcp 套接字副本做一个真实的设备,例如:
这个非常基本的命令行适用于我的情况。我想做同样的事情,但使用 ffmpeg 进程。目的是标准化流处理过程,在这种情况下,从设备到网络的基本原始副本,以及从任何源到网络的高级转码,始终使用相同的 ffmpeg 过程。
我在 ffmpeg 之前使用 v4l2-ctl 来进行很多我想保留的配置。
我试过了 :
这里的问题 ffmpeg 杀死了我的 v4l2 配置,我不想在我的代码中设置两次(v4l2-ctl 接口 + ffmpeg 接口)。
我也试过:
我总是得到这个 stderr + exit :
我也试过
上述所有组合的参数均未成功:(
如何使用 ffmpeg 将原始二进制副本(如使用 NetCat 的“cat”或“dd”)从设备到套接字(不杀死 v4l2 配置)?
帕斯卡
linux-kernel - 实现AMG8xx红外相机内核模块和Video4Linux
我找到并分叉了(https://github.com/firebladed/amg88xx-kernel-driver/blob/master/amg88xx.c),AMG8xx的内核模块(http://industrial.panasonic.com/cdbs /www-data/pdf/ADI8000/ADI8000C66.pdf)它当前输出到 /sys/ 作为值的文本数组,这不是理想的输出
并且正在研究让它与 video4linux 一起工作需要什么,我找到了关于 SOC-camera 驱动程序的文档(https://www.kernel.org/doc/html/v4.19/media/v4l-drivers /soc-camera.html),但不清楚实际实现它需要什么
谁能提供一个大纲或指导我如何做到这一点的文档?
opencv - 用于 OpenCV 问题的 Video4Linux Y12 像素格式
我有一个连接到树莓派 4 的AMG88xx 红外摄像头,我正在使用 linux video-i2c驱动程序,该驱动程序似乎可以正常工作
但是,openCV 似乎不支持输出像素格式(Y12)
我是否需要构建带有额外支持的 OpenCV?或以某种方式转换像素格式?