MPlayer/mpv启动失败(已解决,方法在楼主原来的帖子上)

解决方法:按照女王大人的链接 github.com/marguerite/diagnose,多次运行 pkmswitch100.rb 这个脚本,每次脚本最后提示的解决方案基本为 sudo zypper up xxx。

我的解决方法是这样的,先按照提示运行升级,结果升级均提示为最新软件,于是我先运行 sudo zypper rm xxx,然后在运行 sudo zypper in xxx。反复运行 pkmswitch100.rb 这个脚本,直至提示:

Close this application before trying again.
======================= Packages not from Packman =========================
Good! All packages are from Packman!
======================= Packman Packages need updates =====================
Good! All packages are from Packman and at their latest versions!

最后把 rm xxx 卸载的一些依赖重新安装上就可以播放了,有相似情况的可以试试。

我猜原因如下,我是从 13.2 一路升级而来,之前用的并非阿里云的源,但是这些播放器,解码等很多是用其他源安装的,故而导致了一些问题(大概就是女王让这么做的原因“把你的 libavcodec 切到 packman,”)

在这里感谢@xiaoyaoke7630,他的思路是对的,想到了是 packman 源不一致的原因
感谢@marguerite 的脚本及指导。

具体我就想到这些,当然未必是对的,我是猜的,因为我不知道为什么不同的源会导致这个问题

如题,安装 smplayer 的时候默认安装上了 MPV(sudo zypper in smplayer),但是用 smplayer 播放任何文件都是提示:

MPlayer/mpv 启动失败。请检查首选项中 MPlayer/mpv 路径 

我的首选项多媒体引擎路径是这样子的:

/usr/bin/mplayer

请问这是什么原因导致的?

**/usr/bin/ mpv **

因为你没有装 MPlayer

MPlayer 应该是在安装 SMPlayer 的时候自动推荐安装的吧!楼主没有安装推荐安装的软件?

所有的都安装了,我有重新卸载安装了一遍,结果还是不行,同样的错误

(1/7) 正在安装:MPlayer-1.2.r37916-5.1.x86_64 .................................................................................................................................. 完毕]
(2/7) 正在安装:mpv-0.22.0-6.1.x86_64 .......................................................................................................................................... 完毕]
(3/7) 正在安装:smplayer-16.11.0-3.1.x86_64 .................................................................................................................................... 完毕]
(4/7) 正在安装:mpv-zsh-completion-0.22.0-6.1.noarch ........................................................................................................................... 完毕]
(5/7) 正在安装:mpv-bash-completion-3.3.8-6.1.noarch ........................................................................................................................... 完毕]
(6/7) 正在安装:smplayer-lang-16.11.0-3.1.noarch ............................................................................................................................... 完毕]
(7/7) 正在安装:smplayer-skins-15.2.0-1.3.noarch ............................................................................................................................... 完毕]

我把路径改为 /usr/bin/mpv 后出现如下错误:

mplayer/mpv 已意外结束,退出代码:2

@lovebluesky 是裸开报错吗?smplayer/mplayer/mpv 都是哪个源的版本?

从我的 iPhone 发送,使用 Tapatalk

不是,是我打开一个 avi 文件之后报错。
我启用的阿里源,比用德国的那个快,所以别的都禁了:
mirrors.aliyun.com/packman/openSUSE_Leap_42.2/
mirrors.aliyun.com/opensuse/update/leap/42.2/non-oss/
mirrors.aliyun.com/opensuse/update/leap/42.2/oss
mirrors.aliyun.com/opensuse/distribution/leap/42.2/repo/oss/

你可能需要 sudo zypper ar -f mirrors.aliyun.com/packman/openSUSE_Leap_42.2/ packman 然后 zypper dup -r packman

通过我的 X9 上的 Tapatalk发言

我直接在 YaST 中将软件源替换并刷新了,然后卸载后重新安装,还是不行,错误提示完全一样。

之所以用 YaST 是因为复制代码出现提示

sudo zypper ar -f https://mirrors.aliyun.com/packman/openSUSE_Leap_42.2/                                                                17-03-15 10:43
如果只用一个参数,那么它必须是一个指向 .repo 文件的 URI。
addrepo (ar)  选项] <URI> < 别名>
addrepo (ar)  选项] < 文件.repo>

向系统中添加一个软件源。软件源可通过其 URI 指定也可从指定的 .repo 文件(甚至是远程)中读取。

  命令选项:
