MPlayer
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=yes 和 softvol-max=400。启动音量默认为软件音量的 100%,全局混音器级别将保持不变。使用 9 和 0 键,音量可以在 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 字幕渲染器不同。
网络电台
这是一个用于轻松启动/停止播放预定义电台的脚本示例。[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
音频 CD 播放卡顿
CDDA 播放可能会每隔几秒中断一次,因为 CDROM 会将 CD 调至低速旋转。要解决此问题,您需要使用 -cache 选项进行预先缓存或缓冲。
$ mplayer cdda://:1 -cache 1024
:1 是用来降低 CDROM 速度以实现恒定旋转并减少噪音的。
参见
- MPlayer FAQ
- MPlayer 技巧
- 如何配置 MPlayer
- playerctl: 用于控制媒体播放器的命令行实用程序和库