首先请看过这篇 3 种异地相隔的朋友间一起 同步看电影 的方法 – 技焉洲 ,本文是使用 syncplay + mpv.net 播放器,播放网络文件,从而省去每个观看者都要下载一份文件的麻烦,因此要先根据上篇了解 syncplay 的安装和使用。
这种 在线同步看电影 的方式,只需要一个人(姑且称为房主)把资源准备好,其他人打开软件就能看到视频,使用起来很容易。
提供网络视频源
将机器上的文件通过网络分享的工具有很多,比如 Nginx 就有共享目录的功能,不过本文使用更专注于网络文件的工具 dufs。
dufs 是一个文件服务器,支持文件的上传、下载,有简单的权限控制。能够通过浏览器上传和下载,方便房主准备文件,Nginx 就不支持,只能在终端传输文件。
安装流程: dufs 安装 – 技焉洲
dufs 网页使用也很简单,左上角有上传按钮,每个文件后有删除按钮,获得文件的网址就【右键】+【复制网址】就可以了,这个网址待会在 syncplay 中使用。
除了自己准备视频源,也可以用能获取到直链的任何网络文件上,比如云盘文件的直链、视频网站的直链,获取之后都能在 mpvnet 上播放,借助 syncplay 同步进度。
emby 的每个视频都能获取直链,不过阿飞只会在浏览器通过一个油猴脚本获取,js 脚本: embyLaunchPotplayer ,安装 js 脚本之前,需要安装 tampermonkey 。
mpv.net 也可以播放音乐,因此用它一起听歌也不错,在将域名或 IP 加入白名单后,一个人在 syncplay 添加播放项目,其他人都会自动添加,因此使用起来很流畅。
传输视频文件
一般会选一个网络带宽大的、丢包少的 VPS 作为提供视频源的机器,不过只要有公网或 frp 等方式能访问 dufs 的网页就行。
视频文件可能在其他机器上,比如本地笔记本里新下的 B 站视频、或者家里 NAS 上用 pt 下的,需要房主将视频文件传送到 VPS 上。
这样 VPS 的硬盘就不需要太大,20g 应该能凑出 15g 左右放视频文件,能满足一个 1080p 的电影源。
Windows 传到 VPS
可以直接用 dufs 网页的上传功能,非常方便,看完就删也不占用 VPS 硬盘空间,但如果文件过大,通过浏览器传也许不稳定。
Linux 传到 VPS
选用 rsync,它可以断点续传、传送时压缩,在网络传输中非常好用。只不过需要在终端操作。
安装 rsync
sudo apt install -y rsync
传输单个文件
rsync -avzhP -e "ssh -p 22" vfly2@1.2.3.4:/home/vfly2/a.tar.gz ./a.tar.gz
传输目录(将远程的 a_film 目录复制到本地机器的 /home/vfly2/movies/ 下)
rsync -avzhP -e "ssh -p 22" -r vfly2@1.2.3.4:/home/vfly2/movies/a_film /home/vfly2/movies/
如果文件或目录有空格,可以使用单引号括住
vfly2@1.2.3.4:/home/vfly2/movies/'Joker Folie à Deux (2024)'
用 Syncplay 播放
如文章开头动图所演示,在 syncplay 上,左上角 file – Open media stream URL,将网址填入,之后在 mpv 里就能观看视频了。其他人可以在右边的播放列表中,找到你的网址,右键点打开媒体流,这样就能一起看了,和本地的体验是一样的。
唯一不好的是对服务器的网速要求很高,如果 2 个人一起看,就相当于服务端同时发两次视频流,一个 10g 大小 2 小时的电影,一个人看就需要服务器网速在 12 Mbps,2 个人就是 25 Mbps,这还能承担。如果七八个人一起,只能用先下好文件的方式了。
【高级】-【设置受信任的网站】,所有人将 dufs 的域名或 IP 设置为受信任的网站,这时候一个人添加网址,其他人都会自动将网址添加到播放列表,一个人切换网址,其他人都会自动切换,就不必如上图手动打开了,使用更方便。(如此一来,相当于其他人只需要打开 syncplay,什么都不需要操作,就能同步看电影了)
原文链接: https://yanh.tech/2024/11/syncplay-online-synchronized-movie-watching/
版权声明:本博客所有文章除特別声明外,均为 AhFei 原创,采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 技焉洲 (yanh.tech) 。
保持更新 ٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ 清晰恒益的实用技能,欢迎使用 RSS 订阅,如果能留言互动就更好了。
可在 Telegram 群组 https://t.me/vfly2 交流依文章步骤遇到的问题。