(решенный) Kubuntu 16.04: разрыв в SMPlayer несмотря на VDPAU

В Kubuntu 16.04 я установил двоичную версию драйвера 384.69 Nvidia с помощью команды "Графических драйверов" PPA. Я также попробовал версию 381.22, текущий официальный выпуск, с тем же результатом. Я устанавливаю SMplayer 15.11.0 для использования VDPAU и удостоверился, что он действительно использует VDPAU путем запуска h.264 воспроизведения видео и рассмотрения команды, которая играет видео. Вот пример:

/usr/bin/mpv --no-config --no-quiet --terminal --no-msg-color --input-file=/dev/stdin --no-fs --vd-lavc-threads=12 --hwdec=vdpau --sub-auto=fuzzy --vo=vdpau --ao=alsa:device=[hw:2,0] --no-input-default-bindings --input-x11-keyboard=no --no-input-cursor --cursor-autohide=no --no-keepaspect --wid=100664033 --monitorpixelaspect=1 --osd-scale=1 --sub-ass --embeddedfonts --ass-line-spacing=0 --sub-scale=1 --sub-text-font=Fira Sans --sub-text-color=#ffffff --sub-text-shadow-color=#000000 --sub-text-border-color=#000000 --sub-text-border-size=2.5 --sub-text-shadow-offset=5 --ass-force-style=PlayResX=512,PlayResY=320,Name=Default,Fontname=Fira Sans,Fontsize=20,PrimaryColour=&H00ffffff,BackColour=&H00000000,OutlineColour=&H00000000,Bold=0,Italic=0,Alignment=2,BorderStyle=1,Outline=1,Shadow=2,MarginL=20,MarginR=20,MarginV=8 --sub-codepage=utf8:ISO-8859-1 --vid=1 --aid=1 --sub-pos=100 --volume=50 --cache=2048 --osd-level=0 --audio-channels=2 --af-add=scaletempo --af-add=equalizer=0:0:0:0:0:0:0:0:0:0 --softvol=yes --softvol-max=100 --ytdl=no --term-playing-msg=MPV_VERSION=${=mpv-version:} INFO_VIDEO_WIDTH=${=width} INFO_VIDEO_HEIGHT=${=height} INFO_VIDEO_ASPECT=${=video-aspect} INFO_VIDEO_FPS=${=fps} INFO_VIDEO_FORMAT=${=video-format} INFO_VIDEO_CODEC=${=video-codec} INFO_AUDIO_FORMAT=${=audio-codec-name:${=audio-format}} INFO_AUDIO_CODEC=${=audio-codec} INFO_AUDIO_RATE=${=audio-params/samplerate:${=audio-samplerate}} INFO_AUDIO_NCH=${=audio-params/channel-count:${=audio-channels}} INFO_LENGTH=${=duration:${=length}} INFO_DEMUXER=${=demuxer} INFO_TITLES=${=disc-titles} INFO_CHAPTERS=${=chapters} INFO_TRACKS_COUNT=${=track-list/count} METADATA_TITLE=${metadata/by-key/title:} METADATA_ARTIST=${metadata/by-key/artist:} METADATA_ALBUM=${metadata/by-key/album:} METADATA_GENRE=${metadata/by-key/genre:} METADATA_DATE=${metadata/by-key/date:} METADATA_TRACK=${metadata/by-key/track:} METADATA_COPYRIGHT=${metadata/by-key/copyright:} INFO_MEDIA_TITLE=${=media-title:}  --term-status-msg=STATUS: ${=time-pos} / ${=duration:${=length:0}} P: ${=pause} B: ${=paused-for-cache} I: ${=core-idle} /home/user/video.mkv

Я экспериментировал с количеством потоков (12 в вышеупомянутом примере), включая и отключая контурный фильтр, прямой рендеринг и другие опции, все без большого эффекта.

Моя видеокарта является nvidia geforce 1070. Я могу смотреть те же видеофайлы, которые я протестировал со старым компьютером с 9-летней видеокартой nvidia 9600 GT без любого разрыва вообще, таким образом, я предполагаю, что должно быть возможно решить эту проблему.

В случае, если это полезно, вот вывод vdpauinfo:

display: :0   screen: 0
API version: 1
Information string: NVIDIA VDPAU Driver Shared Library  384.69  Wed Aug 16 19:38:45 PDT 2017

Video surface:

name   width height types
-------------------------------------------
420     8192  8192  NV12 YV12 
422     8192  8192  UYVY YUYV 

Decoder capabilities:

