跳过时VLC像素化video

从Ubuntu 14.04升级到16.04后,我立刻发现了一个问题,即当你跳过时,VLC现在会显示可怕的video,这只会在几秒钟之后出现自我修复, 我猜它下次会遇到一个关键帧。 这可以在下面的屏幕截图中显示:

在此处输入图像描述

我已尝试以下方法来解决此问题:

  • 使用VLC的稳定ppa来获得后来的VLC版本(VLC媒体播放器2.2.4 Weatherwax)
  • 从nvidia驱动程序361.42更改为340.96(这不起作用所以我切换回来,我确保每次重启)。 我也尝试过X.Org X服务器 – Nouveau驱动程序。
  • 尝试从自动到X11video输出XCB和OpenGL GLXvideo输出(XCB)的各种输出。
  • 将硬件加速解码从自动更改为禁用(在输入/编解码器选项卡下)
  • 禁用除我的主监视器以外的所有监视

我注意到如果我暂停video,跳到任何位置,等待一两秒,然后播放,video就可以了。 我只需要VLC等待它准备就绪,而不是立即尝试使用音频并尝试让video同步。

像mpv媒体播放器这样的其他媒体播放器只是在这方面工作,但我注意到mpv媒体播放器不允许我跳过下一个video由于某种原因这就是为什么我要回去试图修复VLC。

2016年6月4日更新

我刚刚在我的上网本上安装了Xubuntu,VLC在那里工作得很好。 我从PPA尝试了VLC 2.2.2和2.2.4。 此问题看起来与其特定的Ubuntu Desktop有关,或与我的桌面显示器通过Nvidia GPU运行(但已使用nouveau驱动程序进行测试)有关。

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

2016年6月8日更新

我已经上传了一个YouTubevideo,试图演示音频在跳过时从不停止播放的行为变化,但video将“暂停”,然后以像素化方式开始播放,最后将其自行排序。 通常情况下,一旦播放器准备好,音频和video都会一起播放,并且在使用VLC的Xubuntu 16.04video中没有显示video像素化。

2016年6月9日更新

看来我使用Kazam屏幕连接器录制的video没有受到影响,这让我相信它是一些专有的编解码器或其他东西。 我重新访问了解码菜单,发现只有这个选项适用于本地文件(当它从NFS文件夹加载时,我仍然在同一video上出现像素化问题,但这可能是另一个不同的问题?)。

在此处输入图像描述

我猜这个DRM选项是重要的一点,因为通过X11的VA-API不起作用(也没有“禁用”或其他任何一个)。 我现在想知道当我从NFS加载vidoes时我需要做什么。 增加流输出多路复用器缓存并没有解决它。

最终更新 – 这是一个Nvidia问题(2016年6月9日)

这绝对是Nvidia显卡相关问题 (尚未测试AMD)。 注意到带有DRM的VA-API无法在我的工作计算机上运行(它还运行带有Nvidia显卡的Ubuntu 16.04),当我回到家时,我尝试安装xubuntu来测试该理论。 这没有做到这一点。 之后,我拔掉了我的Nvidia显卡,现在正在使用集成的intel图形(在i5-4670K上),它在“自动”上工作得非常出色,甚至在从NFS加载的文件上也是如此。

通常情况下,我会将此作为答案发布,但我不认为其他人会对此感到满意。 我希望也许有人会有一个解决方案,我可以再次插入我的显卡,但我认为现实是我们需要等待更新内核和/或来自Nvidia的更好的专有驱动程序。 让我感到惊讶的是,将卡插入并使用开源的nouveau驱动程序,或关闭硬件加速不起作用。

2016年10月19日更新

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


原始答案

TL; DR

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桌面。 这将足够长的时间让我看到video播放工作完美,但在几分钟内我的电脑会锁定并需要硬重启。 在这样做了几次后,我再次清除了nvidia驱动程序:

 sudo apt-get purge nvidia-* 

我不再安装nvidia二进制驱动程序,而且是在Nouveau驱动程序上,但video播放正常,我的电脑无法锁定!

我在使用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显卡。

通过选择VLC设置>video>输出作为“X11video输出(XCB)”而不是“VDPAU输出”(跳过时有滞后),我能够使用nvidia-367nvidia-370驱动程序。 所有(XCB)选项都适用于我的nvidia-367包括“X11video输出(XCB)” – (在nvidia-370上无效)和“OpenGL GLXvideo输出(XCB)” – (OpenGL GLX在重新启动后工作)升级到nvidia-370 )。

我有视频输出列表

基本上所有XCB选项都运行良好(跳过,速度),Color ASCII艺术正常工作,OpenGL(非GLX / XCB)对齐到左下角但跳过很好。 ASCII艺术(黑色和白色)工作正常,但无法resize。 其他人没有显示屏幕的东西。

它会考虑更新到nvidia-370,因为它刚刚问世。

它在Unity 14.04中遇到了与VLC相同的问题,它最近刚开始,可能是由于定期升级引起的,但我没有指出它。 VLC中的Choppy播放,垂直同步问题,video在向前跳过时挂起几秒钟。 我的戴尔笔记本电脑上有一块Nvidia卡。 我检查了其他选项,如HDMI线(使用外接显示器),但最终缩小到VLC。

我的(懒惰)解决方案是在Unity中切换到内置的名为“video”的图腾播放器。 它似乎具有所有编解码器和基本function。 现在没问题。 我稍后会处理这个或等待更新。

在联想笔记本电脑上使用分立的nvidia显卡和Ubuntu 16.04也有同样的问题。 通过在nvidia-settings工具中选择集成的Intel HD来解决问题。 因此解决方案(如果您安装了nvidia驱动程序)是运行nvidia-settings并选择集成的Intel HDvideo卡

我在Debian Jessie,带有backports Nvidia驱动程序的Nvidia 950 GC和VLC 2.2.4上遇到了同样的问题。 更新到367.44-3版本的nvidia驱动程序切换了问题。

我找到的解决方案:将材料解码切换为“VA-API via DRM”。 它现在工作正常。

希望这可以帮助别人。