目录
1. 说明
1.1 拓扑结构图
2. 准备工作
2.1 软硬件清单
3. 步骤
3.1 按上面的软硬件清单准备好材料
3.2 内网检查测试
3.3 透传到公网服务器
3.5 机顶盒配置
4. 总结
5. 参考
6. 后语
1. 说明
- 在本地局域网建立流媒体服务,并发布到公网服务器供终端(机顶盒/移动设备)订阅浏览
- 整个方案费用:本地硬件,本地上网费,公网服务器费, 域名费
1.1 拓扑结构图
其中: 流媒体服务器(Streaming Server), 媒体编排/发布客户机(Media Client)
2. 准备工作
2.1 软硬件清单
条目 | 说明 |
---|---|
流媒体小主机 | 这里我用了虚拟机,分配6核14G,安装软件:
|
媒体编排电脑 | 4核8G, 安装软件: - vMix 绿色版 |
TVBOX / 机顶盒 (安卓系统) | 4核2G,安装软件: - TVBOX, CatBox等 |
路由器 | - iStoreOS |
公网服务器 + 域名 | 2核1G,安装软件: - frps service - frps 服务端 设置子域名指向, 如 live.xxx.top |
3. 步骤
3.1 按上面的软硬件清单准备好材料
3.2 内网检查测试
流媒体服务器:
媒体编排机:
其中的流配置里面填上上面的推流地址与密钥
点击SRS中的简易播放器浏览
3.3 透传到公网服务器
通过透传软件, 暴露2022端口给外部访问, 注意公网服务器的防火墙开放相关端口。
frp 相关配置
frps.toml
bindPort = 7000auth.method = "token" #服务端连接身份认证,默认token
auth.token = "asyouwant" #服务端token密码webServer.addr = "0.0.0.0"
webServer.port = 7500
# dashboard 用户名密码,可选,默认为空
webServer.user = "admin"
webServer.password = "asyouwant"
frpc.toml
serverAddr = "frps.***.com"
serverPort = 7000auth.method = "token" #服务端连接身份认证,默认token
auth.token = "asyouwant" #服务端token密码,密码不正确将无法连接服务器[[proxies]]
name = "ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 22
remotePort = 6022
transport.useEncryption = true
transport.useCompression = true[[proxies]]
name = "oryx"
type = "tcp"
localIP = "127.0.0.1"
localPort = 2022
remotePort = 2022
3.4 公网测试
类似内网测试, 获取HLS流url, 如: http://***.top:2022/live/livestream.m3u8
3.5 机顶盒配置
找个网上的直播节目json做修改,如 live.txt:
🇨🇳|蓝光频道,#genre#
Ben MTV,http://live.xxx.top:2022/live/livestream.m3u8
4K超高清,http://liveop.cctv.cn/hls/4KHD/playlist.m3u8?zzhongd
继续tvbox配置, 导入直播数据源, 打开直播节目, 如图:
搞掂!
4. 总结
- 比较过几个透传方案,都是狠钱党,而且限制多多, 包括:DDNSTO, Ngrok 等。
5. 参考
- SRS (Simple Realtime Server) | SRS
- frp/README.md at dev · fatedier/frp · GitHub
- 内网穿透!如何配置frp新版0.56.0的配置文件.toml:提供web、samba、ssh远程连接示例_frp 配置-CSDN博客
6. 后语
最近环境不太好, 趁着有点时间做些实践方案,分享之 ... 共勉。