-r, --repo < 文件名.repo>    指定要读取的 .repo 文件的另一种方法。
-t, --type < 类型>    软件源类型 (yast2, rpm-md, plaindir)。
-d, --disable    添加软件源后禁用。
-c, --check    探测 URI。
-C, --no-check    不探测 URI,稍后刷新时再探测。
-n, --name < 名称>    为软件源指定描述性名称。
-p, --priority < 整数>    设置软件源优先级。
-k, --keep-packages    启用 RPM 文件缓存。
-K, --no-keep-packages    禁用 RPM 文件缓存。
-g, --gpgcheck    对此软件源启用 GPG 密钥检查。
-G, --no-gpgcheck    对此软件源禁用 GPG 密钥检查。
-f, --refresh    启用软件源自动刷新。
>sudo zypper ar -f https://mirrors.aliyun.com/packman/openSUSE_Leap_42.2/ packman 
xuan's password:
正在添加储存库“packman” ............................................................................................ 完毕]
成功添加了软件源 'packman' 
已启用   : 是                                                    
自动刷新 : 是                                                    
GPG 检查 : 是                                                    
优先级   : 99                                                    
URI      : https://mirrors.aliyun.com/packman/openSUSE_Leap_42.2/

下面序号 13 就是我刚才添加的

>zypper lr -Ed
#  | 别名                                | 名称                     | 已启用 | GPG 检查 | 刷新 | 优先级 | 类型   | URI                                                                                       | 服务
---+-------------------------------------+--------------------------+--------+----------+------+--------+--------+-------------------------------------------------------------------------------------------+-----
 5 | http-download.opensuse.org-70075271 | X11:QtDesktop            | 是     | (r ) 是  | 是   |   99   | rpm-md | http://download.opensuse.org/repositories/X11:/QtDesktop/openSUSE_Leap_42.1/              |     
13 | packman                             | packman                  | 是     | ( p) 是  | 是   |   99   | NONE   | https://mirrors.aliyun.com/packman/openSUSE_Leap_42.2/                                    |     
23 | tsinghua-non-oss                    | tsinghua-non-oss         | 是     | (r ) 是  | 否   |   99   | yast2  | https://mirrors.tuna.tsinghua.edu.cn/opensuse/distribution/leap/42.1/repo/non-oss/        |     
24 | tsinghua-non-oss-current            | tsinghua-non-oss-current | 是     | (r ) 是  | 否   |   99   | yast2  | https://mirrors.tuna.tsinghua.edu.cn/opensuse/distribution/openSUSE-current/repo/non-oss/ |     
25 | tsinghua-non-oss-stable             | tsinghua-non-oss-stable  | 是     | (r ) 是  | 否   |   99   | yast2  | https://mirrors.tuna.tsinghua.edu.cn/opensuse/distribution/openSUSE-stable/repo/non-oss/  |     
26 | tsinghua-non-oss-update             | tsinghua-non-oss-update  | 是     | (r ) 是  | 否   |   99   | rpm-md | https://mirrors.tuna.tsinghua.edu.cn/opensuse/update/leap/42.1/non-oss/                   |     
27 | tsinghua-oss                        | tsinghua-oss             | 是     | (r ) 是  | 否   |   99   | yast2  | https://mirrors.tuna.tsinghua.edu.cn/opensuse/distribution/leap/42.1/repo/oss/            |     
28 | tsinghua-oss-current                | tsinghua-oss-current     | 是     | (r ) 是  | 否   |   99   | yast2  | https://mirrors.tuna.tsinghua.edu.cn/opensuse/distribution/openSUSE-current/repo/oss/     |     
29 | tsinghua-oss-stable                 | tsinghua-oss-stable      | 是     | (r ) 是  | 否   |   99   | yast2  | https://mirrors.tuna.tsinghua.edu.cn/opensuse/distribution/openSUSE-stable/repo/oss/      |     
30 | tsinghua-oss-update                 | tsinghua-oss-update      | 是     | (r ) 是  | 否   |   99   | rpm-md | https://mirrors.tuna.tsinghua.edu.cn/opensuse/update/leap/42.1/oss/                       |     
31 | tsinghua-packman                    | tsinghua-packman         | 是     | (r ) 是  | 否   |   99   | rpm-md | https://mirrors.tuna.tsinghua.edu.cn/packman/suse/openSUSE_Leap_42.1/                  

