转载来自:http://blog.csdn.net/songjinshi/article/details/6338810
slave模式协议
-------------------
关于slave模式,MPlayer为后台运行其他程序。不再截获键盘事件,MPlayer会从标准输入读一个换行符(/n)分隔开的命令。
要动手尝试slave模式,运行
mplayer -slave -quiet <movie>
并在控制台窗口输入slave命令。
您也可以使用一个fifo文件(命名管道):
mkfifo /tmp/fifofile
mplayer -slave -input file=/tmp/fifofile <movie>
大多数slave模式命令相当于命令行选项,但并非一定要在相同的名称。详细说明中可以在手册中找到
所有命令都可以以“pausing”,“pausing_keep”,或“pausing_toggle”为前缀。“pausing”告诉MPlayer暂停正在处理的命令。 “pausing_keep”告诉MPlayer暂停保持只要它已在暂停模式。“pausing_toggle”告诉MPlayer暂停保持只要它尚未暂停模式。请注意,“尽可能“可以在命令完全执行之前。
作为一项临时黑客,也有个实验性“pausing_keep_force”前缀,与之MPlayer不退出了所有的暂停循环。
这样你能避免“frame stepping”由于“pausing_keep”的影响。但大多数命令将要么不执行或是按照令人意外的方式。
对于“set_mouse_pos”和“key_down_event”,“pausing_keep_force”是默认
因为其他值不为他们作出多大的意义。
各种提示和技巧(帮助扩展!):
- 尝试使用例如
pausing_keep_force pt_step 1
get_property pause
切换到下一个文件。它避免在转换到新的音频文件之前旧文件播放一小段时间
可用的命令('mplayer -input cmdlist的'会打印出一份清单):
注意,因为Mplayer是通过换行符("/n")来分隔不同的命令,所以我们在编程中不管是写入到管道文件还是写入到QT的进程中在命令后面一定要加入换行符("/n"),这样Mplayer才能辨别。
还有一点我们要通过给Mplayer发送多个命令来获取到当前视频播放的信息,如何来获取到这些信息呢?
在我们通过管道或进程的标准输入通道给Mplayer发送命令,如“get_video_resolution”(注意是下划线),Mplayer就会响应,会在标准输出中输出视频的分辨率如:ANS_VIDEO_RESOLUTION='352x288',所以为了获得影片的分辨率,我们还需要将获取到的信息进行解析,取到352x288.其他的信息获取方法也是差不多的。
alt_src_step <value> (ASX playlist only)
当有一个以上的源可以有选择下一个/前一个。
audio_delay <value> [abs]
设置/调整音频延迟。
如果[abs]不提供或为零,调整迟延<value>秒。
如果[abs]不为零,将延迟到<value>秒。
[brightness|contrast|gamma|hue|saturation] <value> [abs]
设置/调整视频参数。
如果[abs]不提供或为零,修改参数为<value>。
如果[abs]不为零,参数设置为<value>。
<value>的范围是[-100,100]。
change_rectangle <val1> <val2>
更改矩形滤波器矩形的坐标。
<val1>
必须是下列之一:
0 =宽度
1 =高度
2 = x坐标
3 = y坐标
<val2>
如果<val1>为0或1:
整数加/减去宽/高。
正值宽度/高度和负值减去它。
如果<val1>是2或3:
相对矩形左上角的整数值。正值移动矩形向右/向下和负值移动矩形向左/向上。
dvb_set_channel <channel_number> <card_number>
设置的DVB通道。
dvdnav <button_name>
给定dvdnav按钮。
up
down
left
right
menu
select
prev
mouse
edl_mark
将当前位置写入EDL文件。
frame_drop [value]
切换/设置帧的模式。
get_audio_bitrate
打印出当前文件音频比特率。
get_audio_codec
打印出的音频当前文件的编解码器的名称。
get_audio_samples
打印出的音频和当前文件的声道数。
get_file_name
打印出当前文件名。
get_meta_album
打印出当前文件的'专辑'的元数据。
get_meta_artist
打印出当前文件的'艺术家'的元数据。
get_meta_comment
打印出当前文件的'评论'的元数据。
get_meta_genre
打印出当前文件的'流派'的元数据。
get_meta_title
打印出当前文件的'标题'的元数据。
get_meta_track
打印出当前文件的'音轨的数量'的元数据。
get_meta_year
打印出当前文件的'年份'的元数据。
get_percent_pos
打印出文件中的当前位置为整数百分比[0-100)。
get_property <property>
打印出的属性的当前值。
get_sub_visibility
打印出字幕能见度(1 ==开启,0 ==关闭)。
get_time_length
打印出当前文件的长度用秒表示。
get_time_pos
打印出在文件的当前位置用秒表示,采用浮点数。
get_vo_fullscreen
全屏状态打印出来(1 == 全屏,0 ==窗口)。
get_video_bitrate
打印出当前文件的视频比特率。
get_video_codec
打印出当前视频文件的编解码器的名称。
get_video_resolution
打印出当前文件的视频分辨率。
screenshot <value>
截屏。要求屏幕过滤器加载。
0以一个单独的截图。
1启动/停止服用,每帧画面。
gui_[about|loadfile|loadsubtitle|play|playlist|preferences|skinbrowser|stop]
图形用户界面行动
key_down_event <value>
注入<value>到MPlayer的关键代码的事件。
loadfile <file|url> <append>
加载给定的文件/网址,停止当前文件的播放/网址。
如果是<append>非零继续播放和文件/网址
追加到当前播放列表代替。
loadlist <file> <append>
加载给定的播放列表文件,停止当前文件的播放。
如果<append>是非零和继续播放文件,文件追加到当前播放列表。
loop <value> [abs]
调整/设置怎样的电影应该是循环多次。 -1代表不循环,永远的0。
菜单命令>
执行上显示OSD菜单命令。
up 移动光标向上。
down 移动光标向下。
ok 接受的选择。
cancel 取消选择。
hide 隐藏的OSD菜单。
set_menu <menu_name>
显示菜单命名<menu_name>。
mute [value]
切换声音输出静音或将其设置为[value](value>=0)
(1 ==开启,0 ==关闭)。
osd [level]
切换OSD模式或将其设置为[level]在[level]>= 0。
osd_show_property_text <string> [duration] [level]
显示一项关于OSD扩展属性的字符串,看到-playing-msg 用于描述可用的扩展。如果[duration]>=0,显示为[duration]ms。 [level]设置所需的最低水平OSD该消息可见(默认是:0 -始终显示)。
osd_show_text <string> [duration] [level]
查看OSD的<string>。
panscan <-1.0 - 1.0> | <0.0 - 1.0> <abs>
增加或减少pan-and-scan的<value>的范围,1.0是最高的。
负值降低pan-and-scan范围。
如果<abs>!= 0,那么pan-and-scan范围被解释为绝对的范围。
pause
暂停/取消暂停播放。
frame_step
播放一帧,然后暂停。
pt_step <value> [force]
转到下一个/上的播放树项。标志的<value>讲述
该方向。如果没有项目可在给定的方向不会做任何事,除非[force]不为零。
pt_up_step <value>[force]
类似pt_step,但跳转到下一个/父列表中的前一个项目。
有助于摆脱在播放树内部循环。
quit [value]
退出MPlayer。可选的整数[value]的值作为返回代码
为mplayer的进程(默认值:0)。
radio_set_channel <channel>
切换到<channel>。在‘channel’的广播参数需要设置。
radio_set_freq <frequency in MHz>
设置广播频率调谐器。
radio_step_channel <-1|1>
步向前(1)或向后(-1频道列表)。只有当'channel'的广播参数设置。
radio_step_freq <value>
调整频率的<value>(正数 - 向上,负数 - 向下)。
seek <value> [type]
定位电影的某些地方。
0 是一个相对定位+/- <value>(默认值)。
1 是定位<value>%在电影里。
2 是寻求一个绝对位置的<value>秒。
seek_chapter <value> [type]
定位一章的开始。
0 是一个相对寻求+/- <value>章节(默认)。
1 定位到<value>章。
switch_angle <value>
转换ID为角度[value]。通过循环如果用角度[value]省略或负数。
set_mouse_pos<X> <y>
告诉MPlayer的窗口中鼠标坐标。
此命令不移动鼠标!
set_property <property> <value>
设置属性。
speed_incr <value>
增加<value>当前回放速度。
speed_mult <value>
目前速度乘以<value>。
speed_set <value>
设定速度为<value>。
step_property <property> [value] [direction]
通过value来改变属性,或者,如果没给定或为0则增加默认值。如果小于零,方向是相反的方向。
stop
停止播放。
sub_alignment [value]
切换/设置对齐字幕。
0 顶部对齐
1 居中对齐
2 底部对齐
sub_delay <value> [abs]
调整了字幕延迟+/- <value>秒或将其设置<value>
秒时[abs]不为零。
sub_load <subtitle_file>
从<subtitle_file>加载字幕。
sub_log
当前日志上显示的字幕或连同文件名和时间信息的〜/.mplayer/subtitle_log。
sub_pos <value> [abs]
调整/设置字幕的位置。
sub_remove [value]
如果[value]参数是当前和非负,并取消了字幕文件的[value]索引。如果参数省略或负,除去
所有的字幕文件。
sub_select [value]
显示字幕的索引[value]。关闭字幕显示,如果关闭[value]的值为-1或比更高可用的字幕指数更大。
可用的字幕周期,如果[value]省略或低于-1。支持字幕来源是 -sub 选项在命令行,VOBsubs,DVD字幕和Ogg和Matroska文本流。
这主要是循环所有字幕命令,如果要设置一个特定的字幕,使用sub_file,sub_vob,或sub_demux。
sub_source [source]
显示第一个字幕,从[source]。这里[source]是一个整数:
SUB_SOURCE_SUBS(0)用于文件字幕
SUB_SOURCE_VOBSUB(1) VOBSub文件
SUB_SOURCE_DEMUX(2)在媒体文件或DVD嵌入字幕。
如果[source]为-1,将关闭字幕显示。如果[source]低于-1,将循环每个之间的现有资源第一个字幕。
sub_file [value]
显示字幕specifid由[value]的文件subs。在[value]的值
通过相应的ID_FILE_SUB_ID'-identify'报告的值。
如果[value]的值-1,将关闭字幕显示。如果[value]小于-1,
将循环的所有文件subs。
sub_vob [value]
显示字幕specifid由[value]的vobsubs。在[value]的值
通过相应的ID_VOBSUB_ID'-identify'报告的值。
如果[value]的值-1,将关闭字幕显示。如果[value]小于-1,
将循环的所有vobsubs。
sub_demux [value]
显示字幕specifid由[value]从DVD字幕或嵌入在媒体文件。在[value]的值对应ID_SUBTITLE_ID值'-identify',。如果[value]的值-1,将关闭字幕显示。
如果[value]小于-1,将循环所有的DVD字幕或嵌入字幕。
sub_scale <value> [abs]
调整字幕大小+/- <value>或将其设置为<value>时,[abs]
不为零。
vobsub_lang
这是与sub_select为了向后兼容。
sub_step<value>
在字幕列表前进<value>步,如果<value>
是为负,倒退<value>步。
sub_visibility [value]
切换/设置字幕。
forced_subs_only [value]
强制切换/设置字幕。
switch_audio [value](目前的MPEG*,AVI,的Matroska和libav库处理流)
切换到音频文件通过ID[value]。循环
歌曲,如果[value]省略或负数。
switch_angle [value](DVD光盘只)
切换到DVD的角度通过ID[value]。循环
如果可用角度,如果[value]省略或负数。
switch_ratio [value]
在运行时改变长宽比。 [value]是表示新的长宽比
作为浮动16 / 9(例如1.77778)。
这可能与某些视频过滤器的问题。
switch_title [value](DVDNAV only)
切换到DVD标题通过ID[value]。循环可用标题,如果[value]的值省略或负数。
switch_vsync [value]
切换场同步(1 ==开启,0 ==关闭)。如果[value]的值没有提供,刷新同步状态反转。
teletext_add_digit <value>
进入/离开字幕的页面号编辑模式,并追加提供的以前输入的数字。
0 .. 9 - 附加apropriate数字。 (启用编辑模式,如果从一般要求模式,并切换到正常模式时。)
- - 删除最后的页码数字。 (退格仿真,只能在页码编辑模式。)
teletext_go_link <1-6>
按照目前的字幕的页面给出链接。
tv_start_scan
电视频道开始自动扫描。
tv_step_channel <channel>
选择下一个/上一个电视频道。
tv_step_norm
更改电视制式。
tv_step_chanlist
改变频道列表。
tv_set_channel <channel>
设置当前的电视频道。
tv_last_channel
设置当前电视频道到最后一个。
tv_set_freq <frequency in MHz>
设置电视调谐器的频率。
tv_step_freq <frequency offset in MHz>
设置电视调谐器的频率相对于当前值。
tv_set_norm <norm>
电视调谐器设置规范(包括PAL,SECAM,NTSC制式,...).
tv_set_brightness <-100 - 100> [abs]
设置电视调谐器的亮度或调整,如[abs]设置为0。
tv_set_contrast <-100 -100> [abs]
设置电视调谐器的对比或调整,如[abs]设置为0。
tv_set_hue <-100 - 100> [abs]
设置电视调谐器色调或调整,如[abs]设置为0。
tv_set_saturation <-100 - 100> [abs]
设置电视调谐器饱和或调整,如[abs]设置为0。
use_master
主之间切换和PCM音量控制。
vo_border [value]
切换/设置边界显示。
vo_fullscreen [value]
切换/设置全屏模式。
vo_ontop [value]
切换/设置保持在最上层。
vo_rootwin [value]
切换/设置在根窗口播放。
volume <value> [abs]
增大/减小音量,或将其设置为<value>,如果[abs]不为零。
下面的命令,实际上只可用于OSD菜单控制台模式:
help
帮助文本显示,目前还是空的。
exit
从OSD菜单退出控制台。不像'quit',不退出MPlayer的。
hide
隐藏了OSD菜单控制台。点击菜单命令unhides它。其他按键绑定的行为一切如常。
run <value>
运行<value>的shell命令。在OSD菜单控制台模式标准输出和标准输入
是通过视频输出。