關於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菜單控制台模式標準輸出和標準輸入
是通過視頻輸出
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/liangkaiming/archive/2010/08/05/5790893.aspx