name                        level macbs width height
----------------------------------------------------
MPEG1                           0 65536  4096  4096
MPEG2_SIMPLE                    3 65536  4096  4096
MPEG2_MAIN                      3 65536  4096  4096
H264_BASELINE                  41 65536  4096  4096
H264_MAIN                      41 65536  4096  4096
H264_HIGH                      41 65536  4096  4096
VC1_SIMPLE                      1  8190  2048  2048
VC1_MAIN                        2  8190  2048  2048
VC1_ADVANCED                    4  8190  2048  2048
MPEG4_PART2_SP                  3  8192  2048  2048
MPEG4_PART2_ASP                 5  8192  2048  2048
DIVX4_QMOBILE                   0  8192  2048  2048
DIVX4_MOBILE                    0  8192  2048  2048
DIVX4_HOME_THEATER              0  8192  2048  2048
DIVX4_HD_1080P                  0  8192  2048  2048
DIVX5_QMOBILE                   0  8192  2048  2048
DIVX5_MOBILE                    0  8192  2048  2048
DIVX5_HOME_THEATER              0  8192  2048  2048
DIVX5_HD_1080P                  0  8192  2048  2048
H264_CONSTRAINED_BASELINE      41 65536  4096  4096
H264_EXTENDED                  41 65536  4096  4096
H264_PROGRESSIVE_HIGH          41 65536  4096  4096
H264_CONSTRAINED_HIGH          41 65536  4096  4096
H264_HIGH_444_PREDICTIVE       41 65536  4096  4096
HEVC_MAIN                      153 262144  8192  8192
HEVC_MAIN_10                   --- not supported ---
HEVC_MAIN_STILL                --- not supported ---
HEVC_MAIN_12                   --- not supported ---
HEVC_MAIN_444                  --- not supported ---

Output surface:

name              width height nat types
----------------------------------------------------
B8G8R8A8         32768 32768    y  Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 
R10G10B10A2      32768 32768    y  Y8U8V8A8 V8U8Y8A8 A4I4 I4A4 A8I8 I8A8 

Bitmap surface:

name              width height
------------------------------
B8G8R8A8         32768 32768
R8G8B8A8         32768 32768
R10G10B10A2      32768 32768
B10G10R10A2      32768 32768
A8               32768 32768

Video mixer:

feature name                    sup
------------------------------------
DEINTERLACE_TEMPORAL             y
DEINTERLACE_TEMPORAL_SPATIAL     y
INVERSE_TELECINE                 y
NOISE_REDUCTION                  y
SHARPNESS                        y
LUMA_KEY                         y
HIGH QUALITY SCALING - L1        y
HIGH QUALITY SCALING - L2        -
HIGH QUALITY SCALING - L3        -
HIGH QUALITY SCALING - L4        -
HIGH QUALITY SCALING - L5        -
HIGH QUALITY SCALING - L6        -
HIGH QUALITY SCALING - L7        -
HIGH QUALITY SCALING - L8        -
HIGH QUALITY SCALING - L9        -

parameter name                  sup      min      max
-----------------------------------------------------
VIDEO_SURFACE_WIDTH              y         1     8192
VIDEO_SURFACE_HEIGHT             y         1     8192
CHROMA_TYPE                      y  
LAYERS                           y         0        4

attribute name                  sup      min      max
-----------------------------------------------------
BACKGROUND_COLOR                 y  
CSC_MATRIX                       y  
NOISE_REDUCTION_LEVEL            y      0.00     1.00
SHARPNESS_LEVEL                  y     -1.00     1.00
LUMA_KEY_MIN_LUMA                y  
LUMA_KEY_MAX_LUMA                y 

Любая справка ценилась бы.Заранее спасибо!

Править: Помощь мне: следующая команда, кажется, решает проблему.

nvidia-settings --assign CurrentMetaMode="HMDI-0: nvidia-auto-select { ForceCompositionPipeline = On }"

Теперь я "только" должен найти способ выполнить его автоматически. Для внесения изменения постоянным я узнал, что предлагается добавить следующие строки к/etc/X11/xorg.conf

Section "Screen"
    …
    Option         "metamodes" "HDMI-0: nvidia-auto-select {ForceCompositionPipeline = On }"
EndSection

Моя проблема: На этой версии Kubuntu больше нет такого файла. Я пытался добавить новый раздел к usr/share/X11/xorg.conf.d/50-nvidia-drm-outputclass.conf/nvidia-drm-outputclass.conf, но без успеха. Таким образом, мой текущий вопрос: Куда я помещу ту строку?

Править: Ну, я считаю эту проблему решенной: Я создал сценарий удара со следующим содержанием:

#!/bin/bash                                                                                            
nvidia-settings --assign CurrentMetaMode="HDMI-0: nvidia-auto-select { ForceCompositionPipeline = On }"
nvidia-settings --assign CurrentMetaMode="DP-1: nvidia-auto-select { ForceCompositionPipeline = On }"  
nvidia-settings --assign CurrentMetaMode="DP-2: nvidia-auto-select { ForceCompositionPipeline = On }"

Я скорректировал свои параметры настройки системы для запущения скрипта каждый раз, когда я вхожу в систему. Это эффективно работает против рвущихся артефактов над портами дисплея и HDMI. В случае, если любой заполоняется той же проблемой, можно узнать название соответствующего порта с

xrandr | grep " connect"
1
задан 17 September 2017 в 19:52

0 ответов

Другие вопросы по тегам:

Похожие вопросы: