从 Ubuntu 14.04 升级到 16.04 后,我立即注意到一个问题,即 VLC 现在在跳过时显示的视频非常糟糕,这个问题似乎在几秒钟后才会自行解决,这我猜当它下次遇到关键帧时。如下面的屏幕截图所示:
我尝试了以下方法来解决这个问题:
- 使用 VLC 的稳定 ppa 来获取 VLC 的更高版本(VLC 媒体播放器 2.2.4 Weatherwax)
- 将 nvidia 驱动程序从 361.42 更改为 340.96(不起作用,所以我又改回来了,每次都确保重新启动)。我还尝试了 X.Org X 服务器 - Nouveau 驱动程序。
- 尝试从自动到 X11 视频输出 (XCB) 以及 OpenGL GLX 视频输出 (XCB) 的各种输出。
- 将硬件加速解码从自动更改为禁用(在输入/编解码器选项卡下)
- 禁用除主显示器之外的所有显示器。
我注意到,如果我暂停视频,跳到任意位置,等待一两秒,然后播放,视频就会正常播放。我只需要 VLC 等待它准备好,而不是尝试立即播放音频并尝试让视频同步。
其他媒体播放器(例如 mpv media player)在这方面可以工作,但我注意到 mpv media player 由于某种原因不允许我跳到下一个视频,这就是我要尝试修复 VLC 的原因。
2016 年 6 月 4 日更新
我刚刚在上网本上安装了 Xubuntu,VLC 运行得很好。我尝试了 PPA 中的 VLC 2.2.2 和 2.2.4。这个问题看起来是 Ubuntu Desktop 独有的,或者与我的桌面显示器通过 Nvidia GPU 运行有关(但已使用 nouveau 驱动程序进行了测试)。
我注意到的另一件事是,使用 NFS 共享从同一网络上的远程主机流式传输媒体会使问题更加明显。
2016 年 6 月 8 日更新
我有上传了 YouTube 视频尝试演示行为的变化,即在您跳过时音频不会停止播放,但视频会“暂停”,然后开始出现像素化,最终自行解决。通常情况下,一旦播放器准备就绪,音频和视频都会一起启动,并且不会出现视频像素化,如此视频所示Xubuntu 16.04 使用 VLC。
2016 年 6 月 9 日更新
我使用 Kazam 屏幕转播器录制的视频似乎不是受影响,这让我相信这是一些专有的编解码器或类似的东西。我重新访问了解码菜单,发现只有这个选项在当地的文件(当从 NFS 文件夹加载同一视频时,仍然存在像素化问题,但也许这是另一个不同的问题?)。
我猜想 DRM 选项是这里的重点,就像通过 X11 的 VA-API 一样不是工作(“禁用”或任何其他命令也不起作用)。我现在很想知道当我从 NFS 加载视频时需要做什么。 增加流输出复用器缓存没有修复它。
最终更新 - 这是 Nvidia 的问题(2016 年 6 月 9 日)
这绝对是与 Nvidia 显卡相关的问题(尚未测试 AMD)。在注意到带有 DRM 的 VA-API 无法在我的办公电脑(也运行带有 Nvidia 显卡的 Ubuntu 16.04)上运行后,我回家后尝试安装 xubuntu 来测试该理论。但没成功。之后我拔掉了 Nvidia 显卡,现在使用集成英特尔显卡(在 i5-4670K 上),它在“自动”下甚至在从 NFS 加载的文件上都运行良好。
通常我会把这个作为答案发布出来,但我认为很多人不会对此感到满意。我希望也许有人能找到解决方案,让我可以再次插入显卡,但我认为现实是我们需要等待内核更新和/或 Nvidia 更好的专有驱动程序。令我惊讶的是,安装该卡并使用开源 nouveau 驱动程序或关闭硬件加速不起作用。
答案1
我在使用 nvidia 显卡 (GTX 1050) 的 KDE Neon (ubuntu 16.04) 上遇到了同样恼人的问题。我使用的是 nvidia 驱动程序 375.82。为了解决这个问题,我必须更改两个 vlc 设置:
Video Settings
-->Output
-->X11 video output (XCB)
Codecs
-->Hardware accelerated decoding
-->VA-API video decoder via DRM
第二个设置需要跳过一些专有文件,例如wmv
。据我测试,vlc 现在可以像以前一样工作,无需 nvidia 显卡。
答案2
2016 年 10 月 19 日更新
我注意到我的 Nvidia 模块在今天的更新中被重新编译了,所以我重新启动并再次测试。看来问题已经修复。作为参考,我在 Nvidia GTX 970 上运行驱动程序版本 367.57。
原始答案
总结
sudo apt-get purge nvidia-* -y
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update && sudo apt-get dist-upgrade -y
这里的关键点是安装驱动程序 PPA 会导致libcuda1-361
libxnvctrl0
软件包升级,从而解决问题。我还发现很多 nvidia 驱动程序都存在问题,所以最安全的做法是返回到开源驱动程序。不过,我在使用该驱动程序时取得了一些成功nvidia-340
。
详细描述
好吧,我设法偶然解决了这个问题
首先我安装了驱动程序 ppa:
sudo add-apt-repository ppa:graphics-drivers/ppa
然后我清除了现有的 nvida 驱动程序
sudo apt-get purge nvidia-*
然后我安装了 364 个驱动程序。
sudo apt-get update
sudo apt-get install nvidia-364 -y
重启后,我无法登录 Ubuntu 桌面但可以从之前的测试中登录 Xubuntu 桌面。这对我来说足够长的时间,可以看到视频播放完美无缺,但几分钟后我的电脑就会锁定,需要硬重启。这样做了几次之后,我再次清除了 nvidia 驱动程序:
sudo apt-get purge nvidia-*
我不再安装 nvidia 二进制驱动程序,而是使用 Nouveau 驱动程序,但视频播放正常,而且我的电脑没有锁定!
答案3
我能够通过选择 VLC 设置 > 视频 > 输出为“X11 视频输出 (XCB)”而不是“VDPAU 输出”来使我的视频nvidia-367
与驱动程序一起工作,因为“VDPAU 输出”在跳过时会产生滞后。所有nvidia-370
(XCB)对我来说有用的选项nvidia-367
包括“X11 视频输出 (XCB)”-(不起作用nvidia-370
) 和“OpenGLGLX视频输出(XCB)”-(OpenGLGLX升级到 后重启即可正常工作nvidia-370
。
基本上所有 XCB 选项都运行良好(跳过、速度),彩色 ASCII 艺术正常运行,OpenGL(非 GLX/XCB)选项与左下角对齐但跳过良好。ASCII 艺术(黑白)运行正常但无法调整大小。其他选项没有在屏幕上显示内容。
会考虑更新到 nvidia-370,因为它最近刚刚发布。
答案4
在配备独立 nvidia 显卡和 Ubuntu 16.04 的联想笔记本上也遇到了同样的问题。通过在nvidia-settings
工具中选择集成 Intel HD 解决了这个问题。因此解决方案(如果您安装了 nvidia 驱动程序)是运行nvidia-settings
并选择集成 Intel HD 显卡