使用OBS和Nginx更改rtmp流的滞后和抖动

问题描述 投票:0回答:1

我有一个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时,它都会改变!

然后,当我最终设法同步流(幸运镜头)时,还[[while流时,它们进入和脱离同步(抖动)。仅在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是
  • stream key
我正在将Larix流式传输到rtmp://10.0.0.1/live/larix(larix是
  • stream key
  • 请帮助我解决OBS中的抖动和延迟更改!谢谢。


    更新,因为我正试图解决不断变化的

    startup

    滞后:
      我尝试将chunk_size设置为2048,但这无济于事。
    • 当我添加时:wait_key on;我从没能在OBS中显示该视频流。
  • 有什么想法吗?
  • nginx video-streaming rtmp obs
    1个回答
    0
    投票
    我来自Larix Broadcaster背后的Softvelum团队。

    我建议将“关键帧频率”更改为1秒,并将“最大缓冲区项目”设置为70。您可以从本页https://softvelum.com/larix/faq/中阅读Q13,以进一步了解此设置。至于“捕获”同步,如果您在关键帧开始时开始流式传输,则会发生这种情况。如果您的缓冲区中有300个项目-这大约需要3秒,那么您就可以进入中间位置,并比实时时间落后1.5-2秒。

    尝试使用缓冲区和关键帧以了解其工作原理。

    © www.soinside.com 2019 - 2024. All rights reserved.