mpv에서 4K HEVC 비디오를 재생하려고 하는데 매우 끊김 현상이 발생합니다... Artix Linux에 NVIDIA 전용 드라이버(NVIDIA GeForce MX150)를 설치했습니다. mpv를 시작할 때 Ctrl-h
HWdec 시작을 누르면 다음 오류가 발생합니다.
[ffmpeg/video] hevc: Hardware is lacking required capabilities
[ffmpeg/video] hevc: Failed setup for format cuda: hwaccel initialisation returned error.
[ffmpeg/video] hevc: Could not find ref with POC 2
$ mpv --hwdec=cuda --vo=gpu PXL_20210615_120159447.mp4 --msg-level=vd=v,vo=v,vo/gpu/vaapi-egl=trace
❯ mpv --hwdec=cuda --vo=gpu PXL_20210615_120159447.mp4 --msg-level=vd=v,vo=v,vo/gpu/vaapi-egl=trace
(+) Video --vid=1 (*) (hevc 3840x2160 30.001fps)
(+) Audio --aid=1 --alang=eng (*) (aac 2ch 48000Hz)
[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 (eDP-1): [0, 0, 1920, 1080] @ 59.997424 FPS
[vo/gpu/x11] Current display FPS: 59.997424
[vo/gpu/opengl] EGL_VERSION=1.5
[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 0x15, visual ID 0x21
[vo/gpu/opengl] GL_VERSION='4.6 (Core Profile) Mesa 21.3.5'
[vo/gpu/opengl] Detected desktop OpenGL 4.6.
[vo/gpu/opengl] GL_VENDOR='Intel'
[vo/gpu/opengl] GL_RENDERER='Mesa Intel(R) UHD Graphics 620 (KBL GT2)'
[vo/gpu/opengl] GL_SHADING_LANGUAGE_VERSION='4.60'
[vo/gpu] Testing FBO format rgba16f
[vo/gpu] Using FBO format rgba16f.
[vo/gpu] No advanced processing required. Enabling dumb mode.
[vo/gpu] Assuming 59.997424 FPS for display sync.
[vd] Container reported FPS: 30.000784
[vd] Codec list:
[vd] hevc - HEVC (High Efficiency Video Coding)
[vd] hevc_qsv (hevc) - HEVC video (Intel Quick Sync Video acceleration)
[vd] hevc_v4l2m2m (hevc) - V4L2 mem2mem HEVC decoder wrapper
[vd] hevc_cuvid (hevc) - Nvidia CUVID HEVC decoder
[vd] Opening decoder hevc
[vd] Looking at hwdec hevc_cuvid-cuda...
[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/vaapi-egl/vaapi] libva: VA-API version 1.13.0
[vo/gpu/vaapi-egl/vaapi] libva: Trying to open /usr/lib/dri/iHD_drv_video.so
[vo/gpu/vaapi-egl/vaapi] libva: va_openDriver() returns -1
[vo/gpu/vaapi-egl/vaapi] libva: Trying to open /usr/lib/dri/i965_drv_video.so
[vo/gpu/vaapi-egl/vaapi] libva: va_openDriver() returns -1
[vo/gpu] Loading failed.
[vo/gpu] Loading hwdec driver 'cuda-nvdec'
[vo/gpu/cuda-nvdec] cu->cuGLGetDevices(&device_count, &display_dev, 1, CU_GL_DEVICE_LIST_ALL) failed -> CUDA_ERROR_INVALID_GRAPHICS_CONTEXT: invalid OpenGL or DirectX context
[vo/gpu/cuda-nvdec] CUDA hwdec only works with OpenGL or Vulkan backends.
[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: hevc (HEVC (High Efficiency Video Coding))
[vd] Using software decoding.
[vd] Decoder format: 3840x2160 [0:1] yuv420p bt.601/bt.601-625/bt.1886/full/auto CL=mpeg2/4/h264
[vd] Using container aspect ratio.
AO: [pulse] 48000Hz stereo 2ch float
VO: [gpu] 3840x2160 yuv420p
[vo/gpu] reconfig to 3840x2160 yuv420p bt.601/bt.601-625/bt.1886/full/display SP=1.000000 CL=mpeg2/4/h264 rot=90
[vo/gpu/x11] not waiting for MapNotify
[vo/gpu] Resize: 2160x3840
[vo/gpu] Window size: 2160x3840 (Borders: l=0 t=0 r=0 b=0)
[vo/gpu] Video source: 3840x2160 (1:1)
[vo/gpu] Video display: (0, 0) 2160x3840 -> (0, 0) 2160x3840
[vo/gpu] Video scale: 1.000000/1.000000
[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
[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
AV: 00:00:00 / 00:00:05 (0%) A-V: 0.000 Cache: 4.7s/17MB
[vo/gpu/x11] Disabling screensaver.
AV: 00:00:00 / 00:00:05 (1%) A-V: 0.000 Cache: 4.6s/17MB
[vo/gpu] Resize: 956x518
[vo/gpu] Window size: 956x518 (Borders: l=0 t=0 r=0 b=0)
[vo/gpu] Video source: 3840x2160 (1:1)
[vo/gpu] Video display: (0, 0) 2160x3840 -> (332, 0) 291x518
[vo/gpu] Video scale: 0.134722/0.134896
[vo/gpu] OSD borders: l=332 t=0 r=333 b=0
[vo/gpu] Video borders: l=332 t=0 r=333 b=0
[vo/gpu] Reported display depth: 8
AV: 00:00:00 / 00:00:05 (16%) A-V: 0.474 Dropped: 13 Cache: 3.4s/13MB
Audio/Video desynchronisation detected! Possible reasons include too slow
hardware, temporary CPU spikes, broken drivers, and broken files. Audio
position will not match to the video (see A-V status field).
AV: 00:00:01 / 00:00:05 (28%) A-V: 0.470 Dropped: 26 Cache: 2.8s/11MB
[vd] Looking at hwdec hevc-nvdec...
[vd] Could not create device.
[vd] Looking at hwdec hevc-vaapi...
[vd] Could not create device.
[vd] Looking at hwdec hevc-vdpau...
[vd] Could not create device.
[vd] Looking at hwdec hevc-nvdec-copy...
[vd] Trying hardware decoding via hevc-nvdec-copy.
Audio device underrun detected.
[vd] Pixel formats supported by decoder: vaapi vdpau cuda yuvj420p
[vd] Codec profile: Main (0x1)
[vd] Requesting pixfmt 'cuda' from decoder.
[ffmpeg/video] hevc: Hardware is lacking required capabilities
[ffmpeg/video] hevc: Failed setup for format cuda: hwaccel initialisation returned error.
[vd] Pixel formats supported by decoder: vaapi vdpau yuvj420p yuvj420p
[vd] Codec profile: Main (0x1)
[vd] Requesting pixfmt 'yuvj420p' from decoder.
[ffmpeg/video] hevc: Could not find ref with POC 23
Falling back to software decoding.
[vd] Detected 8 logical cores.
[vd] Requesting 9 threads for decoding.
AV: 00:00:01 / 00:00:05 (29%) A-V: 0.470 Dropped: 27 Cache: 2.6s/11MB
[vo/gpu/x11] Enabling screensaver.
[vd] Decoder format: 3840x2160 [0:1] yuv420p bt.601/bt.601-625/bt.1886/full/auto CL=mpeg2/4/h264
[vd] Using container aspect ratio.
AV: 00:00:01 / 00:00:05 (29%) A-V: 0.000 Cache: 3.6s/13MB
[vo/gpu] Reallocating OSD texture to 1024x128.
(...) AV: 00:00:01 / 00:00:05 (29%) A-V: 0.000 Cache: 3.3s/11MB
[vo/gpu/x11] Disabling screensaver.
AV: 00:00:02 / 00:00:05 (54%) A-V: 0.497 Dropped: 24 Cache: 1.5s/7MB
Audio/Video desynchronisation detected! Possible reasons include too slow
hardware, temporary CPU spikes, broken drivers, and broken files. Audio
position will not match to the video (see A-V status field).
AV: 00:00:03 / 00:00:05 (65%) A-V: 0.455 Dropped: 37 Cache: 0.9s/5MB
[vo/gpu/x11] Enabling screensaver.
Exiting... (Quit)
$ ffmpeg -도움말 인코더=h264_nvenc
ffmpeg version n5.0 Copyright (c) 2000-2022 the FFmpeg developers
built with gcc 11.1.0 (GCC)
configuration: --prefix=/usr --disable-debug --disable-static --disable-stripping --enable-amf --enable-avisynth --enable-cuda-llvm --enable-lto --enable-fontconfig --enable-gmp --enable-gnutls --enable-gpl --enable-ladspa --enable-libaom --enable-libass --enable-libbluray --enable-libdav1d --enable-libdrm --enable-libfreetype --enable-libfribidi --enable-libgsm --enable-libiec61883 --enable-libjack --enable-libmfx --enable-libmodplug --enable-libmp3lame --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librav1e --enable-librsvg --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libssh --enable-libsvtav1 --enable-libtheora --enable-libv4l2 --enable-libvidstab --enable-libvmaf --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxcb --enable-libxml2 --enable-libxvid --enable-libzimg --enable-nvdec --enable-nvenc --enable-shared --enable-version3
libavutil 57. 17.100 / 57. 17.100
libavcodec 59. 18.100 / 59. 18.100
libavformat 59. 16.100 / 59. 16.100
libavdevice 59. 4.100 / 59. 4.100
libavfilter 8. 24.100 / 8. 24.100
libswscale 6. 4.100 / 6. 4.100
libswresample 4. 3.100 / 4. 3.100
libpostproc 56. 3.100 / 56. 3.100
Encoder h264_nvenc [NVIDIA NVENC H.264 encoder]:
General capabilities: dr1 delay hardware
Threading capabilities: none
Supported hardware devices: cuda cuda
Supported pixel formats: yuv420p nv12 p010le yuv444p p016le yuv444p16le bgr0 rgb0 gbrp gbrp16le cuda
h264_nvenc AVOptions:
-preset <int> E..V....... Set the encoding preset (from 0 to 18) (default p4)
default 0 E..V.......
slow 1 E..V....... hq 2 passes
medium 2 E..V....... hq 1 pass
fast 3 E..V....... hp 1 pass
hp 4 E..V.......
hq 5 E..V.......
bd 6 E..V.......
ll 7 E..V....... low latency
llhq 8 E..V....... low latency hq
llhp 9 E..V....... low latency hp
lossless 10 E..V.......
losslesshp 11 E..V.......
p1 12 E..V....... fastest (lowest quality)
p2 13 E..V....... faster (lower quality)
p3 14 E..V....... fast (low quality)
p4 15 E..V....... medium (default)
p5 16 E..V....... slow (good quality)
p6 17 E..V....... slower (better quality)
p7 18 E..V....... slowest (best quality)
-tune <int> E..V....... Set the encoding tuning info (from 1 to 4) (default hq)
hq 1 E..V....... High quality
ll 2 E..V....... Low latency
ull 3 E..V....... Ultra low latency
lossless 4 E..V....... Lossless
-profile <int> E..V....... Set the encoding profile (from 0 to 3) (default main)
baseline 0 E..V.......
main 1 E..V.......
high 2 E..V.......
high444p 3 E..V.......
-level <int> E..V....... Set the encoding level restriction (from 0 to 62) (default auto)
auto 0 E..V.......
1 10 E..V.......
1.0 10 E..V.......
1b 9 E..V.......
1.0b 9 E..V.......
1.1 11 E..V.......
1.2 12 E..V.......
1.3 13 E..V.......
2 20 E..V.......
2.0 20 E..V.......
2.1 21 E..V.......
2.2 22 E..V.......
3 30 E..V.......
3.0 30 E..V.......
3.1 31 E..V.......
3.2 32 E..V.......
4 40 E..V.......
4.0 40 E..V.......
4.1 41 E..V.......
4.2 42 E..V.......
5 50 E..V.......
5.0 50 E..V.......
5.1 51 E..V.......
5.2 52 E..V.......
6.0 60 E..V.......
6.1 61 E..V.......
6.2 62 E..V.......
-rc <int> E..V....... Override the preset rate-control (from -1 to INT_MAX) (default -1)
constqp 0 E..V....... Constant QP mode
vbr 1 E..V....... Variable bitrate mode
cbr 2 E..V....... Constant bitrate mode
vbr_minqp 8388612 E..V....... Variable bitrate mode with MinQP (deprecated)
ll_2pass_quality 8388616 E..V....... Multi-pass optimized for image quality (deprecated)
ll_2pass_size 8388624 E..V....... Multi-pass optimized for constant frame size (deprecated)
vbr_2pass 8388640 E..V....... Multi-pass variable bitrate mode (deprecated)
cbr_ld_hq 8388616 E..V....... Constant bitrate low delay high quality mode
cbr_hq 8388624 E..V....... Constant bitrate high quality mode
vbr_hq 8388640 E..V....... Variable bitrate high quality mode
-rc-lookahead <int> E..V....... Number of frames to look ahead for rate-control (from 0 to INT_MAX) (default 0)
-surfaces <int> E..V....... Number of concurrent surfaces (from 0 to 64) (default 0)
-cbr <boolean> E..V....... Use cbr encoding mode (default false)
-2pass <boolean> E..V....... Use 2pass encoding mode (default auto)
-gpu <int> E..V....... Selects which NVENC capable GPU to use. First GPU is 0, second is 1, and so on. (from -2 to INT_MAX) (default any)
any -1 E..V....... Pick the first device available
list -2 E..V....... List the available devices
-delay <int> E..V....... Delay frame output by the given amount of frames (from 0 to INT_MAX) (default INT_MAX)
-no-scenecut <boolean> E..V....... When lookahead is enabled, set this to 1 to disable adaptive I-frame insertion at scene cuts (default false)
-forced-idr <boolean> E..V....... If forcing keyframes, force them as IDR frames. (default false)
-b_adapt <boolean> E..V....... When lookahead is enabled, set this to 0 to disable adaptive B-frame decision (default true)
-spatial-aq <boolean> E..V....... set to 1 to enable Spatial AQ (default false)
-spatial_aq <boolean> E..V....... set to 1 to enable Spatial AQ (default false)
-temporal-aq <boolean> E..V....... set to 1 to enable Temporal AQ (default false)
-temporal_aq <boolean> E..V....... set to 1 to enable Temporal AQ (default false)
-zerolatency <boolean> E..V....... Set 1 to indicate zero latency operation (no reordering delay) (default false)
-nonref_p <boolean> E..V....... Set this to 1 to enable automatic insertion of non-reference P-frames (default false)
-strict_gop <boolean> E..V....... Set 1 to minimize GOP-to-GOP rate fluctuations (default false)
-aq-strength <int> E..V....... When Spatial AQ is enabled, this field is used to specify AQ strength. AQ strength scale is from 1 (low) - 15 (aggressive) (from 1 to 15) (default 8)
-cq <float> E..V....... Set target quality level (0 to 51, 0 means automatic) for constant quality mode in VBR rate control (from 0 to 51) (default 0)
-aud <boolean> E..V....... Use access unit delimiters (default false)
-bluray-compat <boolean> E..V....... Bluray compatibility workarounds (default false)
-init_qpP <int> E..V....... Initial QP value for P frame (from -1 to 51) (default -1)
-init_qpB <int> E..V....... Initial QP value for B frame (from -1 to 51) (default -1)
-init_qpI <int> E..V....... Initial QP value for I frame (from -1 to 51) (default -1)
-qp <int> E..V....... Constant quantization parameter rate control method (from -1 to 51) (default -1)
-qp_cb_offset <int> E..V....... Quantization parameter offset for cb channel (from -12 to 12) (default 0)
-qp_cr_offset <int> E..V....... Quantization parameter offset for cr channel (from -12 to 12) (default 0)
-weighted_pred <int> E..V....... Set 1 to enable weighted prediction (from 0 to 1) (default 0)
-coder <int> E..V....... Coder type (from -1 to 2) (default default)
default -1 E..V.......
auto 0 E..V.......
cabac 1 E..V.......
cavlc 2 E..V.......
ac 1 E..V.......
vlc 2 E..V.......
-b_ref_mode <int> E..V....... Use B frames as references (from 0 to 2) (default disabled)
disabled 0 E..V....... B frames will not be used for reference
each 1 E..V....... Each B frame will be used for reference
middle 2 E..V....... Only (number of B frames)/2 will be used for reference
-a53cc <boolean> E..V....... Use A53 Closed Captions (if available) (default true)
-dpb_size <int> E..V....... Specifies the DPB size used for encoding (0 means automatic) (from 0 to INT_MAX) (default 0)
-multipass <int> E..V....... Set the multipass encoding (from 0 to 2) (default disabled)
disabled 0 E..V....... Single Pass
qres 1 E..V....... Two Pass encoding is enabled where first Pass is quarter resolution
fullres 2 E..V....... Two Pass encoding is enabled where first Pass is full resolution
-ldkfs <int> E..V....... Low delay key frame scale; Specifies the Scene Change frame size increase allowed in case of single frame VBV and CBR (from 0 to 255) (default 0)
-extra_sei <boolean> E..V....... Pass on extra SEI data (e.g. a53 cc) to be included in the bitstream (default true)
-udu_sei <boolean> E..V....... Pass on user data unregistered SEI if available (default false)
-intra-refresh <boolean> E..V....... Use Periodic Intra Refresh instead of IDR frames (default false)
-single-slice-intra-refresh <boolean> E..V....... Use single slice intra refresh (default false)
-constrained-encoding <boolean> E..V....... Enable constrainedFrame encoding where each slice in the constrained picture is independent of other slices (default false)