Leap 15.2 mpv 找不到 video_out

➜  ~ mpv 下载/2t86o7rf7l\~alZ3lmWkEJ.mp4
 (+) Video --vid=1 (*) (h264 404x720 24.571fps)
 (+) Audio --aid=1 (*) (aac 2ch 44100Hz)
Error opening/initializing the selected video_out (--vo) device.
Video: no video

Exiting... (Errors when loading file)

同时,
装了 nvidia 闭源驱动,sudo 下打不开 nvidia-settings

➜  ~ sudo nvidia-settings
[sudo] root 的密码:
Unable to init server: 无法连接:拒绝连接

ERROR: The control display is undefined; please run `nvidia-settings --help` for usage
       information.

可能是找不到 display 的问题,请问怎么解决?

nvidia-settings 的问题:KDE 的话试试 kdesu nvidia-settings,GNOME 的话试试 gksu nvidia-settings

mpv 的问题需要报一下 mpv 的版本

1赞

mpv 可能是 FFMPEG 什么的没切 packman 版本导致解码器不全,那个找不到 video_out 是典型的缺解码器错误

1赞

能打开了,谢谢

我的 mpv 是用 mpv-player/mpv-build 构建的,不知道是不是过程中出了什么问题,
ffmpeg-3 确实是 packman 的版本

➜  ~ FFMPEG -version
FFMPEG version 3.4.8 Copyright (c) 2000-2020 the FFMPEG developers
built with gcc 7 (SUSE Linux)
configuration: --prefix=/usr --libdir=/usr/lib64 --shlibdir=/usr/lib64 --incdir=/usr/include/ffmpeg --extra-cflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --optflags='-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -g' --disable-htmlpages --enable-pic --disable-stripping --enable-shared --disable-static --enable-gpl --disable-openssl --enable-avresample --enable-libcdio --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libcelt --enable-libcdio --enable-libdc1394 --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libspeex --enable-libtheora --enable-libtwolame --enable-libvidstab --enable-libvorbis --enable-libvpx --enable-libwebp --enable-libzimg --enable-libzvbi --enable-vaapi --enable-vdpau --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-version3 --enable-libx264 --enable-libx265 --enable-libxvid
libavutil      55. 78.100 / 55. 78.100
libavcodec     57.107.100 / 57.107.100
libavformat    57. 83.100 / 57. 83.100
libavdevice    57. 10.100 / 57. 10.100
libavfilter     6.107.100 /  6.107.100
libavresample   3.  7.  0 /  3.  7.  0
libswscale      4.  8.100 /  4.  8.100
libswresample   2.  9.100 /  2.  9.100
libpostproc    54.  7.100 / 54.  7.100
➜  ~ mpv --version
mpv 0.33.0-58-gd5ab5482a9 Copyright © 2000-2020 mpv/MPlayer/mplayer2 projects
 built on Sun Jan 10 01:12:52 CST 2021
FFMPEG library versions:
   libavutil       56.63.100
   libavcodec      58.115.102
   libavformat     58.65.101
   libswscale      5.8.100
   libavfilter     7.95.100
   libswresample   3.8.100
FFMPEG version: N-100596-geacad3406e
➜  ~ sudo zypper info ffmpeg-3
[sudo] root 的密码:
正在加载软件源数据...
正在读取已安装的软件包...


软件包 ffmpeg-3 的信息:
------------------------
软件源     : TUNA:15.2:PACKMAN
名称       : ffmpeg-3
版本       : 3.4.8-pm152.2.1
架构       : x86_64
厂商       : http://packman.links2linux.de
已安装大小 : 2.2 MiB
已安装     : 是
状态       : 最新
源代码包   : ffmpeg-3-3.4.8-pm152.2.1.src
摘要       : Library for working with various multimedia formats
描述       :
    FFMPEG is a multimedia framework, able to decode, encode,
    transcode, mux, demux, stream, filter and play several formats
    that humans and machines have created.

我把自己构建的 mpv 卸载了安装了源里的,现在一切正常了,
之前的 mpv 好像用的是自己构建的 ffmpeg,可能问题在那里。

本主题在最后一个回复创建后60分钟后自动锁定。不再允许添加新回复。

@st4ycalm

你自己可以查看 FFMPEG 支持的解码器的。用 FFMPEG -decoders 选项。

https://cloud.tencent.com/developer/ask/97311

你的问题在上图看很明显,mpv 是自己编译的,编译时用的不是系统 FFMPEG 而是内建了一份(一个 56 一个 58)内建版本的解码器你没开启那么多,或者说编译时候对应 h264 的头文件没装导致没有编译 h264 支持。应该是类似 libx264-devel 没装。

1赞