0

我有一个 MEVO 摄像头,用于通过我的 debian nginx rtmp 服务器将视频流式传输到 OBS。我还有一个 USB 网络摄像头直接连接到我的运行 OBS 的 PC,我通过同一个 nginx rtmp 服务器和一个名为 Larix Broadcaster 的应用程序将视频从我的智能手机流式传输到 OBS。OBS PC的CPU使用率:15%;nginx rtmp 服务器:2%。

MEVO               > nginx-rtmp > OBS
USB webcam                      > OBS
Smartphone (Larix) > nginx-rtmp > OBS

这可行,但流彼此不同步。MEVO 和 OBS 之间有大约 2-5 秒的延迟(Larix 和 OBS 之间也有不同的延迟)。网络摄像头是即时的。我不介意 2 秒的延迟 - 我可以在网络摄像头的 OBS 中设置手动异步延迟,以将其与 MEVO 同步。问题是延迟不一致。每次我开始播放 MEVO 时,它都会发生变化!

然后,当我终于设法同步流时(幸运的镜头),流式传输时它们也会同步进出(抖动)。仅在 100-200ms 范围内,但足以可见。

看着MEVO,我相信它只支持RTMP。所以转向另一个协议对我不起作用。

抖动和延迟变化的原因可能是什么?会不会是网络?MEVO 和 OBS 都在一个快速的 1Gbps 有线网络上。

我尝试将 OBS 中的网络缓冲设置为 1MB、2MB 或其他大小,但没有帮助。我也尝试更改 nginx.conf 中的 buflen,但无济于事。

nginx.conf:

worker_processes  1;

events {
    worker_connections  1024;
}

rtmp {
    server {
        listen 1935;
        chunk_size 4096;
        buflen 1000ms;
        application live {
            live on;
            record off;
            max_connections 20;
        }
    }
}
  • 我正在将 MEVO 流式传输到 rtmp://10.0.0.1/live/mevo(mevo 是流键
  • 我正在将 Larix 流式传输到 rtmp://10.0.0.1/live/larix (larix 是流密钥

请帮我修复 OBS 中的抖动和变化的延迟!谢谢。


在我尝试修复不断变化的启动滞后时进行更新:

  • 我尝试将 chunk_size 设置为 2048,但这没有帮助。
  • 当我添加:wait_key on; 我从来没有让流在OBS中显示。

有任何想法吗?

4

1 回答 1

3

我来自 Larix Broadcaster 背后的 Softvelum 团队。

我建议将“关键帧频率”更改为 1 秒,并将“最大缓冲区项目”设置为 70。您可以从此页面https://softvelum.com/larix/faq/阅读 Q13以了解有关此设置的更多信息。至于“捕捉”同步 - 如果您在关键帧开始附近开始流式传输,就会发生这种情况。如果您在缓冲区中有 300 个项目 - 这大约是 3 秒,因此您可以进入中间并比实时延迟 1.5-2 秒。

尝试使用缓冲区和关键帧来看看它是如何工作的。

于 2020-04-07T05:04:54.807 回答