刷新刚添加的源

>sudo zypper ref 13
正在撷取软件源 'packman' 的元数据 .................................................................................. 完毕]
正在构建“packman”储存库超速缓存 .................................................................................... 完毕]
指定软件源均已刷新。

如果有必要的话 Ctrl+alt+F1 然后 su zypper dup -r 13

  1. 永远不要 dup 到 packman。里面有些依赖包不是系统里用的版本的。也就是说,packman 里不全是你需要的软件。这个问题在逐渐解决,但这个习惯依然不好。

  2. zypper ar -f repo_url repo_nickname 你省略了 nickname(类似短名称比如 packman),不给短名称的话链接就必须得是以比如 /packman.repo 结尾的。

  3. 终端直接 mpv/mplayer xx.avi 能正常播放吗?

从我的 iPhone 发送,使用 Tapatalk

按照你的方法重新添加了,然后删掉了旧的,刷新软件源后,再卸载软件重新安装,这次的路径默认就是 /usr/bin/mpv,但是还是提示:

mplayer/mpv 已意外结束,退出代码:2

终端播放 mpv 报错,mplayer 可以播放,装了个 vlc 也可以正常播放

mpv 11.avi                                                                                                                              17-03-15 11:39
Playing: 11.avi
[ffmpeg/demuxer] avi: Could not find codec parameters for stream 1 (Audio: mp3 (U[0][0][0] / 0x0055), 48000 Hz, 2 channels, 130 kb/s): unspecified frame size
[ffmpeg/demuxer] Consider increasing the value for the 'analyzeduration' and 'probesize' options
 (+) Video --vid=1 (mpeg4)
 (+) Audio --aid=1 (mp3)
[vo/opengl] Error: framebuffer completeness check failed (error=36061).
Failed to initialize a video decoder for codec 'mpeg4'.
Video: no video
Failed to initialize an audio decoder for codec 'mp3'.
Audio: no audio
No video or audio streams selected.

使用 mplayer 能播放

mplayer 11.avi                                                                                                                          17-03-15 11:40
MPlayer -4.8 (C) 2000-2017 MPlayer Team
do_connect: could not connect to socket
connect: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing 11.avi.
libavformat version 57.56.100 (external)
AVI file format detected.
[aviheader] Video stream found, -vid 0
[aviheader] Audio stream found, -aid 1
VIDEO:  [XVID]  512x384  12bpp  25.000 fps  845.3 kbps (103.2 kbyte/s)
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
libavcodec version 57.64.100 (external)
Cannot find codec 'mpeg4' in libavcodec...
VDecoder init failed :(
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Cannot find codec 'mpeg4' in libavcodec...
VDecoder init failed :(
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Cannot find codec 'mpeg4_crystalhd' in libavcodec...
VDecoder init failed :(
Opening video decoder: [xvid] XviD 1.0 decoder
xvid: using library version 1.3.4 (build xvid-1.3.4)
Selected video codec: [xvid] vfm: xvid (Xvid (MPEG-4))
==========================================================================
Clip info:
 Software: VirtualDubMod 1.5.10.2 (build 2540/release)
Load subtitles in ./
==========================================================================
Trying to force audio codec driver family libmad...
Opening audio decoder: [libmad] libmad mpeg audio decoder
AUDIO: 48000 Hz, 2 ch, s16le, 130.7 kbit/8.51% (ratio: 16341->192000)
Selected audio codec: [mad] afm: libmad (libMAD MPEG layer 1-2-3)
==========================================================================
AO: [pulse] 48000Hz 2ch s16le (2 bytes per sample)
Starting playback...
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
VO: [xv] 512x384 => 512x384 Planar YV12  [zoom]
A:  21.0 V:  21.0 A-V:  0.004 ct: -0.037 527/527 10%  2%  1.4% 4 0 

Exiting... (Quit)

斑竹已经在帮你解答了 你听她的吧

把你的 libavcodec 切到 packman,或者跑一遍我 GitHub - marguerite/diagnose: Diagnose Tools for openSUSE 里那个 pkmswitch100 脚本看看还缺什么

从我的 iPhone 发送,使用 Tapatalk

总之就是那两个在终端都能放了,再用终端运行 smplayer 看看提示

从我的 iPhone 发送,使用 Tapatalk

弄好了哈? 恭喜。(^ω^)

通过我的 X9 上的 Tapatalk发言