跳转到内容

VLC 媒体播放器

来自 Arch Linux 中文维基

引自项目主页

VLC 是一款自由、开源的跨平台多媒体播放器及框架,可播放大多数多媒体文件,以及 DVD、音频 CD、VCD 及各类流媒体协议。

安装

[编辑 | 编辑源代码]

安装 vlc 拆分包,该软件包依赖于尽可能少的 VLC 插件。附加功能请参见其可选依赖。

主要的变体有:

  • vlc-gitAUR⸺开发分支版本。
  • vlc-noxAUR⸺移除 GUI 界面的版本。

语言

[编辑 | 编辑源代码]

VLC 没有在其“偏好设置”中提供更改语言的选项,但通过修改环境变量 LANGUAGE 可以改变其界面语言。例如,可以把其桌面项 vlc.desktop 中这一部分:

Exec=/usr/bin/vlc %U

修改为:

Exec=env LANGUAGE=zh_CN /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 密码

在图形界面中,可以通过点击菜单栏中“视图 > 添加界面 > Web”启动 Web 界面。通过“工具 > 偏好设置(显示设置为‘全部’)> 界面 > 主界面 > Lua > Lua HTTP > 密码”设置密码。登录时用户名留空。

VLC 默认使用端口 8080http://localhost:8080

提示与技巧

[编辑 | 编辑源代码]

使用 VLC 观看直播

[编辑 | 编辑源代码]

可以使用 Streamlink 通过 VLC 观看直播。

从本地 DLNA 服务器播放流媒体内容

[编辑 | 编辑源代码]

安装 vlc-plugin-upnp 后,通过进入“视图 > 播放列表 > 本地网络 > 通用即插即播(UPnP)”可以播放 UPnP DLNA 内容。如果 VLC 无法检测到本地网络中的 DLNA 服务器,请确保防火墙未阻止 UPnP 使用的 UDP 1900 端口,只有开放这一端口才能播放本地 DLNA(使用 UPnP)内容。

使用快捷键或命令行控制

[编辑 | 编辑源代码]

安装 openbsd-netcat

脚本获取地址:https://crunchbang.org/forums/viewtopic.php?pid=112035[失效链接 2025-08-03 ⓘ](CrunchBang 论坛现已下线。可用的 Internet Archive 存档位于。)

按照脚本中的说明为 VLC 设置一个 socket。

可以从命令行运行该脚本,或者通过桌面环境将其注册为键盘快捷键。

另外,你也可以使用 MPRIS 与 VLC 交互。

也可以使用 ncurses 界面启动 VLC:

$ vlc -I ncurses

详见官方文档

保持单实例运行

[编辑 | 编辑源代码]

VLC 的默认设置是每次打开文件就启动一个新的程序实例。如果使用 VLC 来播放音乐收藏之类的内容,这可能会很烦人。可以在文件管理器中多选文件后一起打开,也在菜单中可以关闭此行为:勾选“工具 > 偏好设置(显示设置为‘简明’)> 界面 > 播放列表与实例管理 > 仅允许一个实例”,并勾选“在单实例模式中将项目添加到播放列表队列中”,这样新的文件将被添加到当前播放列表中而不会中断当前播放的文件。

还有一个选项“从文件管理器启动时,只允许一个实例”勾选后,通过文件管理器用 VLC 打开的文件都会在一个实例中播放。“在单实例模式中将项目添加到播放列表队列中”选项对此仍然生效。

注意:当前 VLC 版本存在以下 bug:勾选“从文件管理器启动时,只允许一个实例”而不勾选“仅允许一个实例”时无法(取消)勾选“在单实例模式中将项目添加到播放列表队列中”选项。

硬件视频加速

[编辑 | 编辑源代码]

详见硬件视频加速

VLC 会自动尝试使用可用的 API,但也可以手动覆盖设置。在菜单栏中进入:工具 > 偏好设置(显示设置为“简明”)> 输入/编解码器,在“硬件加速解码”中选择合适的选项。

systemd 服务

[编辑 | 编辑源代码]

可以通过 systemd 自启动 VLC 的 #Web 界面。首先,创建一个专用用户:

# 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 密码
Restart=on-abort

[Install]
WantedBy=multi-user.target

启动启用 vlc.service。登录时用户名留空,密码为以上服务文件中所设。

Chromecast 支持

[编辑 | 编辑源代码]

从 3.0 版本(Vetinari 分支)开始,VLC 可以向同一网络中的 Chromecast 设备进行流媒体投放。

安装以下软件包:

  • libmicrodns⸺使 VLC 能发现 Chromecast 设备,并在菜单 “播放 > 渲染器” 中显示。
  • protobuf⸺使 VLC 能通过“播放 > 渲染器”菜单将内容投放到选定设备。

然后,编辑文件 /etc/nsswitch.conf,在 hosts 这一行的 resolvedns 之前加入 mdns_minimal [NOTFOUND=return]

