Giter Site home page Giter Site logo

Comments (7)

rf152 avatar rf152 commented on July 29, 2024

That's an interesting question. I'm not too sure how the NDI library handles timestamps, or whether there's a way of putting in a timecode or something. I'm not sure if that would help your issue, though, which seems to be related to latency on the network layer itself. Is there anything else on the gigabit switch other than the cameras and the PC that could be pushing traffic through?

Audio delay is one of the things that I struggle with too. Generally, I think mine stays pretty steady, but it can be a pain.

from raspindi.

rudolfbyker avatar rudolfbyker commented on July 29, 2024

I was hoping that, if the time on the RPI and the time on the PC are perfectly in sync (totally possible with NTP, or even with GPSD) then putting timestamps on the video frames which are offset sufficiently into the future to be much greater than the variance in the network latency (say, 2s) would allow the receiver to buffer it until such time when it's appropriate to use the appropriate frame exactly 2s after it was generated, regardless of network latency. Then I can set my audio delay to exactly 2s and call it a day.

But this is all based on theoretical assumptions of how NDI actually works, so I will have to do some more research.

from raspindi.

rudolfbyker avatar rudolfbyker commented on July 29, 2024

My suspicions are confirmed. This is both possible, and supported. We just need to figure out how to program it. This is from the "Introduction to NDI" PDF document that ships with the SDK:

One huge advantage of NDI 4.5 capture is that all files recorded on a local system use its internal clock to provide frame sync. This means that you can capture multiple sources, even starting their recorders at different intervals, and easily sync them up for post-production using their embedded timecode.

Better still, since the system clocks of multiple systems in different locations can easily be slaved to an online NTP (Network Time Protocol) server, numerous NDI recordings can match up with precision in non-linear editing systems for multi-cam workflows – even when these are captured at different venues!

image

This comment is specifically about syncing recordings, so it does not address capturing side of my problem, since I'm capturing with the OBS-NDI plugin, but the first step is to make sure that the proper timecodes are sent along with the video stream, based on the RPI's system clock (which must be made accurate using NTP).

from raspindi.

rudolfbyker avatar rudolfbyker commented on July 29, 2024

Note to self: Read chapter 14.2 of the SDK documentation on "TIMECODE SYNTHESIS".

from raspindi.

APz avatar APz commented on July 29, 2024

Is there any progress on this? I'm looking into a streaming rig with multiple RPi high quality cameras and this would be the perfect software to run it.

from raspindi.

rudolfbyker avatar rudolfbyker commented on July 29, 2024

I found an interim "good-enough" solution, by setting "latency mode" to "low (experimental)" in the OBS-NDI plugin that I'm using. And then I forgot about this issue for a while. I have not made the time to do the necessary research yet. But it's technically possible according to what I have read thus far.

from raspindi.

github-actions avatar github-actions commented on July 29, 2024

No update to this issue for 30 days. Closing

from raspindi.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.