如何搭建個人影音中心,實現多人同步觀影(OpenList+SyncTV)
更多語言
更多操作
本章節將詳細展示如何在搬瓦工 E-Commerce 或 E-Commerce SLA 系列 VPS 上搭建一個功能完備的個人影音中心。從而實現讓你和朋友在網頁上同步觀看影視內容,並支持彈幕和語音交流。
要實現流暢的同步觀影體驗,特別是多人同時觀看時,對服務器的網絡質量要求極高。這正是搬瓦工 CN2 GIA/CMIN2 優化線路的巨大優勢所在。本項目將充分利用其延遲穩定和高帶寬,打造一個穩定可靠的多人影音中心。
本次教程主要步驟為: 搭建OpenList並對接夸克網盤 -> 安裝 SyncTV -> 完成 SyncTV 與 Alist 的對接。
需要準備的事項:
1.擁有一台搬瓦工的服務器(參考教程);
2.服務器在運行,且安裝了debian12系統(參考教程);
3.擁有一個可以對接OpenList的不限速網盤(例如88VIP夸克網盤,鹹魚10元可開一年);
4. SSH 連接工具已準備就緒(例如 Xshell)。
一、連接服務器並安裝OpenList
OpenList是一個強大的文件列表程序,用於掛載各種主流的雲存儲服務,包括阿里網盤,115網盤,夸克網盤等。
1.SSH 連接與基礎工具安裝
使用 SSH 工具連接到您的搬瓦工服務器(推薦使用 Xshell 等工具,如果你是個人或家庭使用,可以下載Xshell:下載鏈接),
然後執行下方命令安裝必要的工具。
apt-get install wget curl vim sudo unzip -y
2.安裝OpenList
執行下面命令,安裝OpenList,根據提示選擇 1 進行安裝,然後直接輸入回車鍵安裝。
curl -fsSL https://res.oplist.org/script/v4.sh > install-openlist-v4.sh && sudo bash install-openlist-v4.sh
安裝完成後,保存好訪問地址(公網)和賬號密碼。
二、登錄OpenList並設置儲存
接下來將登錄OpenList,並通過獲取cookie的方式,添加夸克網盤作為儲存。
如果你使用115或者阿里網盤,操作也類似,可以參考官方文檔,https://doc.oplist.org/
1.登錄OpenList
訪問剛才保存的公網地址,輸入賬號密碼登錄,為了安全起見,第一次登錄後請務必修改默認賬號和密碼。
2.添加OpenList儲存
剛安裝好的OpenList,是沒有儲存的,直接點轉到儲存到添加管理的後台。
點擊添加按鈕,在驅動列表中選擇 夸克,輸入你的掛載路徑(也就是將來在主頁顯示的名字)
3.獲取夸克網盤cookie
這一步我們先打開一個空白的網頁,訪問夸克網盤官網,https://pan.quark.cn/,扫码登录你的夸克网盘。
確保登錄你的網盤後,按下F12或者SHIFT+Ctrl+I,進入開發模式,根據圖示操作複製cookie並保存。
4.完成OpenList添加夸克儲存
回到第2步的儲存添加界面,把剛才保存的cookie複製進cookie這一欄中,然後保存。
到這裡,夸克網盤的儲存添加就已經完成了,訪問你的夸克網盤地址,就可以看到網盤,以及網盤中的數據了。
三、安裝SyncTV
SyncTV是讓您可以和其他人遠程一起觀看電影和直播的開源程序,它能提供了同步觀影官能,並且支持直播、聊天、彈幕等功能。
1.使用一鍵腳本安裝
運行下方的一鍵腳本,安裝SyncTV,這裡默認不會輸出登錄和用信息。
sudo -v ; curl -fsSL https://raw.githubusercontent.com/synctv-org/synctv/main/script/install.sh | sudo bash -s -- -v latest
2.啟動並設置自啟動
執行以下兩個命令,確保SyncTV啟動,並設置開機自啟動。
systemctl start synctv.service
systemctl enable synctv.service
四、調試SyncTV並對接OpenList
SyncTV默認情況下是未對接儲存程序的,這部分將演示如何對接OpenList,並實現多人同步觀影。
1.登錄SyncTV
SyncTV 默認訪問地址和登錄信息如下:
访问地址:你的ip:8080
默认账号:root
初始密码:root
注意:登錄後請及時修改默認用戶名和密碼。
2.SyncTV對接OpenList
登錄後,根據圖示操作,完成OpenList的綁定。
對接成功後,會顯示如下。
3.添加用戶
因為SyncTV是一個同步觀影程序,一個人看沒有意義,所以先添加一個用戶。
4.創建房間
在SyncTV主頁頂部的菜單欄(如果瀏覽器顯示過窄,則在右側側邊欄)創建房間。
5.添加影片
創建好房間後,我們可以添加影片了,根據如下操作可以添加
6.加入房間
如果你剛創建了房間,那麼其他用戶訪問SyncTV主頁後,可以看到房間並加入。
7.共同觀影
觀影時,房主暫停或跳轉視頻進度,觀看者的視頻也會同步暫停或跳轉,實現時間軸的完全同步。
五、進階優化
本次內容目前主要側重部署項目和程序對接,對於一些優化放在這部分來進行講解,SyncTV 和 Alist 還有諸多進階優化和擴展玩法值得探索。
1.設置房間權限
有管理權限的賬戶,可以修改房間的設置,比如禁止訪客加入,給普通用添加同步視頻進度和暫停權限等,以維護觀影秩序。
2.程序的原理
在使用SyncTV進行觀影的過程中,默認設置下,數據源是來自openlist的,因為觀看者訪問openlist的視頻是否流暢,決定了觀影的流暢度。
對於openlist來說,掛載夸克網盤後,我們通過openlist觀看夸克網盤的視頻,實際上是由openlist所在服務器訪問夸克網盤來實現觀看,因此這個過程中會雙倍消耗服務器的流量。
3.擴展玩法
SyncTV的功能非常強大,其擴展性包括:
- 源視頻代理播放: 支持將源視頻進行代理播放。
- 對接其他平台: 可以綁定 Bilibili,直接根據 BV 號播放視頻。
- 直鏈支持: 支持播放各種直鏈視頻,甚至可以用於創建直播房間。
你可以進一步發掘SyncTV的全部潛力,打造更豐富的個人影音娛樂體驗。
4.使用域名反向代理
SyncTV和openlist默認情況下的訪問地址都是IP+端口的組合,可以參考該教程進行反向代理。以使用域名訪問。
如何搭建Nginx Proxy Manager並使用反向代理和遠程桌面加速
需要注意,SyncTV和openlist的反向代理都需要使用特定的配置參數,以下是來自官方文檔的配置參數。
SyncTV:
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
client_max_body_size 20m;
proxy_http_version 1.1;
}
SyncTV的寶塔面板用戶請刪除以下代碼段:
location ~ ^/(.user.ini|.htaccess|.git|.svn|.project|LICENSE|README.md
location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
location ~ .*.(js|css)?$
Openlist:
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Range $http_range;
proxy_set_header If-Range $http_if_range;
proxy_redirect off;
proxy_pass http://127.0.0.1:5244;
proxy_http_version 1.1;
# the max size of file to upload
client_max_body_size 20000m;
}
5.訪問異常
如果遇到無法訪問的SyncTV或者openlist的情況,請檢查是否安裝了防火牆或者時面板程序。
如果有,請給對應端口放行(SyncTV是8080,openlist是5244)。