MPlayer

来自 Arch Linux 中文维基

MPlayer 是 GNU/Linux 下非常流行的影音播放器,支持绝大多数视频/音频文件格式,非常通用。

安装[编辑 | 编辑源代码]

安装软件包 mplayer 或它的开发版本 mplayer-svnAUR

定制版:

  • MPlayer-VAAPI — 支持 VAAPI 的版本
http://gitorious.org/vaapi/mplayer[失效链接 2022-09-21 ⓘ] || mplayer-vaapiAUR
  • MPlayer2 — MPlayer 的分支
https://github.com/nezumisama/mplayer2 || mplayer2AUR
注意: mplayer2 的开发已经停止,推荐使用 mpv,mpv 更注重速度和开发质量,尽管它对老旧设备兼容性差。使用前请注意一下它们的 差异

图形前端[编辑 | 编辑源代码]

参考 List of applications/Multimedia#MPlayer-based.

配置[编辑 | 编辑源代码]

系统全局配置文件位于 /etc/mplayer/,用户配置文件位于 ~/.mplayer/

/etc/mplayer/ 下默认包含:

  • codecs.conf - 解码器配置文件。
  • example.conf - mplayer.conf 不会在安装时自动创建,这是其示例文件。
  • input.conf - 快捷键配置文件。

~/.mplayer/ 下默认包含一个 config 文件。

参考 MPlayer 配置示例mplayer(1)

按键绑定[编辑 | 编辑源代码]

系统按键绑定通过 /etc/mplayer/input.conf 配置,个人按键绑定通过 ~/.mplayer/input.conf 配置。完整的键盘快捷键列表请阅读 mplayer(1)

参阅:XF86 键盘符号

提示与技巧[编辑 | 编辑源代码]

硬件加速[编辑 | 编辑源代码]

参考硬件视频加速

启用 VDPAU[编辑 | 编辑源代码]

将下列内容加入前面提到过的配置文件(全局或用户配置文件均可):

vo=vdpau,
vc=ffmpeg12vdpau,ffwmv3vdpau,ffvc1vdpau,ffh264vdpau,ffodivxvdpau,
注意:
  • 最后面的逗号很重要!如果找不到指定的驱动程序和编解码器,它们会告诉 MPlayer 使用其他驱动程序和编解码器。
  • -vo 选项选择 VDPAU 视频输出驱动, -vc 选项选择 VDPAU 视频解码器。
警告: 只有最新型号的显卡支持 ffodivxvdpau。如果你的不支持,可以删除。详情请查阅 Hardware video acceleration#NVIDIA

启用 VA-API[编辑 | 编辑源代码]

这需要 AUR 中的 mplayer-vaapiAUR

$ mplayer -vo vaapi -va vaapi foobar.mpeg
  • -vo - Select vaapi video output driver
  • -va - Select vaapi video decoder driver

基于 MPlayer 的播放器:

  • gnome-mplayer: 要启用硬件加速: Edit > Preferences > Player, 然后设置 Video Output 为 vaapi
  • smplayer: 要启用硬件加速: Options > Preferences > General > Video, 然后设置 Output driver 为 vaapi

Radeon 显卡启用半透明视频混合显示[编辑 | 编辑源代码]

为了在 X 中获得半透明视频效果,你需要在 MPlayer 中启用视频纹理:

$ mplayer -vo xv:adaptor=1 file

或者在 ~/.mplayer/config 中添加一行:

vo=xv:adaptor=1

你可以使用 xvinfo 命令检查你的显卡支持哪种视频模式。

播放流媒体文件[编辑 | 编辑源代码]

要播放流媒体(如 ASX 链接),使用以下命令:

$ mplayer -playlist link-to-stream.asx 

必须使用 -playlist 参数,因为这些文件是流媒体列表,而非影音文件。

播放 DVD[编辑 | 编辑源代码]

要使用 MPlayer 播放 DVD:

$ mplayer dvd://N

其中 N 想要播放的标题号。 如果不确定就从 1 开始。 要从特定的一章开始请使用 '-chapter' 标志。 例如,添加 '-chapter 5' 到命令会从标题的第 5 章开始播放。

Mplayer 默认检查 /dev/dvd。 在命令行中添加 dvd-device 选项或者在 ~/.mplayer/config 中使用 dvd-device 变量可以告诉它使用 /dev/sr0

要播放一个 DVD 镜像文件:

$ mplayer -dvd-device movie.iso dvd://N

启用 DVD 菜单请使用:

$ mplayer dvdnav://
注意: 使用方向键导航, Enter 键选择。

启用鼠标支持请使用:

$ mplayer -mouse-movements dvdnav://

要找到音频语言,以 -v 启动 MPlayer 可以切换到音频输出 ID。用 -aid audio_id 来选择一个音频 ID。通过编辑 ~/.mplayer/config 并添加 alang=en 这一行可以将英语设为默认音频。

用 MPlayer 时,DVD 音量可能会被设置得比较低。要提高最大音量到 400%,请使用 softvol=yessoftvol-max=400。初始音量默认为软件音量的 100%,全局混合水平保持不变。使用 90 可以在 0 和 400% 之间调节音量。

alang=en
softvol=yes
softvol-max=400

DVB-T Streaming[编辑 | 编辑源代码]

更多信息参见 DVB-T

JACK 支持[编辑 | 编辑源代码]

要使 MPlayer 将其音频直接输出到 JACK 作为默认行为,编辑 ~/.mplayer/config 并添加:

ao=jack

如果你现在没有运行 JACK, 你可以通过从命令行唤起 MPlayer,来让 MPlayer 根据需要输出到 JACK, 如:

$ mplayer -ao jack path/to/file

高级字幕[编辑 | 编辑源代码]

要让 ass 或者 ssa 格式字幕正常展示,你需要修改 ~/.mplayer/config 添加:

ass=true

或者添加 -ass 到命令行:

$ mplayer -ass path/to/subtitledVideo.mkv

需要启用此标志的一个可能指示是:您的字幕中是否出现数字。这是由被解释为要显示的东西的定位信息引起的。Mplayer 也会抱怨字幕太长或太多行。

启用 ass 也会同时启用任何嵌入字体。 根据 MPlayer 的手册,如果 fontconfig 的版本号大于等于 2.4.2,不需添加 embeddedfonts=true。 当没有嵌入字体的时候,fontconfig 也会被用来选择使用哪个字体。这可能会导致使用的字体与 OSD 字幕渲染器的不同。

网络电台[编辑 | 编辑源代码]

下面是一个脚本示例,用于轻松启动/停止播放预定义电台。 [1]

#!/bin/bash
XX="X"$1;
PLAYIT='mplayer  -loop 0 -playlist http://*.*.*.*:8000/listen.pls';

if [ "$XX" == "Xstop" ]; then
  killall mplayer;
else
  if [ 'EX' == 'EX'"$(pidof mplayer)" ]; then
    if [ "$UID" -ne 0 ]; then 
      nohup $PLAYIT &> /dev/null & disown;
    else 
      echo The "root" user is not allowed to run this script.
    fi
  else
    echo mplayer is already running by user: $(ps -eo user,comm | grep -i "mplayer"$ | sed 's/ mplayer/,/m') | sed "s/ ,$/./m";
  fi
fi

有关正在运行的 MPlayer 实例的更详细信息:

$ ps -eo pcpu,pid,user,comm | grep -i "mplayer"$ | sed  "s/ mplayer$//m"

额外的二进制解码器[编辑 | 编辑源代码]

如果你需要播放使用 cook、drvc 或 sipr 编解码器编码的媒体,可以安装带有必要的二进制编解码器包 codecs64AUR。更多信息参见 [2]

问题处理[编辑 | 编辑源代码]

无法打开名称含空格的文件[编辑 | 编辑源代码]

打开名称含空格的文件时,如果报类似于“无法打开 file:///The%20Movie”的错误(空格被替换成 %20 了),可以通过下面的方法解决:

打开 /usr/share/applications/mplayer.desktop,修改下面的内容:

Exec=mplayer %U

为:

Exec=mplayer "%F"

如果要使用图形前端,修改为 Exec=gui_name "%F" 即可。

OSD 和字幕有黑色或奇怪颜色的字体[编辑 | 编辑源代码]

当使用 MPlayer 可能默认使用的 vdpau 输出时,似乎 OSD 和字体颜色会有问题。你可以使用 xv 而不是 vdpau 来绕过这一问题。

作为一个命令行选项:

mplayer -vo xv

添加如下一行到你的 ~/.mplayer/config 文件:

vo=xv

详细信息参见原帖

Smplayer无图像[编辑 | 编辑源代码]

打开 mp4flv 文件时,SMPlayer 可能出现无图像问题。解决方法如下:

打开 ~/.mplayer/config 添加:

 [extension.mp4]
 demuxer=mov

如果还有问题,可能是由 SMPlayer 原有设置导致的。删除设置文件即可:

 $ rm -rf ~/.config/smplayer/file_settings

Gnome中启用复合的透明 SMPlayer[编辑 | 编辑源代码]

在使用 compiz 和 cairo dock 时,你注意到 SMPlayer 的透明屏幕了吗?当你用 SMPlayer 打开视频时,你只能听到音频而没有视频,这是很可笑的!下面是解决方法:[复制粘贴到终端]

   sudo bash -c "cat > /usr/bin/smplayer.helper" <<EOF
   export XLIB_SKIP_ARGB_VISUALS=1
   exec smplayer.real "$@"
   EOF
   sudo chmod 755 /usr/bin/smplayer.helper
   sudo mv /usr/bin/smplayer{,.real}
   sudo ln -sf smplayer.helper /usr/bin/smplayer

如果你不使用 sudo, 请直接使用 su 以 root 登录并执行上述命令!

SMPlayer: OSD font too big / subtitle text too small[编辑 | 编辑源代码]

自 SMPlayer 0.8.2.1 (with MPlayer2 20121128-1)起, 字幕字体与OSD字体的比例非常奇怪。这可能会导致 OSD 文字占满整个屏幕而字体太小以至于无法阅读。这个问题可以通过添加如下选项解决:

-subfont-osd-scale 2

或者添加到由 SMPlayer 传输到 MPlayer 的额外选项解决。这些选项可在 Options > Preferences > Advanced > Options for MPlayer 找到。也可以通过添加如下的行到 ~/.mplayer/config 解决:

subfont-osd-scale=2

Mplayer 字幕中某些字符显示为问号[编辑 | 编辑源代码]

如果字幕的编码方式是 utf8,请尝试使用:

-subcp utf8

你可以使用如下命令查看字幕的编码方式:

file subtitles.srt

参考 mplayer-shows-question-marks-for-some-characters-on-subtitle.

断断续续的音频 CD 播放[编辑 | 编辑源代码]

当 CDROM 向下旋转 CD 时,CDDA 播放可能每隔几秒钟中断一次。要解决这个问题,你需要使用 -cache 选项提前缓存或缓冲:

mplayer cdda://:1 -cache 1024

:1 是为了降低 CDROM 的速度,以获得恒定的自旋和较少的噪声。

参阅[编辑 | 编辑源代码]