最容易整合的指令列播放器:MPV使用說明 / Customizing a Media Player for Your Application: MPV Player Usage
最近常常要在Windows桌面環境中設計數位學習教學活動。有時候我們會需要使用全螢幕播放影片、聲音或圖片,甚至需要一張全螢幕的黑幕或白幕當背景。這種時候開放原始碼高度可自訂化的MPV全能播放器就能夠順利派上用場。搭配AutoIT高度自訂腳本,我們就能整合多個不同的Windows應用程式來完成一個豐富的教學活動。
教學活動播放器的需求 / Player for Activity
圖 / PotPlayer
現在市面上的全能播放器非常多,大多播放器都帶有豐富介面與複雜的功能,可以用來滿足聽音樂、看影片等休閒活動的需求。其中我自己最常用的是PotPlayer。不過,若是要搭配教學活動,普通的播放器功能又多到令人分心、而且難以控制。
我分析了一下教學活動中可能會用到影音播放器時所需要的功能:
- 用全螢幕只播放這個影片、音樂或圖片。
- 播放途中如果要跳出,就按下ESC強制中斷。
- 播放完畢就進行下一個學習活動。
- 上述動作全部可以用指令列控制。
以前在Windows環境開發像是這樣觀看多媒體教材時,大部分的做法都是用C#來控制Windows的Media Player。姑且不論Windows的Media Player在播放影片與音訊等多媒體檔案時可能會有編碼等各種問題,光是C#本身得要具備VisualBasic、.NetFramework環境才能編譯使用,就讓我感到頭大。可以的話我儘量不想C#。
圖 / AutoIT (喔?AutoIT換新圖示了)
我個人還是習慣使用AutoIT來製作Windows的應用程式,而且AutoIT具備的Run()函數能夠讓我們用指令列來操縱其他應用程式。所以這次我就想要找一個能用指令列控制的全能播放器,最後找到的方案就是MPV。
MPV播放器下載 / Download MPV
圖 / mpv.io
上圖是MPV官方網站的封面,雖然看起來像是有介面的播放器,但它最大的價值在於高度的可自訂性。
圖 / warosu.org
MPV的下載位置:
MPV自訂化設定方式有分成二種:
- 設定檔:在播放器mpv.exe的目錄底下建立固定的設定檔,包含播放設定mpv.conf、鍵盤設定input.conf。
- 指令列:用指令列參數來客製化MPV。指令列的參數資料請參考「mpv - Reference」。
客製化的MPV檔案下載 / Download Customized MPV
圖 / mpv-player
最後我將常用的MPV檔案與用法整理成一個獨立的儲存庫,方便大家使用:
這整個檔案是免安裝檔,解壓縮後就可以直接使用。這裡面的bat批次執行檔都是我預先寫好了幾種常用的使用方式,各別有:
- play_video.bat:播放影片
- play_audio.bat:播放音訊
- play_image.bat跟play_image_10sec.bat:播放圖片
- play_background_black.bat跟play_background_white.bat:顯示背景
以下就詳細介紹這些指令的內容。
使用MPV / MPV Player Usage
我用Windows 64位元的MPV整理出四種播放多媒體資料的常用做法。這四種做法都是設定檔搭配指令列參數來使用。以下我一一說明這些自訂化的設定。
設定檔 / Configuration
圖 / mpv-player
在這個客製化MPV檔案中我在「mpv-x86_64-20170423」內整理了兩個MPV播放器使用的設定檔: 播放設定mpv.conf跟鍵盤設定input.conf。這兩個檔案包含了各個使用範例都會用到的設定。
圖 / mpv-player
播放設定mpv.conf的內容如下:
# Start in fullscreen mode by default.
fs=yes
# Disable OSC
osc=no
fs設定表示播放的時候預設使用全螢幕,osc設定是控制操作介面,我比較喜歡把它隱藏起來。如果要看更多的設定,請參考「mpv.conf 」這份文件。
圖 / mpv-player
鍵盤設定input.conf的內容如下:
# Quit player when press ESC key
ESC quit
這個設定表示按下ESC鍵的時候離開程式。 如果要看更多的設定,請參考「 input.conf 」這份文件。
有了這兩個設定檔,我們就可以用MPV播放各種媒體檔案。
影片播放 / Play Video
圖 / PEXELS VIDEOS
影片播放的指令列操作例子請見「play_video.bat」。指令程式碼如下:
mpv-x86_64-20170423\mpv.exe "video.mp4"
呼叫mpv.exe,輸入影片檔的路徑,這樣就可以了,影片播放很簡單。
音訊播放 / Play Audio
圖 / freesound
音訊播放的指令列操作例子請見「play_audio.bat」。指令程式碼如下:
mpv-x86_64-20170423\mpv.exe "audio.mp3" --background=#CCCCCC
跟影片播放相比,音樂播放還多了一個參數「 --background=#CCCCCC 」,這可以設定播放音樂時的背景顏色,「#CCCCCC」表示灰色。
圖片播放 / Display Image
圖 / pixabay
除了影片跟音訊之外,MPV最厲害的地方是還可以播放圖片。圖片播放的指令列操作例子請見「play_image.bat」。指令程式碼如下:
mpv-x86_64-20170423\mpv.exe "image.png" --background=#FAFCF6 --loop-file=inf
跟音樂播放相比,圖片播放還多了一個參數「 --loop-file=inf 」,這會讓MPV重複一直顯示圖片,直到按下ESC離開程式。
圖片播放10秒 / Display Image during 10 seconds
另一個圖片播放的例子控制圖片播放的秒數,程式碼檔案請看「play_image_10sec.bat」,程式碼如下:
mpv-x86_64-20170423\mpv.exe "image.png" --background=#FAFCF6 --image-display-duration=10
這次不用 「 --loop-file=inf 」來無限重複播放,改用「 --image-display-duration=10 」,表示圖片播放10秒。
播放背景布幕 / Play Background
最後一個例子是播放黑色或白色的背景,程式碼個別是「play_background_black.bat」跟「play_background_white.bat」。黑色背景的程式碼如下:
mpv-x86_64-20170423\mpv.exe "background_black.gif" --loop-file=inf --panscan=1.0
這個「background_black.gif」只是一個1x1的黑色像素,我用這個圖片來填滿整個螢幕。這個指令除了用「--loop-file=inf 」持續播放之外,還需要搭配用「--panscan=1.0」將圖片放大到整個螢幕。
如果你的背景要換其他顏色的話,就更換圖片吧。
小結 / In Closing
這篇用MPV來實作四種常用的多媒體播放情境,同時也記錄常用的MPV說明連結,讓未來需要其他客製化的時候更方便查閱。如果要將MPV跟其他的介面整合在一起的話,可能還要想想看要怎麼做吧?
圖 / DailyJS
不過,如果要很多介面整合的話,還是用Electron來作桌面應用程式就好了吧。用HTML開發網頁的方式來設計應用程式介面,應該比用AuoIT的GUI功能還要簡單得多。
https://play.google.com/store/apps/details?id=is.xyz.mpv
回覆刪除沒想到MPV也有Android版本,真的很好用耶
您好,經由您的介紹踏入了MPV的領域,但我有一事一直無法解:當我播放一個鏤空的png圖檔時,為什麼透明的部分不會透明,而是出現灰白方格呢?您知道該怎麼設定嗎,還是無解?
回覆刪除您好,
刪除一般來說影片應該是無法做到透明的效果
請放不透明圖片吧。
謝謝回覆,我知道普通影片無法透明,但我所說的是一個單張的png圖檔哦!
刪除MPV本身就是影片播放器,請以影片播放的思維來看這件事情。
刪除你好如果我洗想連續播放同一支影片ㄋ
回覆刪除你好,
刪除可以看看MPV的說明是怎麽寫的
https://mpv.io/manual/master/#options-loop
我猜可以用--loop-file=inf
詳細怎麼做,可能要再研究看看
linux 怎麼設定循環播放
回覆刪除你好,
刪除可以看看MPV的說明是怎麽寫的
https://mpv.io/manual/master/#options-loop
我猜可以用--loop-file=inf
詳細怎麼做,可能要再試看看
et
回覆刪除?
刪除