如何搭建个人影音中心,实现多人同步观影(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)。