我正在 qemu-kvm 虚拟机中使用 VLC 播放高质量 (1080p) 视频。我的虚拟机上的操作系统是 gentoo,主机操作系统是 Ubuntu。
视频体验非常不稳定:视频经常停止,详细模式日志中有很多“PTS 超出范围,丢弃缓冲区”和“跳过最后一张图片”消息。
qemu 进程的 CPU 利用率远未达到 100%。磁盘利用率也远未达到 100%。(使用和的目视检查top
)iotop
。
还有什么可能导致此问题? 我可以在 vlc 中尝试哪些选项来找出问题?
答案1
如果可能的话,我会为虚拟机分配更多资源。具体来说,分配更多核心,看看是否可以增加视频 RAM。虚拟机无法访问计算机中 100% 的资源,只能访问虚拟机管理程序(在您的例子中是 qemu-kvm)允许的最大资源量。请记住,您的系统也在使用虚拟化显卡,因此它不如主机可以访问的显卡那么强大 - 即使虚拟机管理程序允许高级视频功能,虚拟设备模拟的性能仍然会受到影响。
答案2
qemu-kvm 不使用 vnc 进行显示吗?我猜视频是在软件中解码的,然后将位图发送到 vnc-viewer 进程,然后发送到 X 服务器,然后发送到视频卡。
另外,CPU 利用率。我认为 Linux 没有将 %idle(等待用户)和 %wio(等待 io)分开。如果某个进程等待显卡,则记录为空闲。
如果您确实想从虚拟机观看视频,您可能需要寻找可以直接写入显卡的东西。也就是说,在您的虚拟机中运行的 vlc 需要使用类似 DRI 的东西将您的显卡映射到 vlc 自己的虚拟内存空间中。