问题标签 [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.
gstreamer - 缺少 gstreamer 插件
我以前从未使用过 gstreamer,但我正在尝试使用它和 video4linuxloopback 将我的 iPad 变成一个陪审团操纵的网络摄像头。我有一个应用程序,可以将摄像机中的视频输出到本地网络上的 IP,但无论我做什么,我都一直从“pipeline0”获取 EOS。当尝试使用 decodebin 运行它以查看它是否可以自动检测所需内容时,它说它需要一个 text/html 插件,但我似乎找不到它,假设它存在。这是完整的日志
c++ - 有没有办法使用 C++ 在 linux 中获取视频设备的数量及其名称?
目前我使用ls -ltrh /dev/video*
列出终端中的所有视频设备,或者在终端cat /sys/class/video4linux/video0/name
中显示该视频设备的名称。我想知道有没有办法在 C++ 中调用一些 api 来获取这些信息?谢谢。
ffmpeg - 需要帮助配置 FFMPEG 以使用网络摄像头 h264 流
我一直在尝试从 H264 USB 网络摄像头获取 H264 流,但我没有取得太大进展,所以我希望有人比我更了解 FFMPEG!
SO上有几十个问题/答案,但没有一个能解决我的问题。
简而言之,我得到了一个非常像素化(或有时大部分是绿色)的屏幕。我正在使用 VLC 来测试来自 RTSP 服务器的流。我正在使用 FFMPEG 将网络摄像头流复制到本地 RTSP 服务器。
网络摄像头还支持我可以开始工作的 YUYV - 它只是 h264 流给我带来了问题。
所以这就是设备的呈现方式:
/dev/video0 是 YUYV 和 MPEG 流 /dev/video2 是具有以下功能的 h264 流:
我已经尝试了各种分辨率,较小的分辨率会稍微减少像素化图像,但没有一个是可用的,并且绝对不能与 YUYV 高分辨率结果相比。
这个(YUYV)命令有效:
这两个 h264 选项不起作用:
对于最后一个命令,FFMPEG 输出如下所示:
这个问题看起来与带宽相关或正在使用的设备缺乏处理能力但是YUYV 以高分辨率工作并且(采用完全不同的方法,即不使用 FFMPEG)我可以得到一个非常体面的 MPEG 流在相同的设备。
那么有任何 FFMPEG 专家可以帮助我获得正确的 h264 流参数吗?
bash - 如何将我的 USB 网络摄像头录制为 mp4 格式?
我已经尝试了几个小时将我的 USB 网络摄像头录制为 .mp4 文件格式。目前唯一有效的格式是 .avi。我在使用 video4linux2 的 RPi 上。
此代码不起作用:
打开文件时,我的视频播放器出现错误。我也尝试添加“-f mp4”,但这也不起作用。请帮忙。谢谢!
nginx - 使用 nginx 和 ffmpeg 的 RaspberryPi HLS 流式传输;v4l2 错误:ioctl(VIDIOC_STREAMON):协议错误
我正在尝试使用 Raspberry Pi(型号 4B,4GB RAM)和普通网络摄像头(带集成麦克风)来实现婴儿监控。我遵循了本教程:https ://github.com/DeTeam/webcam-stream/blob/master/Tutorial.md
简要说明:
- 我安装并配置了一个启用了 rtmp 模块的 nginx 服务器。
- 我用这个配置安装了ffmpeg --enable-gpl --enable-nonfree --enable-mmal --enable-omx-rpi
- 我试图流式传输;)
nginx 的配置似乎正在工作(有时流工作,服务器启动没有任何复杂性,当服务器启动并运行时,会显示网页)。ffmpeg 的配置似乎也很好,因为流媒体有时可以工作......
我正在尝试几个不同的 ffmpeg-commands;所有这些有时都在工作,有时会导致错误。该命令如下所示:
注意:我重新排列了代码以使其更易于阅读。在终端中,一切都在一条线上。-f video4linux2
注意:使用代替时没有区别-f v4l2
摄像头被系统识别:
仅使用-i /dev/video0
时,音频传输从未起作用。的输出arecord -L
是:
这就是我添加的原因-i hw:CARD=Camera,DEV=0
。
如上所述,使用此配置和命令多次运行良好。但很多时候,我在开始流式传输时收到以下错误消息:
当我切换到/dev/video1
(因为这也是 的输出v4l2-ctl --list-devices
)时,我收到以下错误消息:
使用video0
输入时,识别访问的网络摄像头 LED 常亮。使用时video1
不。
经过数小时和数天的谷歌搜索、眼泪和威士忌,为了我的肝脏、我的婚姻和我的身心健康,我非常真诚地寻求你的帮助......我这样做是为了让它工作???
谢谢大家 :)
更新 1:
- 使用 ffmpeg 的完整路径不会改变任何东西......
- /dev/video0 和 /dev/video1 对每个人都有访问权限
sudo ffmpeg ...
也没有改变任何东西- 问题似乎处于“早期阶段”。剥离命令会
ffmpeg -i /dev/video0
导致同样的问题
更新 2:
当我第一次启动另一个需要访问网络摄像头然后 ffmpeg 的应用程序时,似乎一切正常lsmod
......在我开始应用程序之后......仍然感谢任何帮助......
更新 3:
我正在检查dmesg
.
当我开始第一个应用程序时,我收到了这条消息:
uvcvideo: Failed to query (GET_DEF) UVC control 12 on unit 2: -32 (exp. 4).
当我开始时ffmpeg
,什么也没发生,但一切正常......
python - 错误 (893) 无法通过索引、python 和 jupyter notebook 打开相机
编码:
jupyter-notebook 窗口中的错误:
17 引发 IOError("无法打开网络摄像头")
OSError:无法打开网络摄像头
我有两个设备,一个内置网络摄像头/dev/video0
和一个 USB 网络摄像头/dev/video1.
它们都出现在列表中ls -ltrh /dev/video*
两台相机都可以正常工作guvcview
。
我使用 jupyter-notebook 来运行上面的代码。
当我使用它时cap= cv2.VideoCapture(0)
,它工作正常。但是当我对 USB 摄像头使用 cap= cv2.VideoCapture(1) 时,我在终端中收到下一个错误:
[警告:0]全局/tmp/pip-req-build-ms668fyv/opencv/modules/videoio/src/cap_v4l.cpp(893)打开VIDEOIO(V4L2:/dev/video1):无法按索引打开摄像机
我试图将所有权限授予/dev/video1,sudo chmod 777 /dev/video1.
我正在使用linux mint。
linux - Linux 上的自动 /dev/video* 分配
我需要将多个 USB 摄像头连接到我的 linux 系统。在任何时候,摄像机都可以与系统连接或断开。它们都与 video4linux 兼容,因此连接的在 /dev/video* (* 为 0,1,2...)。
有没有办法以将每个摄像机分配给特定的方式来设置系统/dev/video*
?
例如:
我有cam0 、cam1、cam2,我希望/dev/video0
/dev/video1
/dev/video2
将它们分别cam1
分配给分配给)/dev/video1
/dev/video0
linux-kernel - v4l2 在使用 async kapi 时控制子设备上的继承
我目前正在研究嵌入式系统。我有一个设备树和 v4l2 设备/子设备,其中驱动程序“A”依赖于驱动程序“B”,驱动程序“B”依赖于驱动程序“C”。我想让驱动程序“B”先等待驱动程序“C”,然后驱动程序“B”注册到“A”。目前,我已将依赖项“A”<->“B”和“B”<->“C”映射到异步 kapi。到目前为止,这工作正常,除了在加载“C”之前“B”已经注册到“A”。这导致驱动程序“C”的控件在驱动程序“A”中不可见(使用 ctrl_handler 注册时,控件被转移到父驱动程序)。
我的问题:在这种情况下的一般方法是什么。我相信关键是在驱动程序“B”的探测函数中返回-EPROBE_DEFER。但是,我不清楚如何检查 DeviceTree 中的连接节点是否已加载其驱动程序。