V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
chowdpa02k413
V2EX  ›  问与答

2023 年,个人用户用 OBS 进行异地推流多机位直播可靠的方案是什么?

  •  
  •   chowdpa02k413 · 289 天前 · 1161 次点击
    这是一个创建于 289 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求

    是这样的,本人接手了一个爱好者之间的 Apex Lengends 比赛直播的委托,我作为主台 OB 观赛。

    上一次我办类似直播活动是常规手段,所有人看我的电脑,然后解说呆在一个开黑频道,看各自的观赛位。

    我们是怎么协调要看哪一个队伍的视角呢?纯靠讲,某一个解说发现了亮点,他就会在开黑频道里提醒大家,现在我们视角转到 XXX 队伍,然后包括我在内的所有解说立马打开 M 键地图找队伍位置,然后跳转过去。

    这是最原始最省事的方法,但这种操作方式终归还是会带来大概 2-3s 的延迟,难以捕捉到最即时的对战画面。

    因此,我在寻求一个个人用户能够搭建的,类似正规赛事的多机位导播台,让所有的解说都把他们的电脑画面集中推流到我这里,然后让我来负责画面切换,这样相比在游戏里找队伍会更加及时。

    条件

    目前来讲,我这边的相关条件有:

    1. 一台上海的 2 核 4G 4Mbps 轻量服务器,目前主要作用是用来跑 Zerotier Moon ,也搭建了 OSSRS
    2. 有 Zerotier 内网
    3. 主台 RTX3090 的推流机器,电信 1000Mbps/50Mbps 带宽,有 IPV6
    4. 有一个国内域名,但是备案时间已经来不及了,唉,备案
    5. 如果有条件我可以租用新的高带宽服务器

    目标

    寻求一个方案,能使得其它用户的 OBS 输出画面能以尽可能低的延迟传输到我这里来

    解决方案

    目前找寻到的主要方案(抛开那些乐色闭源软件)主要有两个派别:

    • 低延迟服务器中转推流:搭建一个类似 OSSRS 的后台,目前可用的项目有OSSRSBroadcast Box,他们基本上原理类似,需要让用户推流到中转服务器上,然后由我通过 WebRTC 协议拉流获得用户的画面。

      优点:WebRTC 协议延迟非常低,操作对推流用户友好,只需要换个推流地址(可能顺便要换个客户端

      缺点:WebRTC 的推流强制要求 HTTPS,导致海内中转服务器虽然效果好,但因为备案问题难以实施;而海外 WebRTC 中转服务器可以打通链路,但延迟情况不明(一旦有部分用户的 NAT 状况太差没办法走 WebRTC 的 P2P ,我猜可能会回落到中转模式?或者根本无法连接,总之海外方案的可靠性未知,我对 WebRTC 协议的细节不是非常了解)

    • NDI 模式:走OBS-ndi的组网协议,让其它用户通过内网穿透异地组网的方法与我构建成一个 NDI 网络,我直接通过 NDI 获得他们的画面。

      优点:成熟方案对我来说省事,并且据称 NDI 的延迟效果也有毫秒级,因为面向的是专业视频工作流所以画质很好

      缺点:对用户来说组网复杂,我要手把手引导他们一个个安装 NDI 插件、加入 Zerotier 网络和 Moon

    两种方案的优缺点都挺明显的,我在寻求更优的方案,或者针对这些方案问题的解决方法,有 V 友有相关的经验或者思路吗?

    第 1 条附言  ·  289 天前
    NDI 方案经测试 1080P60 消耗带宽达到惊人的 150Mbps ,不愧是专业级方案
    所以家宽远程根本行不通,NDI 方案宣告破产,接下来着重还是攻克低延迟推流转播相关方法吧。。。
    12 条回复    2023-08-21 16:13:33 +08:00
    kkocdko
        1
    kkocdko  
       289 天前
    你这个问题比较复杂,很多地方我不了解,但是我可能可以提供一点帮助:

    > WebRTC 的推流强制要求 HTTPS ,导致海内中转服务器虽然效果好,但因为备案问题难以实施

    ZeroSSL 可以给裸 IP 申请证书,无需域名,这样就不一定需要备案了。我也不喜欢备案,所以我个人的服务器就是这样提供 HTTPS 服务的。

    https://zerossl.com
    churchill
        2
    churchill  
       289 天前
    WebRTC 网关最优解?
    可以用第三方啊,腾讯 TRTC 之类,应该是最省事的
    swulling
        3
    swulling  
       289 天前 via iPhone
    非备案也可以用 443 以外的端口提供 https 。域名证书啥都没问题。
    1423
        4
    1423  
       289 天前
    https://www.bilibili.com/video/BV1AT411N7t3
    试了下 NDI 似乎对网络和显卡要求都挺高
    Mac 的支持也是次一级的,好多 APP 不提供

    要不试试 parsec 传递视频画面,本地 OBS 捕捉?
    bobryjosin
        5
    bobryjosin  
       289 天前 via Android
    走 rtmp 不需要证书,内网搭转发服务器,客户端 obs 走 ipv6 推到 rtmp 服务器,没 v6 走公网服务器转发或者打洞,最后主机 obs 把流拉回来就行了,1080p60 需要 20-30Mbps 的带宽观感就还算可以了,拉流延迟大概 2-3s ,虽然很野鸡,但是这个方法我用过能接受。
    chowdpa02k413
        6
    chowdpa02k413  
    OP
       288 天前
    @bobryjosin
    嗯,经过我的摸索和调优之后基本确定走 rtmp 中转,今天晚上简单测试了一下 OSSRS 。

    我的 OSSRS 搭建在本机 A ,使用了相当多 LowLatency 相关的配置,分机位 B 与主机位 A 在同一个 LAN 下,B 向 A 的 Zerotier 地址进行推流,编码用配置 fast+微调 zerolatency ,最后本机 A 从 localhost 拉流,全链路延迟在 1s 左右。

    现在在思考,把 OSSRS 部署到我的机器上肯定是最省钱省事的,但是就算是 Zerotier 也有搞不定的 NAT ,目前几个副机位在国内的位置未知,当 Zerotier 没法穿透回落到转发模式时,我上海的轻量服务器带宽只有 4M ,会爆炸

    要么就买一个月高带宽服务器,找淘宝那种二流服务器卖家买个自称“BGP 五线”的机子一个月,把 OSSRS 搭在服务器上,这样不确定性会大大降低,大家也方便,就是带宽要按计算器,一个人推 10000 码我就要至少 40Mbps 的线路,并且理论上来说延迟会高一点点,等主办方愿意给我钱我再试验好了
    fc13
        7
    fc13  
       260 天前 via Android
    楼主可以加好友聊下不,我是第一届 Apex 城市赛的导演(职称而已)。我也是自己摸索出了一整套完整的多 ob-多导播-多解说的在线大型电子竞技直播转播流程,具体的内容我打算在最近花时间去做 b 站视频来推广我的这个方案,但对于很多内容我也是萌新,可以的话希望多跟志同道合的人去聊,共同学习
    fc13
        8
    fc13  
       260 天前 via Android
    另外我打算即将启动另一项大型高校赛事的筹划 可以的话阔以一起来!
    chowdpa02k413
        9
    chowdpa02k413  
    OP
       259 天前
    @fc13 QQ NjAzMjI4ODgz
    fc13
        10
    fc13  
       254 天前 via Android
    @chowdpa02k413 似乎你的账号没法通过搜索添加 。要不你来 kook 频道 29511081 ,管理员 fc13 那个是我,我暂时的方案是直接用的腾讯云的服务,很简单,能满足基本的比赛直播方案。不是很经常上 v 站,回得比较慢抱歉啊。
    chowdpa02k413
        11
    chowdpa02k413  
    OP
       253 天前
    @fc13 因为前阵子在群里 ghs 被封了 7 天现在还没解开😆所以 QQ 可能这段时间搜不到
    fc13
        12
    fc13  
       253 天前 via Android
    @chowdpa02k413 xs 好好好
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2594 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 11:15 · PVG 19:15 · LAX 04:15 · JFK 07:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.