You are not logged in.

#1 2020-12-08 16:26:53

Vofan
Member
Registered: 2019-01-21
Posts: 65

[Solved] 2160p and 4k videos choppy in mpv, much less so in vlc

Hello,

I was hoping someone could help. I am using a 1080p @ 60hz monitor for the time being, but I will soon be migrating to 1440p @ 60hz. In any case, I will likely redownload/remux these videos, but I feel like with my CPU choppy playback isn't really expected. The VLC playback isn't butter-smooth, but it is much better/is actually watchable.

I am using non-mainline kernel at the moment, I will test with linux-lts between now and any replies, but I do not expect any difference; if there is, I will mention it, but I do not expect there to be and I will stick on the mainline lts for the duration of this thread. The reason I am using lts incidentally is that video playback causes X to freeze on the non-lts kernel. I made a previous thread some time ago about that here: https://bbs.archlinux.org/viewtopic.php?id=256932 and the bug report mentioned therein here: https://gitlab.freedesktop.org/drm/intel/-/issues/1805 (which I see was updated recently, I should write a reply.)

I use ffmpeg-git for some codec support not in the standard ffmpeg package, and I use mpv-git to build against that. I have double checked that my current mpv-git is built against my current version of ffmpeg-git.

$ uname -a
Linux vofan 5.4.81-xanmod1-1-xanmod-lts #1 SMP PREEMPT Mon, 07 Dec 2020 10:05:32 +0000 x86_64 GNU/Linux
$ gcc -march=native -Q --help=target|grep march
 -march=                               haswell
$ lscpu | grep name
Model name:                      Intel(R) Core(TM) i7-4710MQ CPU @ 2.50GHz
$ lspci | grep VGA
00:02.0 VGA compatible controller: Intel Corporation 4th Gen Core Processor Integrated Graphics Controller (rev 06)
$ pacman -Qs intel
local/intel-hybrid-codec-driver-gcc10 2.0.0.r169.edead0c-3
    Libva support for partially hardware accelerated encode and decode on Haswell and newer
local/intel-ucode 20201118-1
    Microcode update files for Intel CPUs
local/lib32-vulkan-intel 20.3.0-1
    Intel's Vulkan mesa driver (32-bit)
local/libcmrt 1.0.6-2
    Intel C for Media RunTime GPU kernel manager
local/libmfx 20.5.0-1
    Intel Media SDK dispatcher library
local/libva-intel-driver-hybrid-gcc10 2.4.1-1
    VA-API implementation for Intel G45 and HD Graphics family
local/libva-utils 2.9.1-1
    Intel VA-API Media Applications and Scripts for libva
local/tbb 2020.3-1
    High level abstract threading library
local/vulkan-intel 20.3.0-2
    Intel's Vulkan mesa driver
local/xf86-video-intel 1:2.99.917+913+g9236c582-1 (xorg-drivers)
    X.org Intel i810/i830/i915/945G/G965+ video drivers
$ pacman -Qs mesa
local/glu 9.0.1-2
    Mesa OpenGL Utility library
local/lib32-mesa 20.3.0-1
    An open-source implementation of the OpenGL specification (32-bit)
local/lib32-vulkan-intel 20.3.0-1
    Intel's Vulkan mesa driver (32-bit)
local/mesa 20.3.0-2
    An open-source implementation of the OpenGL specification
local/vulkan-intel 20.3.0-2
    Intel's Vulkan mesa driver
$ ls /usr/lib/dri
hybrid_drv_video.so  i965_drv_video.so  nouveau_dri.so        r300_dri.so    radeonsi_dri.so    vmwgfx_dri.so
i915_dri.so          iris_dri.so        nouveau_vieux_dri.so  r600_dri.so    swrast_dri.so      zink_dri.so
i965_dri.so          kms_swrast_dri.so  r200_dri.so           radeon_dri.so  virtio_gpu_dri.so
$ vainfo
vainfo: VA-API version: 1.10 (libva 2.9.1)
vainfo: Driver version: Intel i965 driver for Intel(R) Haswell Mobile - 2.4.1
vainfo: Supported profile and entrypoints
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Simple            : VAEntrypointEncSlice
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264MultiviewHigh      : VAEntrypointVLD
      VAProfileH264MultiviewHigh      : VAEntrypointEncSlice
      VAProfileH264StereoHigh         : VAEntrypointVLD
      VAProfileH264StereoHigh         : VAEntrypointEncSlice
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD

