MPlayer wrapper

mplayer-wrapper是MPlayer的一个命令行前端,尽可能保证与原有的mplayer命令行界面保持一致。

目前有两个版本:Bash和Python。Bash版不再改动;虽然Python版还有一些功能没实现,请使用python版。

功能

视频填充

根据屏幕和视频的分辨率对视频的顶端和底端用黑边进行填充,使得字幕和OSD显示在黑边上(而非重叠在画面上,查看截图)。

通过mplayer的-vf expand实现。

字体大小和位置自适应

默认情况下,mplayer播放时的字体大小正比于视频分辨率,因此在同一屏幕上,高分辨率视频的字体太大而低分辨率视频的字体太小。

mplayer-wrapper将使得在字体大小无关于视频分辨率,但与屏幕大小成正比。

另外,字幕将尽可能的靠近画面(但不/少量重叠)。

字幕自动下载

对于没有文本字幕的视频,自动从射手网进行查询和下载。

Python版使用射手网的subapi,即通过视频文件本身的hash(若干个md5校验串)来查询字幕。

连续播放

根据文件名生成播放列表,从而自动播放文件名连续的多个文件(例如“十二国记第03集”、“十二国记第04集”)。

Python版额外支持以下格式:

  • 中文数字(大小写均可):如“第壹集、第二集”、“第六零集、第六一集”
  • 前导零:如“第1集、第02集”、“第9集、第10集“
  • 前两者的混合:如“第一集、第02集、第3集”

记录播放位置(Python版未实现)

记录视频退出时的播放位置,从而在下次播放时从结束处继续播放(只有视频处于时间轴100秒之后并且在时间轴95%之前,才会在退出时记录)。

使用

所有应用均支持 --debug--dry-run 选项。请使用 chmod +x 赋予执行权限。

mplayer

将mplayer.pyz另存为或软链接至mplayer或mplayer.pyz,支持所有的mplayer命令行参数(通过转发给真正的mplayer)。

也可以用 mplayer.pyz play 进行访问。

midentify

将mplayer.pyz另存为或软链接至midentify。用于查看媒体信息。

也可以用 mplayer.pyz identify 进行访问。

mfetch

将mplayer.pyz另存为或软链接至mfetch。

mfetch a.avi b.mkv c.rmvb --savedir=/root/.local/share/subtitles

或者

mplayer.pyz fetch a.avi b.mkv c.rmvb --savedir=/root/.local/share/subtitles

默认将字幕存至视频文件所在目录。

另外,所有字幕文件都将转码为UTF-8。