跳过时的 VLC 像素化视频

Pro*_*ter 20 vlc 16.04

从 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 媒体播放器)仅在这方面起作用,但我注意到 mpv 媒体播放器出于某种原因不允许我跳到下一个视频,这就是为什么我要回去尝试修复 VLC。

2016 年 6 月 4 日更新

我刚刚在上网本上安装了 Xubuntu,VLC 在那里运行得非常好。我从 PPA 中尝试了 VLC 2.2.2 和 2.2.4。这个问题看起来像是它的 Ubuntu 桌面特定的,或者与我的桌面显示器通过 Nvidia GPU 运行的事实有关(但已经使用 nouveau 驱动程序进行了测试)。

我注意到的另一件事是使用 NFS 共享来自同一网络上的远程主机的流媒体使问题更加明显。

2016 年 6 月 8 日更新

上传了一个 youtube 视频,试图展示行为的变化,即当你跳过时音频永远不会停止播放,但视频将被“暂停”,然后在最终整理之前像素化。通常,一旦播放器准备就绪,音频和视频就会一起播放,并且不会有视频像素化,如使用 VLCXubuntu 16.04视频中所示。

2016 年 6 月 9 日更新

我使用 Kazam screen caster 录制的视频似乎没有受到影响,这让我相信这是一些专有的编解码器或其他东西。我重新访问了解码菜单,发现只有这个选项适用于本地文件(从 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 驱动程序或关闭硬件加速都不起作用。

Pro*_*ter 6

2016 年 10 月 19 日更新

我注意到我的 Nvidia 模块在今天的更新过程中被重新编译,所以我重新启动并再次测试。看起来这个问题现在已经解决了。作为参考,我在 Nvidia GTX 970 上运行驱动程序版本 367.57。


原答案

TL; 博士

sudo apt-get purge nvidia-* -y
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt-get update && sudo apt-get dist-upgrade -y
Run Code Online (Sandbox Code Playgroud)

这里的关键点是安装驱动程序 PPA 会导致libcuda1-361 libxnvctrl0升级包,从而解决问题。我还发现很多 nvidia 驱动程序都有问题,所以最安全的做法是返回开源驱动程序。不过,我在nvidia-340驱动程序方面取得了一些成功。

详细描述

好吧,我以某种方式设法解决了意外情况

首先我安装了驱动程序ppa:

sudo add-apt-repository ppa:graphics-drivers/ppa
Run Code Online (Sandbox Code Playgroud)

然后我清除了现有的 nvida 驱动程序

sudo apt-get purge nvidia-*
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

然后我安装了364驱动。

sudo apt-get update
sudo apt-get install nvidia-364 -y
Run Code Online (Sandbox Code Playgroud)

重新启动后,我无法登录到 Ubuntu 桌面,但可以通过之前的测试登录到 Xubuntu 桌面。这将工作足够长的时间让我看到视频播放完美运行,但在几分钟内我的计算机会锁定并且需要重新启动。这样做几次后,我再次清除了 nvidia 驱动程序:

sudo apt-get purge nvidia-*
Run Code Online (Sandbox Code Playgroud)

我不再安装 nvidia 二进制驱动程序,而是使用 Nouveau 驱动程序,但视频播放正常,我的计算机没有锁定!


小智 6

我在使用 nvidia 图形 (GTX 1050) 的 KDE Neon (ubuntu 16.04) 上遇到了同样烦人的问题。我正在使用 nvidia 驱动程序 375.82。要解决此问题,我必须更改两个 vlc 设置:

  1. Video Settings--> Output-->X11 video output (XCB)
  2. Codecs--> Hardware accelerated decoding-->VA-API video decoder via DRM

需要第二个设置来跳过一些专有文件,如wmv. 据我测试,vlc 现在在没有 nvidia 显卡的情况下可以像以前一样工作。