2015-03-25 120 views
8

我正试图建立一个系统,能够将局域网上的其他几台PC的屏幕捕获信息广播出去。如何实时在局域网上广播视频流?

到目前为止,我设法使用rtmp模块在树莓派上安装nginx,并且我可以通过OBS将树莓作为RTMP服务器进行流式处理。我使用VLC观看流。

这是问题所在。进行广播的主要计算机将显示一个计时器,该计时器可以倒计时并可能摄像头馈送,因此将广播延迟保持在最小值(实时?)是理想的。我目前在屏幕和流之间发生了4-6秒的延迟,并且正在寻找进一步减少它的方法。

  • 有没有一种方法可以确定延迟时间有多少是由于编码造成的,以及有多少是由于传输造成的?
  • 我目前正在捕获1080p30并尝试诸如降尺度和尽量减少网络影响等选项无济于事。
  • 我在这个论坛上阅读了有关局域网广播的其他话题,有人提到RTMP不是一个好方法......如果是这样,那么更好的方法是什么?
  • 任何建议,欢迎和赞赏。我最感兴趣的是免费解决方案,因为我没有预算,并且为其他人免费做这些。
  • 我也看过VLC流媒体,但我不想显示电脑的整个屏幕,因为会有观众不必看的控制。 VLC唯一能做的就是指定屏幕的哪一部分进行广播,这似乎不是一个很好的解决方案。我选择了OBS,因为它是唯一可以根据我的知识播放特定窗口的免费广播软件。

感谢提前:)

+0

很难说没有看到你的编码参数。如果你不介意cli [FFmpeg](https://www.ffmpeg.org/)是最好的开源工具之一。 – aergistal 2015-03-25 10:40:06

回答

8

首先,我认为你是正确使用OBS,这是一项伟大的工程,让您捕捉到了很多东西。

如果要优化视频的速度有很多方法可以尝试:

  • 第一种是使用其他的RTMP客户端,VLC是好的,但它使用了太多的缓存,尝试this one例如(只需设置合适的RTMP网址,清除netgroup输入并连接),
  • 然后你可以尝试其他的服务器,我写了一篇关于How to set up your own RTMFP server using MonaServer下面的教程,
  • 最后,你可以修改你的OBS参数(我用的是“ Twitch“参数,这些参数为实时优化)。

对于OBS + MonaServer +我的VideoPlayer我有2秒的延迟,这不是实时的,但已经更好了。

最后一件事,OBS众所周知的RTMP会话增加延迟,我知道这是可能通过修改OBS的源代码,以提高它在这里,但它是一个有点棘手...

我希望它会帮助你!如果您需要更多信息,请与我联系。