个人直播/流媒体服务解决方案实践

目录

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,安装软件:

  • 宝塔
  • oryx - 流媒体服务器,Docker方式
  • frpc service- frps客户端
媒体编排电脑

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. 后语

最近环境不太好, 趁着有点时间做些实践方案,分享之 ... 共勉。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/689951.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

日报表定时任务优化历程

报表需求背景 报表是一个很常见的需求,在项目中后期往往会需要加多种维度的一些统计信息,今天就来谈谈上线近10个月后的一次报表优化优化之路(从一天报表跑需要五分钟,优化至秒级) 需求:对代理商进行日统计…

基于Huffman编码的字符串统计及WPL计算

一、问题描述 问题概括: 给定一个字符串或文件,基于Huffman编码方法,实现以下功能: 1.统计每个字符的频率。 2.输出每个字符的Huffman编码。 3.计算并输出WPL(加权路径长度)。 这个问题要求对Huffman编码算…

关于服务端接口知识的汇总

大家好,今天给大家分享一下之前整理的关于接口知识的汇总,对于测试人员来说,深入了解接口知识能带来诸多显著的好处。 一、为什么要了解接口知识? 接口是系统不同模块之间交互的关键通道。只有充分掌握接口知识,才能…

【联通支付注册/登录安全分析报告】

联通支付注册/登录安全分析报告 前言 由于网站注册入口容易被黑客攻击,存在如下安全问题: 暴力破解密码,造成用户信息泄露短信盗刷的安全问题,影响业务及导致用户投诉带来经济损失,尤其是后付费客户,风险巨…

Coursera吴恩达深度学习专项课程01: Neural Networks and Deep Learning 学习笔记 Week 01

Week 01 of Neural Networks and Deep Learning Course Certificate 本文是学习 https://www.coursera.org/learn/neural-networks-deep-learning 这门课的笔记 Course Intro 文章目录 Week 01 of Neural Networks and Deep Learning[0] Welcome to the Deep Learning Spec…

用python写个控制MicroSIP自动拨号和定时呼叫功能(可用在小型酒店叫醒服务)MicroSIP定时拨号

首先直接上结果吧,MicroSIP 助手,控制MicroSIP自动拨号,定时呼叫的非常实用小工具! 在使用MicroSIP 助手之前,我们需要了解MicroSIP是什么,MicroSIP是一个SIP拨号软件,支持注册任意SIP平台实现拨…

详细解读jmeter如何做接口测试

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号【互联网杂货铺】,回复 1 ,免费获取软件测试全套资料,资料在手,涨薪更快 Jmeter介绍&测试准备: Jmeter介绍:…

Offline: Overcoming Model Bias for Robust Offline Deep Reinforcement Learning

EAAI 2023 paper Intro model-free的离线强化学习由于价值函数估计问题存在训练的稳定性以及鲁棒性较低。本文提出基于模型的方法,同构构建稳定的动力学模型帮助策略的稳定训练。 method 本文基于模型的方法,所构造的转移模型输入状态动作&#xff0…

使用OpenCV实现图像平移

使用OpenCV实现图像平移 程序流程效果代码 程序流程 读取图像并获取其高度、宽度和通道数。定义平移量tx和ty,并创建平移矩阵M。使用cv2.warpAffine函数对图像进行仿射变换(平移),得到平移后的图像。显示平移后的图像。等待用户按…

【qt】设计器实现界面

设计器实现界面 一.总体思路二.具体操作1.创建项目2.粗略拖放3.水平布局4.垂直布局5.修改名字6.转到槽7.实现槽函数 一.总体思路 二.具体操作 1.创建项目 这次咱们一定要勾选Generate form哦。 因为我们要使用设计器进行拖放。 2.粗略拖放 这里用到了复选框:C…

异构图神经网络代码详解与实战

相关代码地址见文末 1.数据读取 数据采用的是电影推荐的数据集,movies.csv文件存储为电影及其题材。 ratings.csv下存储为用户对电影的评分。 数据集的读取流程为: 首先,读取movies.csv并将题材根据词的出现,转换为one-hot编码的形式读取ratings.csv,将movie_id和…

【C语言—猜数字小游戏】

一、游戏规则 电脑自动生成一个1~100范围内的随机数,由玩家猜测本轮生成的随机数是什么,系统根据玩家猜测数据的⼤⼩给出猜⼤了或猜⼩了的反馈,直到玩家猜对,游戏结束。 如何生成随机数:【C语言】/*如何生成随机值*/-C…