【问题标题】:Changing lag and jitter of rtmp stream using OBS and nginx使用 OBS 和 nginx 改变 rtmp 流的延迟和抖动
【发布时间】:2020-07-16 02:04:11
【问题描述】:

我有一个 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 中显示。

有什么想法吗?

【问题讨论】:

    标签: nginx video-streaming rtmp obs


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-15
      • 1970-01-01
      • 2017-05-15
      相关资源
      最近更新 更多