mplayer源碼中有一個關於mplay slave 模式的說明文檔:/DOCS/tech/slave.txt,下面是中文翻譯
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 pt_step 1
get_property pause
切換到下一個文件,它避免在轉換到新的音頻文件之前舊文件播放一小段時間
可用的命令('mplayer -input cmdlist的'會打印出一份清單):
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>[部隊]
類似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菜單控制台模式標准輸出和標准輸入
是通過視頻輸出。