mplayer-wrapper是MPlayer的一个简单的命令行前端。在实现一些功能的基础上,尽可能保证与原有的mplayer命令行界面保持一致。
下载
https://github.com/sunbing81/scripts/blob/master/mplayer.sh
功能
- 视频填充:扩展/填充视频,使得字幕和OSD显示在屏幕上下的黑边上(查看截图);
- Playback resume:从上次结束的位置继续播放。注意,只有视频处于时间轴100秒之后以及时间轴95%之前,才会在退出时记录当前播放位置;
- 字幕自动下载:根据影片文件名生成查询词,从射手网(http://www.shooter.com.cn)查询并下载字幕(目前支持TLF、CHD的命名格式;欢迎留言写下不同ripper的命名格式,以便添加支持);
- 连续播放:根据文件名进行猜测生成播放列表,从而自动播放文件名连续的多个文件(例如“十二国记第03集”、“十二国记第04集”)。注意:如果用快捷键“q”退出mplayer,播放列表中的后继文件将不再播放(即脚本将退出);如果要结束当前视频,但同时希望继续播放列表中的文件,请用“PgDn”或右方向键快进到视频结束。
依赖
- GNU awk:文本处理
- xrandr:屏幕分辨率检测
- unrar:解压缩字幕文件
- wget:查询及下载字幕
- js/jsc/gjs:javascript解释器,用于生成下载链接(js来自spidermonkey,jsc来自webkit-gtk,gjs来自gjs)
使用
- 可以将脚本改名为”mplayer”,该脚本与mplayer的命令行界面基本相同
- 如系统中没有”midentify”,可以做一个名为”midentify”的符号链接
- 输入
mplayer Blood.Diamond.2006.BDRip.X264-TLF\(C7ADDAC0\).mkv
一切OK;
- 另外,可以使用
mplayer -debug Blood.Diamond.2006.BDRip.X264-TLF\(C7ADDAC0\).mkv
它在1024×768屏幕上的输出是
/usr/bin/mplayer -ass -embeddedfonts -ass-font-scale 2.821181 -ass-use-margins -ass-top-margin 174 -ass-bottom-margin 174 -subfont-autoscale 2 -vf-add pp=ac -osdlevel 3 -unrarexec /usr/bin/unrar -slave -input file=/home/subi/.cache/mplayer/fifo Blood.Diamond.2006.BDRip.X264-TLF(C7ADDAC0).mkv
在1680×1050屏幕上的输出是
/usr/bin/mplayer -ass -embeddedfonts -ass-font-scale 1.719577 -ass-use-margins -ass-top-margin 109 -ass-bottom-margin 109 -subfont-autoscale 2 -vf-add pp=ac -osdlevel 3 -unrarexec /usr/bin/unrar -slave -input file=/home/subi/.cache/mplayer/fifo Blood.Diamond.2006.BDRip.X264-TLF(C7ADDAC0).mkv
能写个中文的说明吗?是在看不懂英文。
@躺在桌子上
下半部分不就是中文?
@bones7456
刚写的,呵呵
[...] This post was mentioned on Twitter by ひのと and Weeker {BSD}, Eric Shi. Eric Shi said: http://gosubi.me/adow/mplayer-wrapper, 这个东东支持mplayer自动抓字幕,回头来试试。 [...]
刚试了下移动硬盘里的
Amelie.2001.BDRip.X264-TLF.mkv
木有效果诶.
终端输入mplayer ‘Amelie.2001.BDRip.X264-TLF.mkv’
返回bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
bt_audio_service_open: connect() failed: Connection refused (111)
MPlayer SVN-r1.0~rc3+svn20090426-4.4.3 (C) 2000-2009 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.
Playing Amelie.2001.BDRip.X264-TLF.mkv.
File not found: ‘Amelie.2001.BDRip.X264-TLF.mkv’
Failed to open Amelie.2001.BDRip.X264-TLF.mkv.
Exiting… (End of file)
我的联网是没问题的
Unknown option on the command line: -p”
Error parsing option on the command line: -p”
MPlayer SVN-r29142-4.4.3 (C) 2000-2009 MPlayer Team
debian testing 用该脚本出现上面的错误,不知怎么回事…
@iwtctw
Playing Amelie.2001.BDRip.X264-TLF.mkv.
File not found: ‘Amelie.2001.BDRip.X264-TLF.mkv’
Failed to open Amelie.2001.BDRip.X264-TLF.mkv.
这几行,路径不对吧?mplayer没找到你的文件
@ssjjsb
命令行是什么?在原来你的命令后加上-debug看看输出结果什么
mplayer -debug video_sf.flv
===============================================================================
Global setups:
FILES=”video_sf.flv”
ORI_OPTS=”"
EXPAND=”no”
EXPAND_METHOD=”noass”
RESUME=”no”
FETCH=”no”
UNRAR=”no”
===============================================================================
Local setup for “video_sf.flv”
EXPAND_LOCAL=”no”
EXPAND_METHOD_LOCAL=”noass”
RESUME_LOCAL=”no”
FETCH_LOCAL=”no”
UNRAR_LOCAL=”no”
/usr/bin/mplayer -heartbeat-cmd “gnome-screensaver-command -p” -slave -input file=/home/nk/.cache/mplayer/fifo video_sf.flv
如果复制上面的命令倒是能播放..
我也碰到这个问题了。
Global setups:
FILES=”/mnt/windows/h/download/morningsun.rmvb”
ORI_OPTS=”"
EXPAND=”yes”
EXPAND_METHOD=”ass”
RESUME=”yes”
FETCH=”yes”
UNRAR=”yes”
===============================================================================
Local setup for “/mnt/windows/h/download/morningsun.rmvb”
EXPAND_LOCAL=”yes”
EXPAND_METHOD_LOCAL=”ass”
RESUME_LOCAL=”yes”
FETCH_LOCAL=”yes”
UNRAR_LOCAL=”yes”
gawk: 命令行:31: (FILENAME=/proc/self/fd/63 FNR=2) 致命错误: 试图访问字段 -1
QUERY=”"
/usr/local/bin/mplayer -heartbeat-cmd “gnome-screensaver-command -p” -ass -embeddedfonts -ass-font-scale 1.250000 -subfont-autoscale 2 -vf-add pp=ac -osdlevel 3 -unrarexec /usr/bin/unrar -slave -input file=/home/lzuxz/.cache/mplayer/fifo /mnt/windows/h/download/morningsun.rmvb
@ssjjsb
Quick fix: 把脚本245行处的$(stop_screensaver)删掉应该可以。
原来的代码没事,但后来改来改去这里的字符串和参数处理出问题了,而且我机器上没有屏保,一直没发现这个bug。
@subi
这样可以播放了.但是不能Playback resume.而且有的rmvb格式文件不能自动视频填充.
ps:在debian testing 中没找到webkit-gtk,我系统中没有 jsc 命令,不知道和这有没有关系.
pps:请问一下”如系统中没有”midentify”,可以做一个名为”midentify”的软链接”,这句是什么意思?作midentify和谁的软链接?
@ssjjsb
请下载最新的0.4.3版,应该能正确处理-heartbeat-cmd “gnome-screensaver-command -p” 参数的问题。
不能resume的话,请先试试0.4.3版,看看问题是否还存在;另外,只有当前播放位置大于100秒或小于影片时长的95%时才会记录当前播放位置,所以请快进2分钟左右测试resume功能。
rmvb不能填充是正常的,因为大部分rmvb都是硬字幕(字幕实际上是画面图像的一部分,这时候不可能把字幕挪出来的),而且大部分宽屏rmvb影片都被预先填充为4:3的了。最理想的还是看那些比较正规ripper的作品,比如TLF、XTM等等。
@ssjjsb
找半天,debian官方的确没有包给出了jsc……不过jsc只是下字幕时才用,不影响别的功能
midentify是mplayer提供的一个工具,可以用来检测媒体文件的一些信息,比如编码、时间、长度等等。一般的发行版都会装上midentify的,但也有可能没装。如果需要这个工具,创建软链接midentify指向这个mplayer脚本就可以。
@subi
404 Not Found
The requested URL /file/mplayer-wrapper-0.4.3 does not exist.
403 Permission Denied
You do not have permission for this request /file/mplayer-wrapper-latest
……
[...] RT @dingyi:搜索射手字幕的mplayer脚本: http://gosubi.me/adow/mplayer-wrapper [...]
Link fixed.
@subi
这样可以播放了,谢谢.但是有两个问题,一是我放avi电影也不能自动视频填充.二是快进2分钟后还是没有resume功能。可能和我的mplayer有关,开着compiz, mplayer一直不能调亮度和对比度. 这两个功能如果不能用,我还是继续用原先的mplayer吧..
按debug的输出看,所有的附加功能全部禁用了。你机器上没装gawk吧?你用的是ubuntu?好象只有ubuntu是用mawk代替gawk的。
@subi
赞一个!我用的debian testing, sudo aptitude install gawk 装上gawk以后就可以了.可以视频填充,可以resume.
ps:我有个rmvb格式视频不能resume,应该和文件名有空格有关,我把名字中的空格去掉就可以看了.这一点如果能改进就太好了:)
video_play -debug I.Am.Legend.Blu-Ray.Rip.a720.X264.DD51.F@Silu.mkv
Warning unknown option expand at line 9
===============================================================================
Global setups:
FILES=”I.Am.Legend.Blu-Ray.Rip.a720.X264.DD51.F@Silu.mkv”
ORI_OPTS=”"
EXPAND=”yes”
EXPAND_METHOD=”ass”
RESUME=”yes”
FETCH=”yes”
UNRAR=”yes”
===============================================================================
Local setup for “I.Am.Legend.Blu-Ray.Rip.a720.X264.DD51.F@Silu.mkv”
EXPAND_LOCAL=”yes”
EXPAND_METHOD_LOCAL=”ass”
RESUME_LOCAL=”yes”
FETCH_LOCAL=”yes”
UNRAR_LOCAL=”yes”
QUERY=”"
/usr/bin/mplayer -ass -embeddedfonts -ass-font-scale 2.127978 -ass-use-margins -ass-top-margin 95 -ass-bottom-margin 95 -subfont-autoscale 2 -vf-add pp=ac -osdlevel 3 -ss 151 -noquiet-ss 199 -noquiet -unrarexec /usr/bin/unrar -slave -input file=/home/feng/.cache/mplayer/fifo I.Am.Legend.Blu-Ray.Rip.a720.X264.DD51.F@Silu.mkv
[...] 先说web API。如果影片的名称很规范,比如像“无耻混蛋.Inglourious.Basterds.2009.BDRip.X264-TLF(548063E9).mkv”,直接提交“影片名称+影片源+封装格式+ripper小组”进行查询匹配是非常精确的——基本上能够保证如果返回值不空,那么第一匹配就是正确结果。这也是我实现mplayer-wrapper里自动字幕下载的基本思路。 [...]
@feng
这个错误的原因是记录播放位置的缓存文件存了两次该文件的位置,0.4.4已修复
@ssjjsb
已修复(0.4.4)
yjcsuper@yjcsuper-laptop:/usr/local/bin$ mplayer-wrapper -debug ‘/media/sda6/nhk/[道兰][NHK纪录片]称霸世界最高峰赛事-为本田赌上全部的年轻人们.mkv’
===============================================================================
Global setups:
FILES=”/media/sda6/nhk/[道兰][NHK纪录片]称霸世界最高峰赛事-为本田赌上全部的年轻人们.mkv”
ORI_OPTS=”"
EXPAND=”yes”
EXPAND_METHOD=”ass”
RESUME=”yes”
FETCH=”no”
UNRAR=”yes”
===============================================================================
Local setup for “/media/sda6/nhk/[道兰][NHK纪录片]称霸世界最高峰赛事-为本田赌上全部的年轻人们.mkv”
EXPAND_LOCAL=”yes”
EXPAND_METHOD_LOCAL=”ass”
RESUME_LOCAL=”yes”
FETCH_LOCAL=”no”
UNRAR_LOCAL=”yes”
QUERY=”"
/usr/bin/mplayer -ass -embeddedfonts -ass-font-scale 1.250000 -subfont-autoscale 2 -ss 0 -unrarexec /usr/bin/unrar -slave -input file=/home/yjcsuper/.cache/mplayer/fifo -vf-add pp=ac -osdlevel 3 -noquiet -heartbeat-cmd gnome-screensaver-command -p /media/sda6/nhk/[道兰][NHK纪录片]称霸世界最高峰赛事-为本田赌上全部的年轻人们.mkv
可以下载字幕但字幕是乱码.我用的是ubuntu 10.04, gawk和mawk 都装了,怎么还是
FETCH_LOCAL=”no”
请楼主帮忙看看是怎么回事
应该是不能给这种文件名下载字幕的,因为我基本上只看TLF出的电影,偷懒起见只写了给TLF电影下字幕的功能。。。
字幕是乱码的话,应该是subcp设置的问题,你可以试试subcp=enca:zh:utf-8;或者subcp=cp936
谢谢楼主的回复,但希望楼主的这个好东西能够使更多人使用.
[...] mplayer-wrapper [...]