我正在使用 Ubuntu 16.04 和 VLC 3.0.4 (Vetinari)。我想使用 VLC 3.0.4 和 USB 摄像头进行渲染。VLC 说
VLC 无法打开 MRL“file:///dev/video0”。请查看日志了解详细信息。
谷歌搜索对此有点帮助,但没有任何结果。
我尝试的是:
我的视频组如下
xxxx-z3@xxxx-z3:~$ grep video /etc/group
video:x:44:xxxx-z3,vdr,root
USB 摄像头具有以下权限:
xxxx-z3@xxxx-z3:~$ ll /dev/video0
crwsrwsrwt+ 1 root video 81, 0 Dec 27 18:40 /dev/video0
lsusb
输出
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 413c:2003 Dell Computer Corp. Keyboard
Bus 001 Device 016: ID 046d:081b Logitech, Inc. Webcam C310
Bus 001 Device 015: ID 22b8:2e24 Motorola PCS
Bus 001 Device 007: ID 0461:4e22 Primax Electronics, Ltd
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
我的问题是,为什么 VLC 3.0.4 无法打开/dev/video0
设备?
来自 VLC 的日志,带有调试消息级别 2。
来自具有调试级别 2 的 vlc 消息的日志:
qt 调试:项目 v4l2-dev
qt 调试:项目 v4l2-vbidev
qt 调试:项目 v4l2-chroma
qt 调试:项目 v4l2-输入
qt 调试:项目 v4l2-audio-input
qt 调试:项目 v4l2-宽度
qt 调试:项目 v4l2-高度
qt 调试:项目 v4l2-纵横比
qt 调试:项目 v4l2-fps
qt 调试:项目 v4l2-radio-dev
qt 调试:项目 v4l2-调谐器频率
qt 调试:项目 v4l2-tuner-audio-mode
qt 调试:项目 v4l2-controls-reset
qt 调试:项目 v4l2-亮度
qt 调试:项目 v4l2-亮度-自动
qt 调试:项目 v4l2-对比度
qt 调试:项目 v4l2-saturation
qt 调试:项目 v4l2-hue
qt 调试:项目 v4l2-hue-auto
qt 调试:项目 v4l2-白平衡-温度
qt 调试:项目 v4l2-自动白平衡
qt 调试:项目 v4l2-red-balance
qt 调试:项目 v4l2-blue-balance
qt 调试:项目 v4l2-gamma
qt 调试:项目 v4l2-autogain
qt 调试:项目 v4l2-gain
qt 调试:项目 v4l2-清晰度
qt 调试:项目 v4l2-chroma-gain
qt 调试:项目 v4l2-chroma-gain-auto
qt 调试:项目 v4l2-电力线频率
qt 调试:项目 v4l2-背光补偿
qt 调试:项目 v4l2-带阻滤波器
qt 调试:项目 v4l2-hflip
qt 调试:项目 v4l2-vflip
qt 调试:项目 v4l2-旋转
qt 调试:项目 v4l2-color-killer
qt 调试:项目 v4l2-颜色效果
qt 调试:项目 v4l2-音频音量
qt 调试:项目 v4l2-audio-balance
qt 调试:项目 v4l2-audio-mute
qt 调试:项目 v4l2-audio-bass
qt 调试:项目 v4l2-audio-treble
qt 调试:项目 v4l2-audio-loudness
qt 调试:项目 v4l2-set-ctrls
主调试:处理请求项:v4l2:///dev/video1,节点:播放列表,跳过:0
主调试:重建当前数组-根播放列表
主调试:重建完成 - 1 个项目,索引 0
主调试:开始播放新项目
主调试:在 v4l2:///dev/video1 上重新同步
主调试:v4l2:///dev/video1 为 0
主调试:创建新的输入线程
主调试:为“v4l2:///dev/video1”创建输入
主调试:请求艺术作品用于新的输入线程
主要调试:使用 50 MiB 的时间移位粒度
主调试:使用默认时间移位路径
主调试:
v4l2:///dev/video1' gives access
v4l2' demuxany' path
/dev/video1'主调试:创建 demux:access='v4l2' demux='any' location='/dev/video1' file='/dev/video1'
主调试:寻找与“v4l2”匹配的 access_demux 模块:21 个候选
v4l2 调试:打开设备‘/dev/video1’
v4l2 错误:无法打开设备‘/dev/video1’:操作不允许
v4l2 调试:打开设备‘/dev/video1’
v4l2 错误:无法打开设备‘/dev/video1’:操作不允许
主调试:寻找与“任意”匹配的元提取器模块:1 个候选
主调试:没有匹配的 access_demux 模块
主调试:创建访问:v4l2:///dev/video1
lua 调试:尝试在 /home/vijay/snap/vlc/768/.local/share/vlc/lua/meta/fetcher 中使用 Lua 脚本
主调试:(路径:/dev/video1)
主调试:寻找与“v4l2”匹配的访问模块:26 个候选
lua 调试:尝试在 /snap/vlc/768/usr/lib/vlc/lua/meta/fetcher 中使用 Lua 脚本
lua 调试:尝试在 /snap/vlc/768/usr/share/vlc/lua/meta/fetcher 中使用 Lua 脚本
v4l2 调试:打开设备‘/dev/video1’
主调试:没有匹配的元获取器模块
v4l2 错误:无法打开设备‘/dev/video1’:操作不允许
主调试:没有匹配的访问模块
主调试:寻找与“任意”匹配的艺术查找器模块:2 个候选
主调试:死输入
主调试:无需请求即可更改项目(当前 0/1)
主调试:无可播放
lua 调试:尝试在 /home/vijay/snap/vlc/768/.local/share/vlc/lua/meta/art 中使用 Lua 脚本
lua 调试:尝试在 /snap/vlc/768/usr/lib/vlc/lua/meta/art 中使用 Lua 脚本
lua 调试:尝试 Lua 播放列表脚本 /snap/vlc/768/usr/lib/vlc/lua/meta/art/00_musicbrainz.luac
lua 调试:跳过脚本(范围不匹配)/snap/vlc/768/usr/lib/vlc/lua/meta/art/00_musicbrainz.luac
lua 调试:尝试 Lua 播放列表脚本 /snap/vlc/768/usr/lib/vlc/lua/meta/art/01_googleimage.luac
lua 调试:跳过脚本(范围不匹配)/snap/vlc/768/usr/lib/vlc/lua/meta/art/01_googleimage.luac
lua 调试:尝试 Lua 播放列表脚本 /snap/vlc/768/usr/lib/vlc/lua/meta/art/02_frenchtv.luac
lua 调试:跳过脚本(范围不匹配)/snap/vlc/768/usr/lib/vlc/lua/meta/art/02_frenchtv.luac
lua 调试:尝试 Lua 播放列表脚本 /snap/vlc/768/usr/lib/vlc/lua/meta/art/03_lastfm.luac
lua 调试:跳过脚本(范围不匹配)/snap/vlc/768/usr/lib/vlc/lua/meta/art/03_lastfm.luac
lua 调试:尝试在 /snap/vlc/768/usr/share/vlc/lua/meta/art 中使用 Lua 脚本
主调试:没有匹配的艺术查找器模块
答案1
令人惊讶的是,到目前为止,没有任何答案对我有帮助。
最后,我注意到输出中的这一行vlc --verbose 3
:
[019b5b98] main libvlc warning: cannot load module `/usr/lib/vlc/plugins/codec/libv4l2_plugin.so' (libzvbi.so: cannot open shared object file: No such file or directory)
我安装后zvbi
一切正常。
答案2
此链接解释得比我清楚:https://www.tldp.org/HOWTO/Webcam-HOWTO/dev-intro.html
video0
尝试在目录中重新创建nod /dev
,看看是否能解决您的问题。
sudo mknod /dev/video0 c 81 0
sudo chown root:video /dev/video0
sudo chmod 660 /dev/video0
如果此操作后您仍然遇到问题,请尝试重新启动。
/dev
文件不是普通文件,例如.txt
文件,但它们是设备的接口,例如节点,最重要的是它们实际上并不驻留在您的(我们的)磁盘上。
/dev
文件代表附加到/在您计算机上的设备,常驻文件是在运行时创建的。
恢复该文件的最简单方法是重新启动计算机。(关闭计算机时,/dev
是空的)
或者,拔下并插入相关设备应该会有相同的效果。
实验性的(不知道是否会起作用):file://localhost/Volumes/DATA-DISK/Media/Video0
其他链接: https://wiki.videolan.org/Documentation:Streaming_HowTo/Command_Line_Examples/ https://itsfoss.com/vlc-pro-tricks-linux/
信用: 魏伯纳德& mattia.b89
编辑:12/28/18
/dev/video0:权限被拒绝
事实证明,该错误不是一个错误,如果您输入“asidjaisjdiajsdiasd”,您将在日志中得到相同的响应,因此问题的解决方案是:
$ sudo chown user.group /dev/shm/usb-*
如果这不起作用,请尝试:
http://www.webupd8.org/2011/02/get-your-usb-drives-to-work-with.html
Ubuntu 12.04 及更新版本中未默认安装“用户和组”,因此您必须先安装它:
sudo apt-get install gnome-system-tools
您必须授予用户(您)使用视频设备的权限。转到
System > Administration > Users and Groups
。解锁并选择您的用户名。在用户权限中,您必须启用“从电视或网络摄像头捕获视频并使用 3D 加速”或“使用视频设备”注销并登录。
这第三种解决方案是定义你自己的路径。让我知道新解决方案是如何工作的。如果它不起作用,我会发布重新定义你的路径的详细概述。