解决方法:按照女王大人的链接 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
请问这是什么原因导致的?
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
你可能需要 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
-
永远不要 dup 到 packman。里面有些依赖包不是系统里用的版本的。也就是说,packman 里不全是你需要的软件。这个问题在逐渐解决,但这个习惯依然不好。
-
zypper ar -f repo_url repo_nickname 你省略了 nickname(类似短名称比如 packman),不给短名称的话链接就必须得是以比如 /packman.repo 结尾的。
-
终端直接 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