MPlayer

出自 ArchWiki

MPlayer 是 GNU/Linux 下流行的媒体播放器。它支持大多数视频和音频格式,因此功能非常全面,即使它主要用于观看视频。

安装

安装 mplayer 软件包。

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

配置

系统范围的配置文件位于 /etc/mplayer/,而用户本地设置存储在 ~/.mplayer/ 目录中。/etc/mplayer/ 中的默认文件有

  • codecs.conf - 包含解码器配置。
  • example.conf - 是 mplayer.conf 的示例,安装后不会自动创建。
  • input.conf - 包含快捷键配置。

默认情况下,文件 config~/.mplayer/ 目录中创建。

参见: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 手册中的注释,如果 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 启用,但使用 xdotool 每 60 秒按下一个不活动的键

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 作为解复用器

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

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

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

SMPlayer:暂停后无法恢复播放

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

您也可以从 SMPlayer 中更改此设置,方法是转到选项 > 首选项 > 常规 > 音频,并将输出驱动程序选项设置为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 的额外选项中。这些选项位于选项 > 首选项 > 高级 > 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 速度,以实现恒定旋转并减少噪音。

参见