如何实时在局域网中广播视频流?

18

我正在尝试建立一个系统,能够将一台电脑的屏幕捕捉广播到局域网上的多台电脑。

到目前为止,我已经在Raspberry Pi上安装了带有rtmp模块的nginx,并且我可以使用Raspberry作为RTMP服务器通过OBS进行流式传输。我使用VLC观看流。

以下是问题所在。主要进行广播的电脑将显示一个倒计时计时器以及可能的相机视频,因此保持广播延迟最小(实时?)将是理想的。目前,我在屏幕上发生的事情和流之间有4-6秒的延迟,并正在寻找进一步减少延迟的方法。

  • 是否有方法确定延迟时间中有多少是由于编码,有多少是由于传输造成的?
  • 我当前正在以1080p30的分辨率捕获,并尝试了降低分辨率和减少网络影响等选项,但效果不佳。
  • 我读过这个论坛上关于LAN广播的其他话题,有人提到RTMP不是一个好的方法......如果是这样,有更好的方法吗?
  • 欢迎并感谢任何建议。我主要对免费解决方案感兴趣,因为我没有预算,而且正在免费为他人进行此操作。
  • 我还了解了VLC流媒体传输,但我不想显示电脑的整个屏幕,因为观看者不需要看到控件。 VLC唯一能够做的就是指定要广播的屏幕部分,这似乎不是很好的解决方案。我选择OBS,因为它是我所知道唯一能够广播特定窗口的免费广播软件。

提前感谢 :)


没有看到您的编码参数,很难说。如果您不介意使用命令行,FFmpeg是目前最好的开源工具之一。 - aergistal
3个回答

11

首先,我认为你选择使用OBS是正确的,这是一个可以捕捉许多内容的伟大项目。

如果你想优化视频速度,有很多方法可以尝试:

对于我来说,使用OBS+MonaServer+我的VideoPlayer,延迟为2秒,虽然不是实时的,但已经很好了。

最后一件事,众所周知,OBS会在RTMP会话上添加延迟,我知道可以通过修改OBS的源代码来改善它,但这有点棘手......

希望这些信息能帮助到你!如果需要更多信息,请联系我。


2

您需要进行压缩和解压缩。您正在使用千兆以太网连接上的全部带宽。如果您的总距离小于15英尺,任何HDMI电缆都可以工作。对于超过15英尺的距离,请确保您获得认证电缆(一些电缆可以在不需要信号放大的情况下运行长达45英尺)。VGA将运行更长的距离,DVI也是如此。

或者,您可以降低到720P并留出足够的带宽来完成任务。


2
使用 NDI。在局域网中,它具有我见过的最低延迟。
这意味着延迟不是以秒计算,而是以毫秒计算。我甚至可以将流式传输到多个屏幕,并且音频仍然同步,据我人耳所能感知。
这是通过以太网电缆实现的。我没有测试过 Wi-Fi,我猜它可能会增加额外的延迟。 https://www.ndi.tv/tools/

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接