跳转至内容

MPlayer

来自 ArchWiki
(重定向自 SMPlayer)

MPlayer 是 GNU/Linux 上一款流行的电影播放器。它支持大多数视频和音频格式,因此功能非常强大,即使它主要用于观看视频。

安装

安装 mplayer 包。

一些视频播放器可以使用 MPlayer 作为后端。

配置

系统范围的配置文件位于 /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)

另请参阅:LQWiki:XF86 键盘符号

技巧与提示

硬件视频加速

请参阅 硬件视频加速

启用 VDPAU

将以下内容添加到系统范围(/etc/mplayer/mplayer.conf)或用户特定(~/.mplayer/config)的配置文件中

vo=vdpau,
vc=ffh264vdpau,ffmpeg12vdpau,ffodivxvdpau,ffwmv3vdpau,ffvc1vdpau,ffhevcvdpau
  • 末尾的逗号很重要!它们告诉 MPlayer,如果指定的驱动程序和解码器未找到,则回退到其他驱动程序和解码器。
  • -vo 选项选择 VDPAU 视频输出驱动程序,-vc 选项选择 VDPAU 视频解码器。
  • ffodivxvdpau 解码器仅受最新系列 NVIDIA 硬件支持。根据您的具体硬件,可以考虑省略它。有关更多信息,请参阅 硬件视频加速#NVIDIA

Radeon 显卡和 Composite 启用下的半透明视频

要在 X 下获得半透明视频输出,您需要在 MPlayer 中启用纹理视频

$ mplayer -vo xv:adaptor=1 file

您可以使用 xvinfo 来检查您的显卡支持哪些视频模式。

观看流式视频

如果要播放视频流(例如 ASX 链接),请使用

$ mplayer -playlist link-to-stream.asx

-playlist 选项是必需的,因为这些流实际上是播放列表,没有它就无法播放。

DVB-T 流媒体

有关更多信息,请参阅 DVB-T

DVD 播放

使用 MPlayer 播放 DVD

$ mplayer dvd://N

其中 N 是所需的标题编号。如果不确定,请从 1 开始。要从特定章节开始,请使用 '-chapter' 标志。例如,在命令中添加 '-chapter 5' 将从标题的第五章开始播放 DVD。

Mplayer 默认检查 /dev/dvd。通过命令行上的 dvd-device 选项,或在 ~/.mplayer/config 中的 dvd-device 变量,告诉它使用 /dev/sr0

播放 DVD 镜像文件

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

要启用 DVD 菜单,请使用

$ mplayer dvdnav://
注意:您可以使用箭头键导航,并使用 Enter 键进行选择。

要在 DVD 菜单中启用鼠标支持,请使用

$ mplayer -mouse-movements dvdnav://

要查找音频语言,请使用 -v 开关启动 MPlayer 以输出音频 ID。使用 -aid audio_id 选择一个音频轨道。通过编辑 ~/.mplayer/config 并添加 alang=en(表示英语)来设置默认音频语言。

使用 MPlayer 时,DVD 的音量可能会被设置为较低。要将最大音量提高到 400%,请使用 softvol=yessoftvol-max=400。启动音量默认为软件音量的 100%,全局混音器级别将保持不变。使用 90 键,音量可以在 0% 到 400% 之间调整。

alang=en
softvol=yes
softvol-max=400

JACK 支持

要将 MPlayer 的音频输出重定向到 JACK

$ mplayer -ao jack path/to/file

高级字幕

为了正确显示 Advanced SubStation Alpha (ass) 或 SubStation Alpha (ssa) 格式的字幕

$ mplayer -ass path/to/subtitledVideo.mkv

需要启用此标志的一个可能迹象是,如果您的字幕中出现了数字。这是由于定位信息被解释为需要显示的内容。Mplayer 还会抱怨字幕过长或行数过多。

启用 ass 也会启用所有嵌入式字体。根据 mplayer 的 man 手册中的说明,如果 fontconfig 版本是 2.4.2 或更新版本,则添加 embeddedfonts=true 是不必要的。当没有嵌入式字体时,Fontconfig 也将用于选择要使用的字体。这可能会导致使用的字体与 OSD 字幕渲染器不同。

网络电台

本文或本章节已过时。

