问题
从 Ubuntu 11.10 更新到 Ubuntu 12.04 后,所有视频仍然是蓝屏,无论是在浏览器还是播放器中播放。11.10 也出现同样的问题。
我尝试卸载所有 Flash 并重新安装,但没有什么作用。
是什么原因造成视频闪蓝?
Ubuntu 11.10 64位
Ubuntu 12.04LTS 64位
外观
答案1
这里有一些误导性和一些错误的建议,所以让我们总结一下问题是什么以及有哪些解决方案。
总结
自 12.10(Quantal)以来的 Ubuntu 最新版本包含该库的修补版本。如果您仍然遇到蓝屏问题(不包括蓝人乐团), 查看这个答案– Flash Player 的库名称必须是libflashplayer.so
,否则 libvdpau 将不会应用解决方法。您也可以查看/etc/vdpau_wrapper.cfg
文件。在那里您可以禁用 libvdpau 应用的解决方法。
如果你有 Oneiric (11.10) 或 Precise (12.04),请安装修补的 libvdpau:
sudo add-apt-repository ppa:tikhonov/misc
sudo apt-get update
sudo apt-get install libvdpau1
否则,您可以修改 Flash Player 的库:
cd /usr/lib/flashplugin-installer || cd /usr/lib/adobe-flashplugin/
sudo perl -pi.bak -e 's/libvdpau/lixvdpau/g' libflashplayer.so
评论之前请先阅读整篇文章。
问题
自 11.2 版起,Flash Player 在大多数平台上都使用硬件视频加速。遗憾的是,Linux 中的加速功能不仅不受支持,而且基本上已损坏。Flash Player 在以下情况下会交换视频中的颜色:
- 您正在使用相当新的 Nvidia GPU维吉尼亚州民主党支持。
- 您正在使用当前版本的 Nvidia 二进制驱动程序(旧版本不支持 VDPAU)。
- 您已
libvdpau1
安装包。 - 网站上的播放器使用舞台视频– 这就是为什么只有 YouTube 和少数其他播放器受到影响。
看Nvidia 的 Pierre-Loup Griffais 的解释。
这不是 Nvidia 驱动程序中的错误。Nvidia 已经意识到了这个问题,并且已经创建了一个解决方法。Nouveau 驱动程序可能不会受到影响,因为视频解码支持尚未完成。
这不是 libvdpau 中的错误。libvdpau 只是一个包装器,允许视频播放器使用 VDPAU 解码(参见史蒂芬·沃伦的解释)。
这不是 Ubuntu 特有的错误。其他发行版也受到影响,例如拱。
该漏洞很可能存在于 Flash Player 中– 尽管 Adobe 试图将责任归咎于 Nvidia 和不称职的用户。Adobe 的 bug 跟踪器上已经有多份报告,但都被拒绝,理由是“无法重现”:
- https://bugbase.adobe.com/index.cfm?event=bug&id=3077076
- https://bugbase.adobe.com/index.cfm?event=bug&id=3097844
- https://bugbase.adobe.com/index.cfm?event=bug&id=3109467
- https://bugbase.adobe.com/index.cfm?event=bug&id=3120888
- https://bugbase.adobe.com/index.cfm?event=bug&id=3136745
- https://bugbase.adobe.com/index.cfm?event=bug&id=3164063
Adobe 不会发布官方修复,因为基于 NPAPI 的 Flash Player仅接收安全补丁直到 2017 年。希望到那时我们就不再需要 Flash Player 了。
解决方法
使用 libvdpau 0.5
自 Ubuntu 12.10 起在官方存储库中可用libvdpau 0.4.1-6
此版本的 libvdpau 包含 Stephen Warren 提供的如下所述的解决方法。
安装修补的 libvdpau(适当的补丁)
Stephen Warren 为 libvdpau 创建了很好的补丁,它可以检测 Flash Player 并仅对其应用解决方法。可以使用/etc/vdpau_wrapper.cfg
文件控制该补丁。
修补后的 libvdpau 修复了颜色并允许 Flash Player 使用 VDPAU 进行硬件覆盖,这仍然提供了一些性能优势。
要使包装器正常工作,它需要识别 Flash 的使用。因此必须命名 Flash 库libflashplayer.so
,并且必须在 Firefox 中启用插件包装器(在 中about:config
,dom.ipc.plugins.enabled.libflashplayer.so
并且dom.ipc.plugins.enabled
应设置为true
)。
对于 Precise (12.04) 和 Oneiric (11.10),你可以从以下位置安装修补的 libvdapu马克西姆·蒂科诺夫的 PPA使用以下命令:
sudo add-apt-repository ppa:tikhonov/misc
sudo apt-get update
sudo apt-get install libvdpau1
该更改应在重启后生效(或可能更早)。
防止 Flash Player 查找 libvdpau
(通过Daniel Mario Vega 在 Launchpad 上)
在您的系统中定位– 对于 Ubuntu,如果您安装了软件包,则libflashplayer.so
位于 中,或者位于中。如果您找不到文件 (/usr/lib/adobe-flashplugin/
adobe-flashplugin
/usr/lib/flashplugin-installer/
flashplugin-installer
about:plugins
针对 Firefox 进行一些调整可能需要)。
运行以下命令 – 假设您已经安装了flashplugin-installer
或adobe-flasplugin
:
cd /usr/lib/flashplugin-installer || cd /usr/lib/adobe-flashplugin/
sudo perl -pi.bak -e 's/libvdpau/lixvdpau/g' libflashplayer.so
重新启动浏览器后更改生效。
这将修改 Flash Player 的二进制文件以搜索不存在的“lixvdpau”库而不是“libvdpau”。因此它根本不会尝试使用 VDPAU 演示。
该命令会创建二进制文件的 libflashplayer.so.bak 备份,以防您遇到任何问题。
每次 Flash Player 更新时您都需要运行此命令,因为您的更改将被覆盖。
通过这种解决方法,您可以保持硬件加速,安装 libvdpau1,并且与修补 libvdpau 相比,它非常容易应用。
将 Google Chrome 与 PepperFlash 结合使用
从版本 20 开始,Google Chrome 附带了支持 PPAPI 的“Pepper”Flash Player 11.3(而不是 Firefox 等使用的 NPAPI 上的 11.2)。PepperFlash 似乎不受此问题的影响,因为它似乎使用了完整的硬件加速。
辣椒闪光可以与 Chromium 一起使用,但遗憾的是目前没有其他浏览器支持PPAPI。
禁用 Flash Player 的硬件加速
最简单、干扰最小的解决方法是禁用 Flash Player 的显示设置中的硬件加速– 右键单击 Flash,选择设置…
然而,这并不容易,因为在复合管理器(Compiz,标准 Unity)下以及浏览器显示滚动条时,“设置”窗口没有响应。
要禁用硬件加速,请全屏打开任何视频(例如 YouTube 上的视频),然后然后打开设置…窗口。或者您可以暂时切换到 Unity 2D 或其他非复合窗口管理器。
刷新后更改生效。
缺点:这会禁用 Flash Player 中的硬件加速,即使对于矢量和位图操作也是如此。某些 Flash 游戏和电影的性能和/或图形可能会更差。
卸载 libvdpau
如果您想启用 Flash Player 中的硬件加速,您可以从系统中卸载 libvdpau,这可以有效地阻止 Flash Player 使用 VDPAU。
跑步:
sudo apt-get remove libvdpau1
缺点:桌面播放器(如 Totem 和 Mplayer)也无法使用硬件视频解码。这将导致播放期间 CPU 使用率更高。此外,视频播放性能可能会受到影响(例如丢帧或画面完全冻结),尤其是当您的 CPU 较慢且正在观看 1080p 视频时。
启用 Flash Player 硬件视频解码
大多数用户报告说这会导致 Flash Player 频繁崩溃(可能是由于解码中的并发问题)但如果你觉得自己很幸运,那就尝试一下吧。
这也是Flash-Aid 插件. 这不会让情况变得更好。
跑步:
sudo mkdir /etc/adobe
echo -e "EnableLinuxHWVideoDecode=1" | sudo tee /etc/adobe/mms.cfg > /dev/null
这将创建包含内容的 /etc/adobe/mms.cfg 文件EnableLinuxHWVideoDecode=1
。这是强制 Flash Player 在 GPU 上解码视频的唯一方法,但 Adobe 并未正式支持该方法。
要撤消此操作,请运行:
sudo rm /etc/adobe/mms.cfg
删除 mms.cfg 文件。
VDPAU_NVIDIA_NO_OVERLAY=1
您可以尝试使用环境变量进一步提高 Flash Player 的稳定性,请参阅Nvidia 论坛。
更换 Flash 播放器
(根据建议Launchpad 上的 bowser)
使用Flash视频替换器Firefox 附加组件,魔法文学totem-mozilla
或者其他解决方案,用嵌入式视频播放器插件(如 Totem – – 或 VLC – )替换 Flash 中的标准播放器mozilla-plugin-vlc
。没有 Flash Player,没问题。
补丁 libvdpau (vdpau_trace hack)
有一个Nvidia 的非官方补丁通过破解 vdpau_trace 来修复 Flash Player 在 libvdpau 级别的错误。
请注意,上述由 Stephen Warren 提出的补丁在技术上更为出色,应该予以使用。
非解决办法
以下解决方案仅能部分起作用,或者可能存在一些注意事项。
在 YouTube 上启用 HTML5
启用 HTML5 播放器http://www.youtube.com/html5不适用于所有视频;某些 YouTube 视频无法在 HTML5 播放器上使用(例如由于缺乏广告支持)。不过 HTML5 视频非常棒,您无论如何都应该使用它。
降级至 Flash Player 11.1
有已知漏洞FP 11.1 中的问题已在 11.2 中修复。如果你想冒险,你应该知道你会遇到什么。
如果你仍然想降级,请尝试仍然维护的 Flash Player 10.3 - 你可以Adobe 的档案
切换到不同的 GPU
似乎很少有 Nvidia GPU 不受影响,特别是 Quadro 2000 和 GeForce GT 430。两者都有VDPAU功能集C,但除此之外,大多数功能集 C GPU 也受到影响。如果您拥有上述任何 GPU,请告诉我们在启动板上该错误是否对您有影响。
答案2
更新:请看一下此解决方案进行适当的修复。这里提到的解决方案导致许多尝试过的人崩溃。
这是由于漏洞Adobe 拒绝修复新版 Flash 中的问题。Launchpad 上也有错误报告讨论了这个问题 (LP:#967091)。只有当您使用 NVidia 二进制驱动程序并安装了 libvdpau 时,才会出现此错误。快速修复方法是向 Flash 配置中添加一些额外设置。
sudo mkdir /etc/adobe
echo -e "EnableLinuxHWVideoDecode=1\nOverrideGPUValidation=true" | sudo tee /etc/adobe/mms.cfg > /dev/null
这解决了问题,同时仍然具有 VDPAU 硬件加速。不幸的是,如果没有这个手动配置破解,可能不会有新的 Flash 版本来解决这个问题,因为引入此错误的 Flash 版本也是 Adobe 为 Linux 发布的最后一个 Flash 版本。
如果这导致不稳定,请删除之前创建的目录以恢复更改。
sudo rm -r /etc/adobe
或者您可以尝试将 /etc/adobe/mms.cfg 文件缩减为
OverrideGPUValidation=true
使用 sudo gedit /etc/adobe/mms.cfg 编辑该行。
答案3
修复(解决方法)
问题: 所有网络浏览器的 Flash Player 视频都是蓝色的
- 铬
- 谷歌浏览器
- 火狐
这两个 Flash 插件都会导致 Flash 视频出现蓝色覆盖,因此请删除。
- Adobe - flash插件
- Flashplugin - 安装程序
解决方案(不如 Adobe Flash 插件那么实用,但可以工作)
- 安装 lightspark (以及任何浏览器插件) 或者
- 安装 gnash (以及任何浏览器插件)
可能的修复方法 1
已移除:
- gnash 浏览器插件
- gightspark 浏览器插件
- Unix 的视频解码和演示 API(库)libvdpau1
- flashplugin - 安装程序
已安装:
adobe-flashplugin 重新启动了浏览器,它对我来说起作用了。
可能的修复 2
已安装:
- libvdpau1
闪光灯设置
- 禁用 Flash 中的硬件加速。
打开您的浏览器并导航到 Flash 视频(youtube、abobe flash 网站等)右键单击、设置并禁用硬件加速。
如果您无法禁用硬件加速,请登录 Unity 2D 环境。
漏洞:https://bugs.launchpad.net/ubuntu/+source/unity/+bug/968489
OBS:如果问题仍然存在,请重启机器。