MPlayer
MPlayer 是 GNU/Linux 下流行的媒体播放器。它支持大多数视频和音频格式,因此功能非常全面,即使它主要用于观看视频。
安装
一些视频播放器可以使用 MPlayer 作为后端。
配置
系统范围的配置文件位于 /etc/mplayer/
,而用户本地设置存储在 ~/.mplayer/
目录中。/etc/mplayer/
中的默认文件有
codecs.conf
- 包含解码器配置。example.conf
- 是 mplayer.conf 的示例,安装后不会自动创建。input.conf
- 包含快捷键配置。
默认情况下,文件 config
在 ~/.mplayer/
目录中创建。
快捷键绑定
系统快捷键绑定通过 /etc/mplayer/input.conf
配置。个人快捷键绑定存储在 ~/.mplayer/input.conf
中。有关键盘快捷键的完整列表,请查看 mplayer(1)。
技巧与提示
硬件视频加速
参见 硬件视频加速。
启用 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 手册中的注释,如果 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 启用,但使用 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
音频 CD 播放断断续续
CDDA 播放可能会每隔几秒钟中断一次,因为 CDROM 会减速 CD。要解决此问题,您需要使用 -cache
选项提前缓存或缓冲
$ mplayer cdda://:1 -cache 1024
:1
是为了降低 CDROM 速度,以实现恒定旋转并减少噪音。
参见
- MPlayer 常见问题解答
- MPlayer 技巧
- 如何配置 MPlayer
- playerctl:一个用于控制媒体播放器的命令行实用程序和库