原因:脚本需要 shell 检查。(请在 Talk:MPlayer#Internet Radio Script Mess 中讨论)

这是一个用于轻松启动/停止播放预定义电台的脚本示例。[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 包安装 "essentials" 二进制解码器包。有关更多信息,请参阅 http://www.mplayerhq.hu/design7/dload.html

播放暂停时允许屏幕保护程序/DPMS

MPlayer 默认会阻止屏幕保护程序,如果您忘记暂停的视频,这可能不希望发生。以下配置将保持屏幕保护程序和 DPMS 启用,但每 60 秒使用 xdotool 按一次不活动的键。

nostop-xscreensaver=1
heartbeat-interval=60
heartbeat-cmd="xdotool key VoidSymbol"

故障排除

MPlayer 无法打开带空格的文件

MPlayer 可能会因为无法打开文件而失败,例如 'The Movie',并显示它无法打开文件 file:///The%20Movie(其中所有空格都转换为 %20)。通过编辑 /usr/share/applications/mplayer.desktop 将以下行从

Exec=mplayer %U

更改为

Exec=mplayer "%F"

如果您使用 MPlayer 的前端/GUI,请在 Exec=gui_name "%F" 中输入其名称。

MPlayer 的 OSD 和字幕显示为黑色或奇怪的颜色

在使用 vdpau 输出时,OSD 和字幕颜色似乎存在问题,mplayer 默认可能正在使用 vdpau。您可以通过使用 xv 而不是 vdpau 来解决此问题。

$ mplayer -vo xv

有关详细信息,请参阅原始的 论坛帖子

SMPlayer:无视频问题

SMPlayer 在打开某些 MP4(可能还有 FLV)视频时可能会遇到问题。如果它只播放音频而没有视频,一种可能的解决方法是使用 MOV 作为 demuxer。

~/.mplayer/config
[extension.mp4]
demuxer=mov

如果执行此操作后问题仍然存在,是因为 SMPlayer 正在保留该特定文件的设置。删除 SMPlayer 保留的所有文件的设置将解决此问题。

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

SMPlayer:暂停后无法恢复播放

如果您的音频输出驱动程序设置不正确,SMPlayer 在暂停视频后可能会停止播放。您可以通过专门设置音频驱动程序来解决此问题。例如,如果您使用 PulseAudio,可以通过使用 -ao pulse 启动 MPlayer 来实现。

您也可以从 SMPlayer 中更改此设置,方法是转到 Options > Preferences > General > Audio,并将 Output Driver 选项设置为 pulse

SMPlayer:在 GNOME 中使用透明度时无视频

当在 GNOME 中使用 Compiz 提供透明度时,可能会出现此问题:SMPlayer 启动时屏幕透明,音频播放正常,但没有视频。要解决此问题,请(以 root 身份)创建一个文件,其内容如下:

/usr/local/bin/smplayer.helper
export XLIB_SKIP_ARGB_VISUALS=1
exec smplayer.real "$@"

使其 可执行 并按如下方式链接它。

# ln -sf /usr/local/bin/smplayer.helper /usr/local/bin/smplayer

SMPlayer:OSD 字体过大/字幕文本过小

自 SMPlayer 0.8.2.1(使用 MPlayer2 20121128-1)以来,字幕字体与 OSD 字体的比例非常奇怪。这可能导致 OSD 文本填满整个屏幕,而字幕却非常小且无法阅读。通过添加以下内容可以解决此问题:

-subfont-osd-scale 2

或添加到 SMPlayer 传递给 MPlayer 的额外选项中。这些选项可以在 Options > Preferences > Advanced > Options for MPlayer 中找到。

Mplayer 在字幕中显示问号

如果字幕的编码页是 utf8,请尝试使用

-subcp utf8

您可以使用以下命令查找字幕的编码页:

$ file subtitles.srt

请参阅 https://www.linuxquestions.org/questions/slackware-14/mplayer-shows-question-marks-for-some-characters-on-subtitle-works-fine-on-xine-906077/

音频 CD 播放卡顿

CDDA 播放可能会每隔几秒中断一次,因为 CDROM 会将 CD 调至低速旋转。要解决此问题,您需要使用 -cache 选项进行预先缓存或缓冲。

$ mplayer cdda://:1 -cache 1024

:1 是用来降低 CDROM 速度以实现恒定旋转并减少噪音的。

参见