正如标题所说,本期介绍一个开源的共同观影项目——SyncTV (感觉可以堂堂正正申请升级设备了),作者Demo。
SyncTV 是一个允许您远程一起观看电影和直播的程序。它提供了同步观影、直播、聊天、同步观看、剧院和代理等功能。使用 SyncTV,咱们就可以与朋友和家人一起观看视频和直播,无论他们在哪里。
SyncTV 的同步观影功能确保所有观看视频的人都在同一点上。这意味着可以暂停、快进快退、倍速等操作,其他人也会同步到同一点。
剧院功能还提供了聊天和弹幕功能,可以让我们在观看视频时与朋友和家人交流。代理功能则可以观看在您连接到源服务器缓存的视频和直播。
项目特点
项目免费且开源,该程序仅进行客户端播放视频文件/流量转发,不会拦截、存储或篡改任何用户数据。
同步观看:确保所有参与者在视频的同一时间点上,可以进行暂停、快进、快退和倍速播放,所有操作都会同步到其他人。
影院模式:提供聊天和弹幕功能,增强观影互动体验。
代理功能:支持视频和直播的代理,以及代理缓存,提升观看流畅度。
视频解析:支持对 Alist、Bilibili 和 Emby 等平台的视频进行解析。
直播解析:支持对哔哩哔哩直播的解析。
WebRTC 在线通话:提供语音、视频和屏幕共享功能,方便实时交流。
此外,SyncTV 提供了多种安装方式,包括二进制文件、一键脚本、Docker 和 Helm,以满足不同用户的需求。
部署流程
作者大大还一直在更新(所以大家可以盯紧点新功能),有需求也可去提Issues,近期作者还准备更新支持Jellyfin。
以威联通NAS为例,我们通过Docker Compose进行部署。
打开Container Station,创建新的应用程序。
version: '3.3' # 最新版docker compoes可删除该行
services:
synctv:
image: synctvorg/synctv:latest
container_name: synctv # 容器名,可自定
restart: unless-stopped
ports:
- '6543:8080/tcp' # 冒号左侧端口可改,下同
- '6543:8080/udp'
volumes:
- /share/Container/synctv:/root/.synctv # 数据持久化,冒号左侧可自定义
environment:
- PUID=0 # 0代表root,其他用户ID可自行查看并配置
- PGID=0
- UMASK=022 # 权限掩码,通常默认022
- TZ=Asia/Shanghai
反向代理
因为我们搭建这个服务是为了一起看嘛,所以外网访问是要配置的。
这里选择lucky进行反向代理。
具体子配置截图如下所示。大家可以添加个服务页的访问基本认证。
使用体验
我直接通过域名访问。初始账户密码皆为root。管理员可以创建新的用户和用户组,支持配置角色身份、开关注册、房间数限制、各类审核等等,功能也是很完备。
用户注册功能需要启用任意 OAuth2 服务,在本项目中用于用户登录,用户可以使用第三方账号登录,无需注册新账号。
作者大大很贴心,过去很多项目都要添加很多额外的环境变量去进行额外配置,而SyncTV中全程仅需在UI界面操作下即可,例如邮件服务(涉及账户绑定登陆)、用户注册管理以及上面的OAuth2配置等。
打开个人中心,目前支持绑定B站、Alist和Emby这三个平台,Jellyfin也已提上日程。
Emby填上服务地址,账户和密码即可完成绑定。我这里绑定了个B站,可以扫码或者短信验证登陆。
去创建一个房间,可以选择是否隐藏。
可以选择添加影片的方式,视频直链、直播(创建)、B站、Alist、Emby。我这里就选B站来展示。
将视频链接或BV号粘贴进去并解析,就会出现所有的节目,支持选中所有,我直接全部添加了。能够正常的播放,画质、全屏、画中画这些B站在线的功能也都可以使用。可以查看用户列表、发送弹幕,以及更为具体的房间设置。
我创建了两个test账户,通过无痕浏览器打开新的界面,身份为user,进行登录。可以在线发送弹幕交流,也可以加入语音在线。
经过试验,可以加入语音的同时不影响影片播放。
手机端用起来稍有点别扭,主要是发送弹幕相关时,不开启画中画就会影响观看。
总结
目前不支持列表自动播放和循环播放,列表自动播放因为服务端没法轻易的获取当前视频的总时长,如果依靠用户上传视频总时长作者怕有用户依靠接口搞破坏。
影片列表的显示部分我也认为有待优化,不过有搜索功能也还行吧。
除了这两点也没啥了,整体使用体验不错。
大家有需要的可以抓紧部署起来!
评论区