许久不见,我又回来更新远程一起看的方法了,上一次搞一起看还是去年5月的私人服务器,这次带来了更有效的方法,甚至部分番剧能够支持弹幕!

往期的一起看处理方法:

简单架构介绍

这次视频播放采用的是emby多媒体服务(一种可以把本地视频自动分类成类似视频网站的服务),远程使用emby是使用frp进行内网穿透,emby本身没有一起看,一起看的实现是使用的一个名为videotogether的js插件,弹幕用的danmaku。

框架图

image-1695006146551

架构解析

为什么不全部搭建在公网服务器上?

公网服务器给的存储空间太小,一般只有几十g,加配存储空间很划不来,而我本地有一块2t的机械,里面又下了很多视频。同时我本地有一台闲置的笔记本,视频硬解码速度会比公网服务器块很多,因此采用了内网穿透的方法。

开始搭建

前期准备

  • 一台有公网ip的服务器(建议带宽在30mb可以保证低码率下的1080p不卡顿)
  • 一个域名(方便管理不同服务,也可以不用)
  • 一台本地离线服务器(比如闲置的笔记本,手机,树莓派,NAS)
  • 基本的计算机网络知识(计网速成
  • 一个正常的脑子

搭建环境

本篇的搭建方式是在Windows环境,好处是Windows兼容性非常强并且操作傻瓜,这套框架其实不止限于本篇的搭建方式,下文给出其他环境的搭建思路和参考文档。

emby其他搭建方法

树莓派、Linux搭建emby
会用Linux的也不需要写太多教程了,只给个搭建思路,Linux可以装docker或者直接用Linux端的服务

参考: https://emby.media/download.html
参考视频:https://www.bilibili.com/video/BV1bp4y1b77h

NAS、Docker搭建emby
docker属于万金油了,只要能装docker就能部署,不论是什么设备装上docker,拖下docker镜像就能跑。

参考视频:https://www.bilibili.com/video/BV19o4y1D7wb
参考: https://emby.media/docker-server.html

安卓设备搭建emby
用老的安卓手机搭建emby是比较奇葩的方法,稳定性不能保证,并且硬解码速度堪忧,不是很推荐这种方法。

参考视频:https://www.bilibili.com/video/BV11V411E7Sf
参考: https://emby.media/server-android.html

windows搭建emby

windows端搭建emby非常简单,只需要下载emby服务端,双击运行即可,比起docker,Linux来说简单太多。
这里只介绍了emby的安装,没有介绍emby的使用,emby玩起来花样很多,所以没有展开说明,具体使用请查看参考视频。

emby server下载:https://emby.media/windows-server.html
emby的具体使用:https://www.bilibili.com/video/BV1e54y1f7Re

为emby装插件

videotogether

安装方法:
在安装emby的目录中找到 Emby Theater/electronapp/www/index.html这个html,打开编辑。
在body内添加<script src="https://2gether.video/release/extension.website.user.js"></script>
即可。
或者在浏览器安装videotogether插件(这个方法可以直接在b站一起看任意视频)。

视频参考:https://www.bilibili.com/video/BV1aj411F7nk

danmaku

给emby添加弹幕。
安装方法:
在安装emby的目录中找到 Emby Theater/electronapp/www/index.html这个html,打开编辑。
在body内添加

<script type="text/javascript" src="https://danmaku.movie.kg/ext.js"></script>
<link rel="stylesheet" href="https://danmaku.movie.kg/ext.css"/>

即可。
image-1695017568195

搭建frp服务

frp官方文档:https://gofrp.org/docs
frp(Fast Reverse Proxy)是一个开源的高性能反向代理服务器,用于将本地计算机上的服务映射到公共网络中,从而实现内网穿透和远程访问的功能。

frp官方文档说明非常详细,只需要阅读web访问的示例即可。frp分为服务端s和客户端c,配置文件内容不同。

搭建frps服务

  1. 下载frps到公网服务器 https://github.com/fatedier/frp/releases
  2. 编辑frps.ini

示例:

[common]
bind_port = 11451
dashboard_port = 7500
vhost_http_port = 8080
token = 114514
dashboard_user = admin
dashboard_pwd = password

名词解释:

  • bind_port:绑定端口,是客户端绑定服务端的端口(客户端里要填这个)
  • dashboard_port:frp有自带的面板,可以通过这个端口访问
  • vhost_http_port:因为我们需要代理http访问,所以要设置frp访问http的端口,实际使用就是 对应域名:vhost_http_port -> 对应frpc服务:服务端口
  • token:frp连接使用的密钥
  • dashboard_user:frp面板的用户名
  • dashboard_pwd:frp面板的用户密码
  1. 打开对应的端口,将上述的端口都开放访问
  2. 启动frps: ./frps

搭建frpc服务

frpc可以装在路由器上用路由器硬解(参考Padavan),也可以装在本地电脑上。

  1. 下载frpc到本地服务器 https://github.com/fatedier/frp/releases
  2. 配置frpc.ini文件

参考:

[common]
server_addr = 11.45.14.19
server_port = 11451
token = 114514

[web]
type = http
local_ip = 127.0.0.1
local_port = 8096
custom_domains = video.yourdomain.com

名词解释:

  • server_addr:公网服务器的ip地址
  • server_port:和frps的server_port是一个
  • token:和frps的token是一个
  • local_ip:本地局域网ip,如果是本地电脑安装默认127.0.0.1,如果在路由器则是对应192.168.x.x
  • local_port:本地服务的端口,这里应该是emby的端口,emby默认端口是8096
  • custom_domains:自定义域名,通过访问这个域名:vhost_http_port 来访问本服务,如果不用域名请参考:https://www.jianshu.com/p/166b1c59dc3e

尾声

至此,我们已经部署了一个能够一起看视频的多媒体网站了,文中技术内容有许多细节没有描述,需要一边查阅相关资料一边部署。后续可能出一个调试的进阶文档。emby有很多进阶玩法,包括不限于配合rss+qbit自动化追番,anime4k番剧超分辨率,组建个人音乐曲库,移动端应用,本文意在提供一个思路,拓宽emby和其他技术结合的玩法。

参考

Q.E.D.


寄蜉蝣于天地,渺沧海之一粟