VLC 媒体播放器
来自项目 主页
- VLC 是一款自由开源的跨平台多媒体播放器和框架,可播放大多数多媒体文件以及 DVD、音频 CD、VCD 和各种流媒体协议。
安装
安装 vlc 拆分包,它需要安装 VLC 插件子集中的额外包
- vlc-plugins-base — 提供基础插件集。
- vlc-plugins-extra — 提供一些额外插件,包括:FFmpeg 音视频解码器(含 H.264/AVC 和 H.265/HEVC 编码器);VA-API 视频解码器;MPEG 传输流分离器;MPEG I/II 视频解码器以及 DVD 和音频 CD 播放支持。
- vlc-plugins-visualization — 提供一些音频可视化插件,包括 Goom 和 ProjectM 特效。
- vlc-plugins-all — 提供所有可用插件,包括上述插件以及 FluidSynth MIDI 合成器。
vlc-plugin 开头的可用插件列表。替代前端
- vlc-cli — 用于命令行界面(通过
cvlc或rvlc运行)。 - vlc-gui-ncurses — 用于 ncurses TUI 界面(通过
nvlc运行)。 - vlc-gui-skins2 — 用于 skins2 GUI 界面(通过
svlc运行)。
语言
VLC 的“首选项”菜单中不提供更改语言的选项。但您可以使用 LANGUAGE 环境变量。例如,修改 vlc.desktop 桌面条目来更改
Exec=/usr/bin/vlc %U
更改为
Exec=env LANGUAGE=fr /usr/bin/vlc %U
以将 VLC 界面切换为法语。
皮肤
VLC 可以使用“皮肤”以获得不同的外观。您可以在 皮肤网站 获取皮肤。
要安装皮肤,请下载并将其移动到 ~/.local/share/vlc/skins2/。
打开 VLC,点击 工具 > 首选项。当首选项窗口打开时,您应该处于“界面”选项卡中。
选择“使用自定义皮肤”单选按钮,并选择已下载的皮肤。
重启 VLC 以使更改生效。
Web 界面
运行带有 --extraintf=http 参数的 VLC,以同时使用桌面和 Web 界面。--http-host 参数用于指定绑定的地址,默认为 localhost。要设置密码,请使用 --http-password,否则 VLC 将不允许您登录。
$ vlc --extraintf=http --http-host 0.0.0.0 --http-port 8080 --http-password yourpasswordhere
要从图形界面启用 Web 界面,请导航至 视图 > 添加界面 > Web 界面。通过 工具 > 首选项 > 显示设置:全部 > 界面 > 主界面 > Lua > Lua HTTP > 密码 设置密码。
VLC 默认端口为 8080: https://:8080
技巧与提示
通过 VLC 串流 Twitch.tv
请参阅 Streamlink#Twitch。
播放来自本地 DLNA 服务器的流媒体内容
如果您发现尝试播放 UPnP/DLNA 内容(通过 视图 > 播放列表 > 本地网络 > 通用即插即用)时,VLC 无法在本地网络上看到 DLNA 服务器,请确保防火墙没有阻止 1900 UDP 端口。开放此端口对于播放本地 UPnP/DLNA 内容至关重要。
使用热键或命令行控制
安装 openbsd-netcat。
从 已归档的 CrunchBang 论坛 获取脚本。
按照脚本中的说明为 VLC 设置 socket。
既可以从命令行运行该脚本,也可以通过您的桌面环境将该脚本注册为快捷键。
或者,您可以使用 MPRIS 与 VLC 进行交互。
也可以使用 ncurses 界面启动 vlc
$ vlc -I ncurses
有关详细信息,请参阅 文档
防止多实例运行
默认情况下,每次使用一个或多个文件启动 VLC 时,它都会打开程序的新实例。如果您使用 VLC 播放音乐库等内容,这可能会很烦人。您可以一次性从文件管理器中选择多个文件来打开它们,或者从菜单中禁用此行为:勾选 工具 > 首选项(将“显示设置”设置为“简单”) > 界面 > 播放列表和实例 > 仅允许一个实例,并勾选 在单实例模式下将项目加入播放列表,这样可以保持当前文件播放并将新打开的文件添加到当前播放列表。
还有一个名为 从文件管理器启动时仅使用一个实例 的选项 — 启用此选项后,通过文件管理器打开的所有文件都将在单个实例中播放。在单实例模式下将项目加入播放列表 选项依然有效。
硬件视频加速
请参阅 硬件视频加速。
VLC 会自动尝试使用可用的 API,但您可以通过 工具 > 首选项 > 输入/编码器 并在 硬件加速解码 下选择合适的选项来覆盖它,例如 VA-API 的 视频加速 (VA) API 或 VDPAU 的 Video Decode and Presentation API for Unix (VDPAU)。
systemd 服务
VLC 的 Web 界面可以由 systemd 启动。首先,您需要创建一个默认用户
# useradd -c "VLC daemon" -d / -G audio -M -p \! -r -s /usr/bin/nologin -U vlcd
现在创建 systemd 服务文件
/etc/systemd/system/vlc.service
[Unit] Description=VideoOnLAN Service After=network.target [Service] Type=forking User=vlcd ExecStart=/usr/bin/vlc --daemon --syslog -I http --http-port 8090 --http-password password Restart=on-abort [Install] WantedBy=multi-user.target
启动 并 启用 vlc.service。使用不含用户名的方式以及您在服务文件中设置的密码登录 http://yourmachine:8090/。
Chromecast 支持
从 3.0 版本(Vetinari 分支)开始,VLC 可以将内容串流至同一网络下的 Chromecast 设备。
安装软件包
- libmicrodns - VLC 可以发现 Chromecast 设备,并在 播放 > 渲染器 菜单中显示。
- protobuf - 启用在 播放 > 渲染器 菜单中串流至选定设备的功能。
然后,编辑 /etc/nsswitch.conf 文件,并将 hosts 行修改为在 resolve 和 dns 之前包含 mdns_minimal [NOTFOUND=return]
hosts: ... mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns ...
- 如果您在解析
.local主机时遇到延迟,请尝试使用mdns4_minimal代替mdns_minimal。 - 查看 avahi 以了解更多信息。
点击暂停插件
安装 vlc-pause-click-pluginAUR,它允许您通过点击 VLC 窗口内的视频来暂停或恢复播放。这是一种常见的预期行为。
安装后该插件不会立即激活,您需要按照 https://github.com/nurupo/vlc-pause-click-plugin#usage 中的说明在设置中手动启用它。
从 V4L2 AV 采集设备串流
例如,从 USB 网络摄像头或 USB HDMI 采集设备进行实时流式传输。
查找 V4L2 设备的视频设备节点:
$ v4l2-ctl --list-devices
HDMI Capture: HDMI Capture (usb-0000:07:00.1-2): /dev/video2 /dev/video3 /dev/media1
通常这是第一个列出的 /dev/video* 节点,此处为 /dev/video2。
然后,查找采集设备的 PulseAudio 源名称:
$ pactl list short sources | grep --invert-match --regexp=.monitor
(...some devices omitted...) 8750 alsa_input.usb-XF_HDMI_Capture_20000130041415-02.iec958-stereo PipeWire s16le 2ch 48000Hz SUSPENDED
该名称此处为 alsa_input.usb-XF_HDMI_Capture_20000130041415-02.iec958-stereo。
使用图形用户界面
打开 VLC 媒体播放器,在顶部菜单栏选择 媒体 > 打开捕获设备...
在 设备选择 部分,选择 /dev/video2 作为 视频设备名称。将 音频设备名称 留空。1
在左下角勾选 显示更多选项 复选框。应会出现一个 编辑选项 文本框。在此文本框中,在末尾追加以下内容,中间用空格隔开
:input-slave=pulse://alsa_input.usb-XF_HDMI_Capture_20000130041415-02.iec958-stereo
然后点击 播放 按钮。
1 这是因为该输入仅提供并接受 ALSA 设备,而 VLC 通常无法访问它们,因为它们已被 PipeWire 或 PulseAudio 独占。
从命令行
或者,使用以下命令从命令行运行 VLC 媒体播放器
$ vlc --v4l2-standard= --live-caching=300 --input-slave=pulse://alsa_input.usb-XF_HDMI_Capture_20000130041415-02.iec958-stereo -- v4l2:///dev/video2
故障排除
升级后视频损坏或其他问题
有时 VLC 即使在小版本更新中也会出现配置问题。在提交错误报告之前,请移除或重命名您位于 ~/.config/vlc 的配置文件,并确认问题是否仍然存在。
如果您使用的是 AUR 中的 ffmpeg 变体,请确保也对其进行了升级。Pacman 不会在必要时自动升级它,不匹配的版本会导致 VLC 崩溃。
段错误 (Segmentation fault)
启动 VLC 时报错
当启动 VLC 时可能会遇到段错误,在排除诸如 微码 等常规因素后,一种可能的解决方法是运行以下命令
# /usr/lib/vlc/vlc-cache-gen /usr/lib/vlc/plugins
然后重新安装 VLC。
播放视频时报错
如果 VLC 可以打开并播放音频文件,但在播放视频时因段错误而关闭,则说明 硬件视频加速 配置错误,导致 VLC 无法引用图形设备。这尤其常见于在一台计算机上使用多块显卡的情况。
下拉菜单中缺少图标
这可能发生在 XFCE 下,下拉菜单中将不再显示图标,例如 PCI 卡图标。
执行以下命令以重新激活这些图标
$ gconftool-2 --type boolean --set /desktop/gnome/interface/buttons_have_icons true $ gconftool-2 --type boolean --set /desktop/gnome/interface/menus_have_icons true
未能打开 VDPAU 后端
请参阅 硬件视频加速#无法打开 VDPAU 后端。
由于您的系统很可能不支持 VDPAU,您应该告诉 VLC 改用 VA-API,请参阅 #硬件视频加速。
VLC 关闭后无法再次打开
在“设置”->“输入/编码器”中手动将 VLC 设置为使用 VA-API 加速后端。VLC 似乎默认选择 VDPAU,这对许多人来说是损坏的。
通过 SFTP 无法播放文件名包含空格的媒体文件
如果 VLC 无法通过 SFTP 播放任何视频或音频文件,请确保已安装 sshfs。
如果它拒绝通过 SFTP 播放任何文件名包含空格的媒体文件并始终要求进行身份验证,请将 vlc.desktop 文件中的 Exec 行更改为
Exec=/usr/bin/vlc --started-from-file %F
请参阅 [1]。
iOS/tvOS 上的 VLC 无法通过 SFTP 连接到 Arch
由于 App Store 的许可限制,VLC 的 iOS 和 tvOS 应用使用了不完整的 ssh 实现。openssh 需要更改配置以兼容。创建一个文件 /etc/ssh/sshd_config.d/vlc.conf,内容如下
HostKeyAlgorithms +ssh-rsa KexAlgorithms +diffie-hellman-group16-sha512
然后,重新加载 sshd.service。
无法打开 DVD
为了能够通过 媒体 > 打开光盘 播放 DVD,需要安装 VLC 可选依赖项 vlc-plugin-dvd 和 libdvdcss。
某些 DVD 可能需要其他插件,例如 vlc-plugin-dca。或者,安装 vlc-plugins-extra,它将安装上述两个插件以及其他插件。
如果您安装了上述所有软件包但仍无法打开 DVD,请尝试删除您的 ~/.dvdcss 文件夹。这将强制重新下载您的 CSS 密钥,这可能会解决问题。
无法打开蓝光光盘 / 蓝光菜单无法加载
请参阅 Blu-ray#VLC
媒体无法加载
如果某些 RTP、RTSP、DVB-T 流或蓝光光盘看起来在无限缓冲或静默无法加载,且日志中未给出错误消息(例如来自法国 ISP Free 的 IPTV),请安装 vlc-plugin-aribb24。
Wayland 支持
vlc-gitAUR 默认构建包含 Wayland 支持。设置 QT_QPA_PLATFORM=wayland 环境变量以启用 Wayland。有关更多信息,请参阅 Wayland#Qt。
请注意,尽管 vlc PKGBUILD 使用了 --enable-wayland 构建标志(目前使用的是 VLC 3.0 版本),但无论如何都会使用 Xwayland,因为 VLC 3 上的 Wayland 支持已损坏。除非安装了 xorg-xwayland,否则 VLC 中的视频输出可能会被裁剪或出现其他异常。
使用以下命令,VLC 3 将开始使用 Wayland
$ env -u DISPLAY vlc
这是因为 VLC 3 会在启动时检查 DISPLAY 环境变量,如果未设置则会使用 Wayland。不建议从全局环境中删除 DISPLAY,因为一些较旧的应用程序仍然依赖此变量。
无法连接到 RTSP 流
当连接到 RTSP 流并出现 failed to setup rtsp session 错误时,请 安装 vlc-plugin-live555。
使用 Streamlink 播放流时颜色异常
安装可选依赖项 vlc-plugin-aribb24。
使用 AMDGPU 播放 HEVC 视频时系统无响应
播放使用 HEVC (H265) 编码的视频时,用户可能会遇到系统完全冻结,无法进行任何操作或关机。
这可以通过将 Open GL/GLES 硬件转换器 的设置更改为非 自动 的其他选项(例如 VDPAU OpenGL 表面转换器 或 Wayland 的 VA-API OpenGL 表面转换器)来解决。
请参阅 https://gitlab.freedesktop.org/drm/amd/-/issues/2113#note_1602599
改变播放进度后声音短暂消失
将 工具 > 首选项(“简单”视图) > 音频 > 输出模块 设置为当前正在使用的音频服务器。(对于 PipeWire,您需要安装 vlc-plugin-pipewireAUR,否则只能使用兼容层。)
VLC 不显示字幕和 OSD
即使您拥有字幕解码插件,如果您缺少 vlc-plugin-freetype(它未包含在 vlc-plugins-base 中,但包含在 vlc-plugins-extra 中),字幕也不会显示在屏幕上(并且消息/控制台也不会有任何错误)。
MKV 文件中的字幕提示“VLC 无法识别音频或视频编码”
如果字幕在从外部文件加载时显示正常,但无法识别 MKV 文件中的嵌入式字幕,则很可能缺少 vlc-plugin-matroska 软件包(它未包含在 vlc-plugins-base 中,但包含在 vlc-plugins-extra 中)。
KDE Plasma 未对 VLC 应用深色主题
请阅读 KDE#Themes 中提示框的第一项。
参见
- 维基百科文章
- 应用程序列表/多媒体
- VLC 主页
- playerctl: 用于控制媒体播放器的命令行实用程序和库
- 通过浏览器控制 VLC