我正在尝试运行 4k h264 MPEG4-AVC part 10、4k 3840x2160 视频。在 VLC (2.1.6 Rincewind) 上,视频非常不流畅,似乎只使用一个 CPU。在 mplayer 上,视频非常流畅,似乎使用多个 CPU。我的笔记本电脑不是最新的,但它仍然是一台强大的 2.5GHz i7 三星设备。有解决办法吗?
编辑#1
DPKG 信息:
dpkg -l | grep libva
ii libva-dev:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- development files
ii libva-drm1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- DRM runtime
ii libva-egl1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- EGL runtime
ii libva-glx1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- GLX runtime
ii libva-tpi1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- TPI runtime
ii libva-wayland1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- Wayland runtime
ii libva-x11-1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- X11 runtime
ii libva1:amd64 1.3.0-2 amd64 Video Acceleration (VA) API for Linux -- runtime
ii libvamp-hostsdk3:amd64 2.5+repack0-2 amd64 helper library for Vamp hosts written in C++
LSPCI 信息:
lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 3rd Gen Core processor Graphics Controller (rev 09)
CPU 信息: cat /proc/cpuinfo | grep CPU 型号名称:Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz 型号名称:Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz 型号名称:Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz 型号名称:Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz 型号名称:Intel(R) Core(TM) i7-3537U CPU @ 2.00GHz
mplayer 似乎使用了 3 个 CPU,因为我在 CPU 监视器中看到 75%。以下是日志:http://pastebin.com/65Uuk3An
我尝试了 vlc 中的加速(自动加速模式),但仍然很不稳定:http://pastebin.com/F8TZXxnG
编辑#2
vainfo 返回了一个错误。我刚刚在我的 Ubuntu 14.04 上安装了 i965-va-driver、vdpau-va-driver 和 libvdpau-va-gl1。vainfo 现在返回:http://pastebin.com/r0DcMMUg
Mplayer 现在占用 100% CPU(所有核心)。
尽管 VLC 现在可以找到 va_openDriver 并且不会像我的编辑 #1 那样报告错误,但它仍然不稳定。另外,请注意,VLC 永远不会返回,我必须将其 kill -9。解码 4k 文件时总是这种情况。
编辑#3
以下是 vlc 的更详细的调试:http://pastebin.com/8ykvG9rc.如您所见:
avcodec decoder warning: threaded frame decoding is not compatible with avcodec-hw, disabled
还:
avcodec decoder debug: using slice thread mode with 4 threads
我只看到 25% 的 CPU 使用率,而 mplayer 却达到 100%。无论如何,硬件似乎没有被使用(即使使用 mplayer)。
答案1
您可以将视频播放卸载到视频卡上,而不是使用 CPU。
确保您已安装 vaapi 包(适用于 Intel/AMD 显卡):
sudo apt-get 安装 libva1 libva-x11-1 vainfo vdpau-va-驱动程序
如果您有 Nvidia 卡,请添加以下内容:
sudo apt-get 安装 vdpauinfo libvdpau
由于 mplayer 运行良好,它可能已在使用硬件加速。因此这些软件包可能已安装。
接下来,看看 VLC 是否会启动硬件加速:
vlc -v /路径/文件名称
GUI 中还有一个选项可以打开硬件加速。检查它设置了什么(工具>首选项>输入/编解码器):
答案2
有解决办法吗?
问题的答案是:视情况而定。
我认为您还需要问一些其他问题才能解决无法使用 vlc 播放 4K 视频而不出现“断断续续”的问题:
- 您有什么显卡(GPU)?
- 您是否安装了正确的驱动程序?
- 这些驱动程序正在被使用吗?
- mplayer 是否使用硬件加速?
- VLC 是否使用硬件加速?
- 如果是,为什么播放不顺畅?
- 你需要什么编解码器?
- ETC。
暗示
根据您的发现,我猜测 mplayer 正在使用硬件加速,因为我不知道哪个 CPU 可以播放 4K 视频,所以我猜测您可能有一个足以播放 4K 的 GPU。
答案3
我在 Ubuntu 16.04 上的 VLC 硬件加速运行时遇到了 3 个问题。
详细而长远的答案在这里: 如何启用硬件加速
- 对于 NVIDIA 显卡,您需要切换到 NVIDIA 专有驱动程序版本 R367+
- VLC 2.2 中存在错误:至少升级到 VLC 2.2.4,或者最好从 VLC 官方 PPA 升级到夜间 VLC 3.0
ppa:videolan/master-daily
。 - 如果您将 VLC 与 FFmpeg 一起使用(我认为这是默认设置),则必须在 VLC >
Tools
>Preferences
(All
) >Input / Codecs
>Video codecs
>中禁用 FFmpeg 多线程FFmpeg
:将 的值Threads
从0
(自动)更改为1
。
当然,你必须在 VLC > Tools
> Preferences
( Simple
) > Input / Codecs
> Hardware-acceleration decoding
=中启用硬件加速Auto
。对于 NVIDIA,你可以VDPAU video decoder
明确选择。
请注意,对于 NVIDIA,Linux 驱动程序目前不支持HEVC
(H265) 配置文件。使用 检查 NVIDIA 最终软件+硬件支持。Main 10
vdpauinfo
答案4
我已经通过禁用解决了这个问题视频质量后处理水平.
因此,要禁用此选项 -
打开甚高频