VLC 无法打开 MRL“file:///dev/video0”。请查看日志了解详细信息

VLC 无法打开 MRL“file:///dev/video0”。请查看日志了解详细信息

我正在使用 Ubuntu 16.04 和 VLC 3.0.4 (Vetinari)。我想使用 VLC 3.0.4 和 USB 摄像头进行渲染。VLC 说

VLC 无法打开 MRL“file:///dev/video0”。请查看日志了解详细信息。

谷歌搜索对此有点帮助,但没有任何结果。

我尝试的是:

  • 对这些链接进行实验
  • 我有一个旧版本的 VLC (2.2.8),并且同一个 USB 摄像头运行良好。

我的视频组如下

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 accessv4l2' demux any' 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 加速”或“使用视频设备”注销并登录。

第三种解决方案是定义你自己的路径。让我知道新解决方案是如何工作的。如果它不起作用,我会发布重新定义你的路径的详细概述。

相关内容