![如何才能让 8K H265 MP4 文件在 VLC 上更好地播放?](https://linux22.com/image/1193900/%E5%A6%82%E4%BD%95%E6%89%8D%E8%83%BD%E8%AE%A9%208K%20H265%20MP4%20%E6%96%87%E4%BB%B6%E5%9C%A8%20VLC%20%E4%B8%8A%E6%9B%B4%E5%A5%BD%E5%9C%B0%E6%92%AD%E6%94%BE%EF%BC%9F.png)
我的三星 Galaxy S21 Ultra 以 8K(24 fps)录制视频,我希望能够使用 Ubuntu 22.04 在 VLC 中播放这些视频。4K 视频播放正常,但 8K 视频非常不连贯且失真。有没有办法提高它们的性能?它们在 Windows 10 上的 VLC 中播放良好,所以我想一定有办法在 Ubuntu 中获得相同(或更好)的输出。
我有一台配备 16 GB VRAM 的 RTX 3080 移动处理器、一台 i7 第 11 代 8 核 CPU 和 64 GB RAM,所以我认为我的系统规格不是问题所在。我还在用 SSD 播放视频。当我以专用图形模式启动 VLC 时,问题仍然存在,根据 的输出watch nvidia-smi
,专用 GPU 似乎确实在为视频输出提供动力。
这是我在终端中打开 VLC 并尝试播放视频时收到的日志副本:
VLC media player 3.0.16 Vetinari (revision 3.0.13-8-g41878ff4f2)
[0000555cdc533580] main libvlc: Running vlc with the default interface. Use 'cvlc' to use vlc without interface.
[0000555cdc5d3450] main playlist: playlist is empty
[00007fb3d40029a0] gl gl: Initialized libplacebo v4.192.1 (API v192)
libva info: VA-API version 1.14.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/nvidia_drv_video.so
libva info: Found init function __vaDriverInit_1_0
libva info: va_openDriver() returns 0
[00007fb3d40029a0] glconv_vaapi_x11 gl error: vaCreateSurfaces: attribute not supported
[00007fb3f0000d80] main video output error: video output creation failed
[00007fb3e401ee90] main decoder error: failed to create video output
[00007fb3d44a41f0] gl gl: Initialized libplacebo v4.192.1 (API v192)
[00007fb3e401ee90] avcodec decoder: Using NVIDIA VDPAU Driver Shared Library 525.89.02 Wed Feb 1 23:08:15 UTC 2023 for hardware decoding
[hevc @ 0x7fb3e403bf00] Failed setup for format vdpau: hwaccel initialisation returned error.
[00007fb3e401ee90] avcodec decoder error: existing hardware acceleration cannot be reused
[00007fb3d44a41f0] gl gl: Initialized libplacebo v4.192.1 (API v192)
[00007fb3d44a41f0] gl gl: Initialized libplacebo v4.192.1 (API v192)
[hevc @ 0x7fb3e4126500] Could not find ref with POC 4
[hevc @ 0x7fb3e4136e00] Could not find ref with POC 6
[hevc @ 0x7fb3e403bf00] Could not find ref with POC 8
[hevc @ 0x7fb3e40b2d80] Could not find ref with POC 10
[hevc @ 0x7fb3e40c3380] Could not find ref with POC 12
[hevc @ 0x7fb3e40d3a00] Could not find ref with POC 14
[hevc @ 0x7fb3e40e40c0] Could not find ref with POC 16
[hevc @ 0x7fb3e40f4a00] Could not find ref with POC 18
[hevc @ 0x7fb3e4105300] Could not find ref with POC 20
[hevc @ 0x7fb3e4115c00] Could not find ref with POC 22
[hevc @ 0x7fb3e4126500] Could not find ref with POC 0
[hevc @ 0x7fb3e4136e00] Could not find ref with POC 2
[hevc @ 0x7fb3e403bf00] Could not find ref with POC 4
(有许多类似的“无法找到参考”视频。由于我的视频每秒有 24 帧,所以我猜测这些数字指的是单个帧。)
更新:有趣的是,在另一个驱动器上安装的单独 Ubuntu 22.04 中,当我在默认的 Ubuntu 视频应用中首次打开一个视频后,视频在 VLC 中播放正常。我在主 Ubuntu 22.04 安装中尝试了这种方法,但没有成功。
我的单独 Ubuntu 安装默认使用英特尔显卡,因此问题可能出在 Ubuntu 上的 NVIDIA 设置上,而不是 VLC 上。但是,我发现将默认显卡切换回英特尔会导致我的显示无法出现在第二台显示器上,因此我想找到一种解决方案,让我可以使用 NVIDIA 显卡播放 VLC 视频(或者让我在必要时有选择地在英特尔内运行 VLC)。
附加信息:
当尝试使用 Ubuntu 的视频应用播放 8K 视频时,帧速率很好,但尺寸却相差甚远:视频的高度比宽度大得多(即使原始视频的分辨率为 16:9)。
答案1
您应该使用 smplayer 重试 mpv,但编译它以使用 NVidia 加速
git 克隆https://github.com/mpv-player/mpv-build.git
并把选项
mpv-build]$ cat ffmpeg_options --enable-libx264 --enable-libx265 --enable-nvenc --enable-nvdec --enable-ffnvcodec --enable-vdpau --enable-cuvid --enable-cuda --enable-libaom --enable-libvpx --enable-libfdk-aac --enable-nonfree --enable-libbluray --enable-libdrm --enable-libxvid --enable-vaapi --enable-libass