
情境是這樣:電腦接了電視放在客廳,片播下去之後你想暫停、想跳下一集,但人已經坐到沙發上了。今天要把手機變成 mpv 的遙控器。
我有在家運動的習慣,平常是用 sunshine 把電腦畫面分享到客廳電視、電視那頭用 moonlight 接。問題是客廳離房間太遠,藍牙滑鼠根本連不到,於是就變成「想暫停要走回房間」這種蠢事。
simple-mpv-webui 就是解法:它在 mpv 裡開一個小網頁伺服器,你用手機連進去,暫停、上一首下一首、音量、跳轉都能點。同一個 Wi-Fi 下就能用,不用裝 App。
去 simple-mpv-webui 下載,解壓縮後把腳本放進:
D:\mpv-lazy\portable_config\scripts
路徑照你自己的 mpv-lazy 位置改。這一步跟裝其他 mpv 腳本沒兩樣。
這個腳本要用 Lua 的 socket 函式庫,而 mpv 內建的 Lua 沒帶。Windows 上你得自己補進去。
網路上找得到的教學大多會叫你去抓 57op/simple-mpv-webui-windows-libs 裡的 mpv-lualibs_x86-64-v0.0.6.zip,解壓到 mpv 根目錄。這個方法現在已經沒用了,別再照著做。
現在可行的做法是改抓這一包:dyphire/mpv-winbuild: Use Github Action to build mpv-win with latest commit.
,裡面有現成編好的依賴檔。
順帶一提,各系統要補的東西不一樣,Linux / macOS 使用者請看原專案的 Dependencies 章節,不要照這篇的 Windows 流程走。
設定完重開 mpv,手機開瀏覽器打:
http://你電腦的區網IP:8080
電腦 IP 用 ipconfig 查,找 IPv4 位址那行。第一次連很可能連不上,通常是 Windows 防火牆把它擋掉了 —— 允許 mpv.exe 的私人網路連入就好。
播放影片時候,在手機輸入 http://(mpv播放電腦IP):8080/就能看到以下畫面,就能用手機操作。

(如果不做其他設定異動,做到這個步驟就可以了)
理論上你的 port 沒被占用,或者需要開特別的功能是可以不用設定的。
這是這篇最容易卡住的地方,因為兩種寫法都對,但你只能挑一種。
原專案的寫法是開一個獨立設定檔 portable_config\script-opts\webui.conf:
# webui 要用的連接埠,預設 8080
port=8060
# 是否停用 webui,預設 no
disable=no
# 是否把請求記錄到標準輸出,預設 no
logging=no
# 是否顯示在 OSD 上,預設 yes
osd_logging=yes
# 是否監聽 ipv4,預設 yes
ipv4=yes
# 是否監聽 ipv6,預設 yes
ipv6=no
mpv-lazy 的寫法是全部塞進 portable_config\script-opts.conf,每行前面加 script-opts-append= 和腳本名前綴:
script-opts-append=webui-port=8060
script-opts-append=webui-disable=no
script-opts-append=webui-logging=no
script-opts-append=webui-osd_logging=yes
script-opts-append=webui-ipv4=yes
script-opts-append=webui-ipv6=no
所以我建議走第二種。 理由不是它比較好看,是懶人包的所有腳本設定都集中在 script-opts.conf 這一個檔案裡,你以後要回頭找「我到底改過什麼」只要開一個檔。混用兩種寫法的話,半年後你會忘記某個設定被寫在哪裡。
我自己實際上是連 8060 都懶得改,預設 8080 直接用。上面那些選項會列出來是因為你可能會撞到 port 被佔用,知道能改比較安心。
這點要講清楚,因為它會影響你能把它開在哪裡。
這是一個沒有認證的 HTTP 介面。 任何連得到那個 port 的人都能控制你的播放器。所以:
真的需要認證的話,原專案支援 htpasswd_path,可以掛一個 htpasswd 檔上去。但老實說如果你的需求已經到要認證,那你要的可能不是這個腳本。
