视频播放时出现断层线,看起来像是两帧的部分被拼接在一起(编辑:称为“撕裂”)

视频播放时出现断层线,看起来像是两帧的部分被拼接在一起(编辑:称为“撕裂”)

我在用着Gentoo Linux3.8.13国内的 x86 内核和3.10.4x86_64 内核正在工作。

当我观看时720p或者1080p高清.mkv包含H264 MPEG-4 视频在全屏模式(VLC、mplayer)下,我经常看到奇怪的线条,有点烦人。我猜它们出现在关键帧上。

这是截图。因为无法描述这个问题。看看欧比旺的额头: 在此处输入图片描述

我已经尝试启用反隔行亚迪夫雅迪夫 2x正如互联网上各个论坛所建议的那样,但没有帮助。

我在我的内核配置中使用CONFIG_HZ_1000=y,并且我尝试过CONFIG_HZ_100=y,但似乎没有任何区别。

非常感谢您的帮助!

更新1:无法启用或禁用 GPU 加速: 在此处输入图片描述

更新2:启用 VSync 后没有效果:

xrandr -q --verbose | grep 1280x800
LVDS connected 1280x800+0+0 (0x1e1) normal (normal left inverted right x axis y axis) 331mm x 207mm
  1280x800 (0x54)   71.0MHz -HSync -VSync +preferred
  1280x800_60.00 (0x1e1)   83.5MHz -HSync +VSync *current

更新3:启用 VSync 后,我将 VLC 中的视频输出更改为OpenGL GLX (XCB)

现在一切都运行正常!

非常感谢所有提供帮助的人,我希望这能够帮助任何面临同样问题的人!

答案1

看起来像垂直撕裂对我来说,这意味着你的 GPU 输出帧的速度比屏幕显示帧的速度快。这通常是游戏和其他互动事物中更常见的问题,因为视频播放通常启用了 V-sync。

如果您在 VLC 中使用 GPU 加速,请尝试将其关闭(“首选项”中的“输入和编解码器”选项卡中有一个“GPU 加速”复选框)并查看是否有区别。

您还可以尝试强制 V-sync 驱动程序端,看看是否有区别。

答案2

这看起来不像是某个特定帧的问题。相反,可能是你的显卡太过负荷,无法不延迟地显示视频。你是否注意到高分辨率视频的撕裂现象更严重?像素越多,硬件的工作量就越大。高帧率也会导致更多的工作,因为它没有足够的时间来处理给定帧中的所有微小像素。

您应该尝试使用不同的视频输出驱动程序。我不知道 VLC 是什么,但 Mplayer 最适合使用 XV。如果您使用 XV 和所谓的“适配器”,这可能会进一步提高您的性能(例如 -vo xv:adaptor=0)。如果您仍然遇到撕裂,您可以尝试使用软件缩放来降低分辨率(-vf-add scale=720),前提是您有一个快速的 CPU。

如果以上所有方法都失败了,那么你的 GPU 可能根本就不够快,无法播放高清视频。你可以尝试购买更新、更快的型号。或者,你可以使用视频转换程序,例如光纤光纤,以较低的分辨率转换视频。如果你不喜欢命令行,你也可以使用 XMedia-Recode(基于 Windows 的 GUI),因为它与葡萄酒。 这主页是德语的,但你可以从视频帮助,如果您觉得从英文网站获取更方便的话。无论哪种方式,XMR 都可以使用英文。

相关内容