aquarat
New Member
Hi
I've been using a SlingStudio system, which apears to be a locked-down Linux box with a bunch of ARM-based HDMI->H.264 video encoders which attach to cameras. The system works well but it's very restrictive.
I've been trying to replicate the SlingStudio system using OBS. The video sources I'm using are the SlingStudio itself (via RTMP) and several Raspberry Pis with HDMI inputs.
I'm using an NginX docker image (with recording enabled) to act as an intermediary between OBS and the my video sources. All video sources are RTMP.
My process for the Pi-based encoders is: Camera -> HDMI -> CSI -> Raw H.264 -> FFMPEG RTMP -> TCP/IP -> NGinX -> OBS
I've been trying different GOP sizes on the Pi's hardware, currently the delay is around 300ms for a 20 mbit/sec HD stream. The streams are reliable and run for hours on end without issue. I have tons of Pis and the HDMI bridge breakout boards are around $29, so this is a very cheap solution for me.
The streams are, unfortunately, out of sync by a variable amount. The difference between stream syncing appears to be established at the start of the streams but doesn't noticeably change for several hours. This means that currently I can apply the delay filter in OBS on a per stream basis to manually sync up the streams and they then remain synced for several hours.
I'm wondering if there's any way to get OBS to automatically sync the streams, perhaps using timecode? Or a different protocol? I've tried generating timestamps in ffmpeg using -fflags +genpts and use wall clock as timestamps, but this has no effect in OBS.
Can anyone suggest anything? I suspect this is a complex problem...
I've been using a SlingStudio system, which apears to be a locked-down Linux box with a bunch of ARM-based HDMI->H.264 video encoders which attach to cameras. The system works well but it's very restrictive.
I've been trying to replicate the SlingStudio system using OBS. The video sources I'm using are the SlingStudio itself (via RTMP) and several Raspberry Pis with HDMI inputs.
I'm using an NginX docker image (with recording enabled) to act as an intermediary between OBS and the my video sources. All video sources are RTMP.
My process for the Pi-based encoders is: Camera -> HDMI -> CSI -> Raw H.264 -> FFMPEG RTMP -> TCP/IP -> NGinX -> OBS
I've been trying different GOP sizes on the Pi's hardware, currently the delay is around 300ms for a 20 mbit/sec HD stream. The streams are reliable and run for hours on end without issue. I have tons of Pis and the HDMI bridge breakout boards are around $29, so this is a very cheap solution for me.
The streams are, unfortunately, out of sync by a variable amount. The difference between stream syncing appears to be established at the start of the streams but doesn't noticeably change for several hours. This means that currently I can apply the delay filter in OBS on a per stream basis to manually sync up the streams and they then remain synced for several hours.
I'm wondering if there's any way to get OBS to automatically sync the streams, perhaps using timecode? Or a different protocol? I've tried generating timestamps in ffmpeg using -fflags +genpts and use wall clock as timestamps, but this has no effect in OBS.
Can anyone suggest anything? I suspect this is a complex problem...