hosts: ... mdns_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns ...
注意:
  • 如果解析 主机名.local 速度较慢,可以尝试将 mdns_minimal 替换为 mdns4_minimal,仅解析 IPv4 地址。
  • 更多信息请参阅 avahi英语avahi


单击自动暂停/恢复插件

[编辑 | 编辑源代码]

安装 vlc-pause-click-pluginAUR,该插件实现了许多人习惯的在直接点击 VLC 播放窗口中的视频时暂停或恢复播放的功能。

安装后插件不会自动启用,需要按照 https://github.com/nurupo/vlc-pause-click-plugin#usage 的说明在设置里手动启用。


问题解决

[编辑 | 编辑源代码]

更新后视频异常或其他问题

[编辑 | 编辑源代码]

VLC 的配置在更新时常常会出现问题,即使是小版本更新。在提交错误报告之前,请先删除或重命名位于 ~/.config/vlc 的配置文件,并确认问题是否仍然存在。

如果使用了 AUR 中的 FFmpeg 变种,请确保它也已更新。Pacman 不会自动升级这些包,而版本不匹配可能会导致 VLC 出现故障。

段错误

[编辑 | 编辑源代码]

启动 VLC 时出现

[编辑 | 编辑源代码]

在启动 VLC 时,可能会遇到段错误。如果已经排除了诸如微码等常见因素,可以尝试重新生成 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 作为替代,请参见 #硬件视频加速

无法通过 SFTP 播放媒体文件

[编辑 | 编辑源代码]

如果 VLC 无法通过 SFTP 播放任何视频或音频文件,请确保已安装 sshfs

如果 VLC 拒绝播放任何文件名包含空格的媒体文件而要求身份验证,请修改 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

然后运行以下命令重新加载配置:

systemctl reload sshd

无法打开 DVD

[编辑 | 编辑源代码]

若希望通过菜单 “媒体 > 打开光盘” 播放 DVD,需安装 VLC 的可选依赖 vlc-plugin-dvd 及该插件的可选依赖 libdvdcss(用于解码使用 CSS 加密的 DVD)。

部分 DVD 还可能需要其它插件,例如 vlc-plugin-dca。也可以选择安装 vlc-plugins-extra,该软件包包含上述两个插件及其他额外插件。

如果已安装上述所有软件包仍无法播放 DVD,可尝试删除 ~/.dvdcss 文件夹,让 VLC 会重新下载 CSS 密钥,有时可以解决播放问题。

媒体无法加载

[编辑 | 编辑源代码]

若某些 RTP、RTSP、DVB-T 流媒体或蓝光视频出现无限缓冲状态,或在日志中无报错却静默加载失败(例如法国 Free 互联网服务提供商的 IPTV 服务),请安装 vlc-plugin-aribb24 插件。

Wayland 支持

[编辑 | 编辑源代码]

vlc-gitAUR 默认编译时启用了 Wayland 支持。设置环境变量 QT_QPA_PLATFORM=wayland 可启用 Wayland,详见 Wayland#Qt

需要注意的是,尽管 vlcPKGBUILD 中使用了 --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

[编辑 | 编辑源代码]

请安装可选依赖 vlc-plugin-aribb24

使用 AMDGPU 播放 HEVC 视频时系统无响应

[编辑 | 编辑源代码]

在播放 HEVC(H265)编码的视频时,系统可能会完全冻结,无法进行任何操作(包括关机)。

可以通过将“工具 > 偏好设置(显示设置为“全部”)> 视频 > 输出模块 > OpenGL > Open GL/GLES hardware converter”从“自动”更改为其他合适选项(例如“VDPAU OpenGL surface converter”或“VA-API OpenGL surface converter for Wayland”)来解决该问题。

详见 https://gitlab.freedesktop.org/drm/amd/-/issues/2113#note_1602599

更改播放进度后声音短暂消失

[编辑 | 编辑源代码]

“工具 > 偏好设置(显示设置为‘简明’)> 音频 > 输出模块”设置为目前使用的音频服务器(对于 PipeWire,需要安装 vlc-plugin-pipewireAUR,否则只能使用兼容层)。

VLC 无法解码格式“<某格式>”

[编辑 | 编辑源代码]

根据媒体格式的不同,用户可能需要手动安装额外插件。可以首先尝试安装 vlc-plugin-ffmpeg。在某些情况下,可能需要安装 vlc-plugins-all

VLC 不显示字幕和屏显信息(OSD)

[编辑 | 编辑源代码]

即使解码字幕的插件已经安装,如果没有安装 vlc-plugin-freetype,字幕和屏显信息仍然不会显示(而且“消息”和控制台中也不会报错)。注意,该插件不包含在 vlc-plugins-base 中,但包含在 vlc-plugins-extra 中。

参见

[编辑 | 编辑源代码]