Weirdly, this returns blank:

$ echo $LIBVA_DRIVER_NAME

And likewise for vdpau driver. I exported both variables (vdpau as va_gl, and libva as iHD and i915 - I am not really sure what it is meant to be) with no luck.

Current mpv.conf - I've played with it a bit with no luck:

#profile=gpu-hq
scale=ewa_lanczossharp
cscale=ewa_lanczossharp
#video-sync=display-resample
#interpolation
#tscale=oversample
hwdec=vaapi
hwdec-codecs=all
#video-output-levels=full

Commenting out scale and cscale do result in much smoother playback - similar to vlc, though not quite as smooth - however, is this really the issue here? My CPU hovers around 20-30% in two threads only, the rest around 5-15% with those enabled - how much does hardware acceleration typically use? I am both not really satisfied with the playback with these commented out, nor do I understand why it makes such a large difference when the CPU isn't being used as heavily as it can be.

mpv -v output with them commented out (ie. with only hwdec=vaapi and hwdec-codecs=all set):

$ mpv -v 
[cplayer] Command line options: '--input-ipc-server=/tmp/mpvsoc1607422587' '-v' '2019
[cplayer] mpv 0.33.0-31-gb8156a9a86 Copyright © 2000-2020 mpv/MPlayer/mplayer2 projec
[cplayer]  built on Tue Dec  8 14:55:08 GMT 2020
[cplayer] FFmpeg library versions:
[cplayer]    libavutil       56.62.100
[cplayer]    libavcodec      58.115.101
[cplayer]    libavformat     58.65.100
[cplayer]    libswscale      5.8.100
[cplayer]    libavfilter     7.92.100
[cplayer]    libswresample   3.8.100
[cplayer] FFmpeg version: N-100223-g3ffed80eba
[cplayer]
[cplayer] Configuration: ./waf configure --prefix=/usr --confdir=/etc/mpv --enable-li
[cplayer] List of enabled features: 52arch alsa asm build-date caca cplayer cplugins
fnvcodec gbm gbm.h gl gl-wayland glibc-thread-name glob glob-posix gpl iconv jack jav
lacebo librt linux-fstatfs linux-input-event-codes lua memfd_create optimize plain-gl
t vaapi vaapi-drm vaapi-egl vaapi-vulkan vaapi-wayland vaapi-x-egl vaapi-x11 vdpau vt
[cplayer] Reading config file /etc/mpv/encoding-profiles.conf
[cplayer] Applying profile 'default'...
[cplayer] Reading config file /home/vofan/.config/mpv/mpv.conf
[cplayer] Applying profile 'default'...
[cplayer] Setting option 'hwdec' = 'vaapi' (flags = 4)
[cplayer] Setting option 'hwdec-codecs' = 'all' (flags = 4)
[cplayer] Setting option 'input-ipc-server' = '/tmp/mpvsoc1607422587' (flags = 8)
[cplayer] Setting option 'v' = '' (flags = 8)
[bdmv/bluray] Opening /home/vofan/.config/mpv/input.conf
[file] Opening /home/vofan/.config/mpv/input.conf
[input] Parsing input config file /home/vofan/.config/mpv/input.conf
[input] Input config file /home/vofan/.config/mpv/input.conf parsed: 5 binds
[cplayer] Waiting for scripts...
[ipc] Starting IPC master
[ipc] Listening to IPC socket.
[osd/libass] Shaper: FriBidi 1.0.10 (SIMPLE) HarfBuzz-ng 2.7.2 (COMPLEX)
[osd/libass] Setting up fonts...
[osd/libass] Loading font file '/home/vofan/.config/mpv/fonts/SourceSansVariable-Roma
[osd/libass] Loading font file '/home/vofan/.config/mpv/fonts/SourceSansVariable-Ital
[osd/libass] Using font provider fontconfig
[osd/libass] Done.
[cplayer] Set property: shared-script-properties -> 1
[cplayer] Done loading scripts.
[cplayer] Running hook: ytdl_hook/on_load
[ytdl_hook] ytdl:// hook
[ytdl_hook] not a ytdl:// url
[bdmv/bluray] Opening 20190722-Hiking 60 Miles Alone in Hornstrandir Iceland.webm
[cplayer] Set property: shared-script-properties -> 1
[file] Opening 20190722-Hiking 60 Miles Alone in Hornstrandir Iceland.webm
[osd/libass] Shaper: FriBidi 1.0.10 (SIMPLE) HarfBuzz-ng 2.7.2 (COMPLEX)
[osd/libass] Setting up fonts...
[demux] Trying demuxers for level=normal.
[mkv] Deferring reading cues.
[mkv] All headers are parsed!
[demux] Detected file format: Matroska
[cplayer] Opening done: 20190722-Hiking 60 Miles Alone in Hornstrandir Iceland.webm
[osd/libass] Loading font file '/home/vofan/.config/mpv/fonts/SourceSansVariable-Roma
[osd/libass] Loading font file '/home/vofan/.config/mpv/fonts/SourceSansVariable-Ital
[osd/libass] Using font provider fontconfig
[osd/libass] Done.
[find_files] Loading external files in .
[cplayer] Running hook: ytdl_hook/on_preloaded
[mkv] select track 0
[mkv] select track 1
[display-tags] ...
[vo/gpu] Probing for best GPU context.
[vo/gpu/opengl] Initializing GPU context 'wayland'
[vo/gpu/opengl] Initializing GPU context 'x11egl'
[vo/gpu/x11] X11 opening display: :0
[vo/gpu/x11] Display 0 (HDMI1): [0, 0, 1920, 1080] @ 60.000000 FPS
[vo/gpu/x11] Current display FPS: 60.000000
[vo/gpu/opengl] EGL_VERSION=1.4
[vo/gpu/opengl] EGL_VENDOR=Mesa Project
[vo/gpu/opengl] EGL_CLIENT_APIS=OpenGL OpenGL_ES
[vo/gpu/opengl] Trying to create Desktop OpenGL context.
[vo/gpu/opengl] Choosing visual EGL config 0x3, visual ID 0x20
[vo/gpu/opengl] GL_VERSION='4.5 (Core Profile) Mesa 20.3.0'
[vo/gpu/opengl] Detected desktop OpenGL 4.5.
[vo/gpu/opengl] GL_VENDOR='Intel Open Source Technology Center'
[vo/gpu/opengl] GL_RENDERER='Mesa DRI Intel(R) HD Graphics 4600 (HSW GT2)'
[vo/gpu/opengl] GL_SHADING_LANGUAGE_VERSION='4.50'
[vo/gpu] Testing FBO format rgba16f
[vo/gpu] Using FBO format rgba16f.
[vo/gpu] No advanced processing required. Enabling dumb mode.
[vo/gpu] Assuming 60.000000 FPS for display sync.
[vd] Container reported FPS: 23.976024
[vd] Codec list:
[vd]     vp9 - Google VP9
[vd]     vp9_v4l2m2m (vp9) - V4L2 mem2mem VP9 decoder wrapper
[vd]     libvpx-vp9 (vp9) - libvpx VP9
[vd]     vp9_cuvid (vp9) - Nvidia CUVID VP9 decoder
[vd]     vp9_qsv (vp9) - VP9 video (Intel Quick Sync Video acceleration)
[vd] Opening decoder vp9
[vd] Looking at hwdec vp9-vaapi...
[vo/gpu] Loading hwdec driver 'vaapi-egl'
[vo/gpu/vaapi-egl] using VAAPI EGL interop
[vo/gpu/vaapi-egl] Trying to open a x11 VA display...
[vo/gpu] Loading failed.
[vo/gpu] Loading hwdec driver 'cuda-nvdec'
Cannot load libcuda.so.1
[vo/gpu/cuda-nvdec] Failed to load CUDA symbols
[vo/gpu] Loading failed.
[vo/gpu] Loading hwdec driver 'drmprime-drm'
[vo/gpu/drmprime-drm] Failed to retrieve DRM fd from native display.
[vo/gpu] Loading failed.
[vd] Could not create device.
[vd] No hardware decoding available for this codec.
[vd] Using software decoding.
[vd] Detected 8 logical cores.
[vd] Requesting 9 threads for decoding.
[vd] Selected codec: vp9 (Google VP9)
[vf] User filter list:
[vf]   (empty)
[ad] Codec list:
[ad]     opus - Opus
[ad]     libopus (opus) - libopus Opus
[ad] Opening decoder opus
[ad] Requesting 1 threads for decoding.
[ad] Selected codec: opus (Opus)
[af] User filter list:
[af]   (empty)
[cplayer] Starting playback...
[af] [in] 48000Hz stereo 2ch floatp
[af] [userspeed] 48000Hz stereo 2ch floatp
[af] [userspeed] (disabled)
[af] [convert] 48000Hz stereo 2ch floatp
[ao] Trying audio driver 'pulse'
[ao/pulse] requested format: 48000 Hz, stereo channels, floatp
[ao/pulse] Library version: 14.0.0
[ao/pulse] Proto: 34
[ao/pulse] Server proto: 4294967295
[ao/pulse] Channel layouts:
[ao/pulse]  - #fl
[ao/pulse]  - #fr
[ao/pulse]  - #fc
[ao/pulse]  - #lfe
[ao/pulse]  - #bl
[ao/pulse]  - #br
[ao/pulse]  - #flc
[ao/pulse]  - #frc
[ao/pulse]  - #bc
[ao/pulse]  - #sl
[ao/pulse]  - #sr
[ao/pulse]  - #tc
[ao/pulse]  - #tfl
[ao/pulse]  - #tfc
[ao/pulse]  - #tfr
[ao/pulse]  - #tbl
[ao/pulse]  - #tbc
[ao/pulse]  - #tbr
[ao/pulse] result: stereo
[ao/pulse] device buffer: 4800 samples.
[ao/pulse] using soft-buffer of 9600 samples.
[cplayer] AO: [pulse] 48000Hz stereo 2ch float
[cplayer] AO: Description: PulseAudio audio output
[autoconvert] inserting resampler
[swresample] format change, reinitializing resampler
[swresample] 48000Hz stereo floatp -> 48000Hz stereo float
[af] [out] 48000Hz stereo 2ch float
[vd] Using software decoding.
[vd] Decoder format: 3840x2160 [0:1] yuv420p bt.709/auto/auto/limited/auto CL=unknown
[vd] Using container aspect ratio.
[vf] [in] 3840x2160 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpeg
[vf] [userdeint] 3840x2160 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000000
[vf] [userdeint] (disabled)
[vf] [autorotate] 3840x2160 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000000
[vf] [autorotate] (disabled)
[vf] [convert] 3840x2160 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL
[vf] [convert] (disabled)
[vf] [out] 3840x2160 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000000 CL=mpe
[cplayer] VO: [gpu] 3840x2160 yuv420p
[cplayer] VO: Description: Shader-based GPU Renderer
[vo/gpu] reconfig to 3840x2160 yuv420p bt.709/bt.709/bt.1886/limited/display SP=1.000
[vo/gpu] Resize: 949x1072
[vo/gpu] Window size: 949x1072 (Borders: l=0 t=0 r=0 b=0)
[vo/gpu] Video source: 3840x2160 (1:1)
[vo/gpu] Video display: (0, 0) 3840x2160 -> (0, 269) 949x533
[vo/gpu] Video scale: 0.247135/0.246759
[vo/gpu] OSD borders: l=0 t=269 r=0 b=270
[vo/gpu] Video borders: l=0 t=269 r=0 b=270
[vo/gpu] Reported display depth: 8
[vo/gpu] Texture for plane 0: 3840x2160
[vo/gpu] Texture for plane 1: 1920x1080
[vo/gpu] Texture for plane 2: 1920x1080
[vo/gpu] Testing FBO format rgba16f
[vo/gpu] Using FBO format rgba16f.
[vo/gpu] No advanced processing required. Enabling dumb mode.
[vo/gpu] DR enabled: yes
[cplayer] first video frame after restart shown
[cplayer] audio ready
[cplayer] delaying audio start 0.007979 vs. 0.007000, diff=0.000979
[cplayer] playback restart complete @ 0.007000, audio=ready, video=playing
[statusline] AV: 00:00:00 / 00:13:24 (0%) A-V:  0.000
[cplayer] starting audio playback
[ao/pulse] starting AO
[vo/gpu/x11] Disabling screensaver.
[cplayer] Set property: shared-script-properties -> 1
[cplayer] Set property: shared-script-properties -> 1
[statusline] AV: 00:00:00 / 00:13:24 (0%) A-V:  0.000
[vo/gpu] Resize: 1920x1080
[vo/gpu] Window size: 1920x1080 (Borders: l=0 t=0 r=0 b=0)
[vo/gpu] Video source: 3840x2160 (1:1)
[vo/gpu] Video display: (0, 0) 3840x2160 -> (0, 0) 1920x1080
[vo/gpu] Video scale: 0.500000/0.500000
[vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[vo/gpu] Video borders: l=0 t=0 r=0 b=0
[vo/gpu] Reported display depth: 8
[cplayer] Set property: shared-script-properties -> 1
[vo/gpu] Resize: 1920x1080
[vo/gpu] Window size: 1920x1080 (Borders: l=0 t=0 r=0 b=0)
[vo/gpu] Video source: 3840x2160 (1:1)
[vo/gpu] Video display: (0, 0) 3840x2160 -> (0, 0) 1920x1080
[vo/gpu] Video scale: 0.500000/0.500000
[vo/gpu] OSD borders: l=0 t=0 r=0 b=0
[vo/gpu] Video borders: l=0 t=0 r=0 b=0
[vo/gpu] Reported display depth: 8
[statusline] AV: 00:00:23 / 00:13:24 (3%) A-V:  0.000
[cplayer] EOF code: 5
[vo/gpu/x11] Enabling screensaver.
[cplayer] finished playback, success (reason 3)
[cplayer]
[cplayer] Exiting... (Quit)
[cplayer] Set property: shared-script-properties -> 1

Thanks for any advice.

Last edited by Vofan (2020-12-21 14:12:19)

Offline

#2 2020-12-08 16:31:41

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,626

Re: [Solved] 2160p and 4k videos choppy in mpv, much less so in vlc

I'd say try using vaapi for the vo as well rather than ogl.

Offline

#3 2020-12-08 16:46:50

Vofan
Member
Registered: 2019-01-21
Posts: 65

Re: [Solved] 2160p and 4k videos choppy in mpv, much less so in vlc

V1del wrote:

I'd say try using vaapi for the vo as well rather than ogl.

Setting vo=vaapi gives an error. So something is wrong with the vaapi install itself, I presume.

[cplayer] Command line options: '--input-ipc-server=/tmp/mpvsoc1607422587' '-v' '20190722-Hiking 60 Miles Alone in Hornstrandir Iceland.webm'
[cplayer] mpv 0.33.0-31-gb8156a9a86 Copyright © 2000-2020 mpv/MPlayer/mplayer2 projects
[cplayer]  built on Tue Dec  8 14:55:08 GMT 2020
[cplayer] FFmpeg library versions:
[cplayer]    libavutil       56.62.100
[cplayer]    libavcodec      58.115.101
[cplayer]    libavformat     58.65.100
[cplayer]    libswscale      5.8.100
[cplayer]    libavfilter     7.92.100
[cplayer]    libswresample   3.8.100
[cplayer] FFmpeg version: N-100223-g3ffed80eba
[cplayer]
[cplayer] Configuration: ./waf configure --prefix=/usr --confdir=/etc/mpv --enable-libmpv-shared --enable-dvbin
[cplayer] List of enabled features: 52arch alsa asm build-date caca cplayer cplugins cuda-hwaccel cuda-interop debug-build drm dvbin egl egl-drm egl-helpers egl-x11 ffmpeg ffnvcodec gbm gbm.h gl gl-wayland glibc-thread-name glob glob-posix gpl iconv jack javascript jpeg lcms2 libarchive libass libavdevice libbluray libdl libm libmpv-shared libplacebo librt linux-fstatfs linux-input-event-codes lua memfd_create optimize plain-gl posix posix-or-mingw pthreads pulse rubberband shaderc shaderc-shared stdatomic uchardet vaapi vaapi-drm vaapi-egl vaapi-vulkan vaapi-wayland vaapi-x-egl vaapi-x11 vdpau vt.h vulkan wayland wayland-protocols x11 xv zlib
[cplayer] Reading config file /etc/mpv/encoding-profiles.conf
[cplayer] Applying profile 'default'...
[cplayer] Reading config file /home/vofan/.config/mpv/mpv.conf
[cplayer] Applying profile 'default'...
[cplayer] Setting option 'hwdec' = 'vaapi' (flags = 4)
[cplayer] Setting option 'hwdec-codecs' = 'all' (flags = 4)
[cplayer] Setting option 'vo' = 'vaapi' (flags = 4)
[cplayer] Setting option 'input-ipc-server' = '/tmp/mpvsoc1607422587' (flags = 8)
[cplayer] Setting option 'v' = '' (flags = 8)
[bdmv/bluray] Opening /home/vofan/.config/mpv/input.conf
[file] Opening /home/vofan/.config/mpv/input.conf
[input] Parsing input config file /home/vofan/.config/mpv/input.conf
[input] Input config file /home/vofan/.config/mpv/input.conf parsed: 5 binds
[cplayer] Waiting for scripts...
[ipc] Starting IPC master
[ipc] Listening to IPC socket.
[osd/libass] Shaper: FriBidi 1.0.10 (SIMPLE) HarfBuzz-ng 2.7.2 (COMPLEX)
[osd/libass] Setting up fonts...
[osd/libass] Loading font file '/home/vofan/.config/mpv/fonts/SourceSansVariable-Roman.ttf'
[osd/libass] Loading font file '/home/vofan/.config/mpv/fonts/SourceSansVariable-Italic.ttf'
[osd/libass] Using font provider fontconfig
[osd/libass] Done.
[cplayer] Set property: shared-script-properties -> 1
[cplayer] Done loading scripts.
[cplayer] Running hook: ytdl_hook/on_load
[ytdl_hook] ytdl:// hook
[ytdl_hook] not a ytdl:// url
[bdmv/bluray] Opening 20190722-Hiking 60 Miles Alone in Hornstrandir Iceland.webm
[file] Opening 20190722-Hiking 60 Miles Alone in Hornstrandir Iceland.webm
[demux] Trying demuxers for level=normal.
[mkv] Deferring reading cues.
[mkv] All headers are parsed!
[cplayer] Set property: shared-script-properties -> 1
[demux] Detected file format: Matroska
[cplayer] Opening done: 20190722-Hiking 60 Miles Alone in Hornstrandir Iceland.webm
[osd/libass] Shaper: FriBidi 1.0.10 (SIMPLE) HarfBuzz-ng 2.7.2 (COMPLEX)
[osd/libass] Setting up fonts...
[osd/libass] Loading font file '/home/vofan/.config/mpv/fonts/SourceSansVariable-Roman.ttf'
[osd/libass] Loading font file '/home/vofan/.config/mpv/fonts/SourceSansVariable-Italic.ttf'
[osd/libass] Using font provider fontconfig
[osd/libass] Done.
[find_files] Loading external files in .
[cplayer] Running hook: ytdl_hook/on_preloaded
[mkv] select track 0
[mkv] select track 1
[cplayer]  (+) Video --vid=1 (*) (vp9 3840x2160 23.976fps)
[cplayer]  (+) Audio --aid=1 --alang=eng (*) (opus 2ch 48000Hz)
[display-tags] ...
[vo/vaapi/x11] X11 opening display: :0
[vo/vaapi/x11] Display 0 (HDMI1): [0, 0, 1920, 1080] @ 60.000000 FPS
[vo/vaapi/x11] Current display FPS: 60.000000
[vo/vaapi/vaapi] Failed to initialize VAAPI: unknown libva error
[cplayer] Error opening/initializing the selected video_out (--vo) device.
[mkv] deselect track 0
[cplayer] Video: no video
[ad] Codec list:
[ad]     opus - Opus
[ad]     libopus (opus) - libopus Opus
[ad] Opening decoder opus
[ad] Requesting 1 threads for decoding.
[ad] Selected codec: opus (Opus)
[af] User filter list:
[af]   (empty)
[cplayer] Starting playback...
[cplayer] EOF code: 6
[cplayer] finished playback, something happened (reason 4)
[cplayer]
[cplayer] Exiting... (Errors when loading file)
[cplayer] Set property: shared-script-properties -> 1

Offline

#4 2020-12-08 20:55:50

icar
Member
From: Catalunya
Registered: 2020-07-31
Posts: 449

Re: [Solved] 2160p and 4k videos choppy in mpv, much less so in vlc

Have you tried with --hwdec=auto only? It's what I always try the first

Last edited by icar (2020-12-08 20:56:19)

Offline

#5 2020-12-08 21:31:55

seth
Member
Registered: 2012-09-03
Posts: 50,929

Re: [Solved] 2160p and 4k videos choppy in mpv, much less so in vlc

Commenting out scale and cscale do result in much smoother playback - similar to vlc, though not quite as smooth - however, is this really the issue here?

man mpv wrote:

       --scale=<filter>
              The filter function to use when upscaling video.

              ewa_lanczos
                     Elliptic  weighted  average Lanczos scaling. Also known as Jinc.  Relatively
                     slow, but very good quality. The radius can be controlled with scale-radius.
                     Increasing the radius makes the filter sharper but adds more ringing.

                     (This filter is an alias for jinc-windowed jinc)

              ewa_lanczossharp
                     A  slightly  sharpened version of ewa_lanczos, preconfigured to use an ideal
                     radius and parameter. If your hardware can run it, this is probably what you
                     should use by default.

The filter applies to the GPU, the CPU load is irrelevant.
However you're apparently downscaling the image (4k > 1080p), so none of them is actually helpful here.

man mpv a bit down wrote:

       --dscale=<filter>
              Like --scale, but apply these filters on downscaling instead. If this option is un‐
              set, the filter implied by --scale will be applied.

This one you likely want to set to something cheap (bilinear or oversample)?

Online

#6 2020-12-21 14:11:08

Vofan
Member
Registered: 2019-01-21
Posts: 65

Re: [Solved] 2160p and 4k videos choppy in mpv, much less so in vlc

Sorry for the slow update. The following settings work reasonably well, though I still get dropped frames sometimes with 2160p, it happens infrequently enough that I haven't bothered fiddling with them any more:

deband=no
interpolation=no
vo=gpu
hwdec-codecs=all
dscale=bilinear
opengl-pbo
scale=bilinear
video-sync=display-resample
vd-lavc-dr=yes
gpu-api=vulkan
vulkan-async-compute=yes
vulkan-async-transfer=yes

There are in principle some issues using Vulkan on a Haswell-era iGPU, but, eh, I haven't noticed many issues using it. Maybe some visual artifacts every now and then in dark scenes (but that could equally as well be the recording being designed for a theater screen), I am not really sure what I am looking for in this regard. In either case, any issues are infrequent enough that I haven't bothered playing with it any more. Maybe if I get a lot of dropped frames in a video I will change something, but the ones given above should be good enough to give someone a jumping-off point. Not sure what settings are superfluous, I don't think any of those are. In either case, I'll mark the thread as solved.

Offline

Board footer

Powered by FluxBB