Results 1 to 6 of 6

Thread: Handling frame sync in multi-source environments

  1. #1
    Registered User pixelplow's Avatar
    Join Date
    Aug 2014
    Location
    USA
    Posts
    21

    Handling frame sync in multi-source environments

    My company is building a switcher app that affords NDI inputs and outputs, among other types. We'd like to lean more heavily on NDI, but I have a dilemma with syncing multiple input sources. Our test input sources, thus far, are Magewell HDMI-to-NDI conversion boxes, the Sienna iPhone apps, and Scan Converter instances. I've noticed occasional differences in processing latencies between those sources, usually of only a frame or two at 30p. I know NDI has the notion of timestamping and timecode, but how does this realistically work in a multi-source environment?

    It would seem that timestamping isn't at all useful as a cross-device sync mechanism unless every output source somehow derived its clocking from the same source. It's unclear to me how each of my test devices would come up with a time with which to stamp on output frames. Is it just their system clock, which is used to derive the Unix epoch time at the point of frame creation? If so, that seems fragile at best. Does NDI have a mechanism for centralized time signal distribution to overcome this problem? You know, a more traditional timecode-kind-of-thing? I'd hoped that was part of the Discovery server, but that doesn't appear to be the case.

  2. #2
    Registered User pixelplow's Avatar
    Join Date
    Aug 2014
    Location
    USA
    Posts
    21
    Nobody knows how NDI handles this? Interesting. Seems like it would be kind of fundamental in terms of being a requirement, especially for larger scale NDI deployments. Maybe I found the Achilles heel of NDI?

  3. #3
    In the TriCaster products there are video and audio sync options available on a per input basis so that you can time sources together that have dissimilar latency. This isn't just for NDI, but any kind of input, it will let you adjust SDI sources as well.
    Kane Peterson
    Solutions Architect
    NewTek, Inc.

  4. #4
    Registered User
    Join Date
    Aug 2015
    Location
    london
    Posts
    292
    Quote Originally Posted by pixelplow View Post
    Nobody knows how NDI handles this? Interesting. Seems like it would be kind of fundamental in terms of being a requirement, especially for larger scale NDI deployments. Maybe I found the Achilles heel of NDI?
    If you are really that concerned you can use NTP or PTPv2 to synchronise all the clocks of the devices (if they support adjustment of their system clock - clearly some devices may not).
    Then all your NDI Timestamps would be based on a common origin.

  5. #5
    Registered User pixelplow's Avatar
    Join Date
    Aug 2014
    Location
    USA
    Posts
    21
    Quote Originally Posted by livepad View Post
    If you are really that concerned you can use NTP or PTPv2 to synchronise all the clocks of the devices (if they support adjustment of their system clock - clearly some devices may not).
    Then all your NDI Timestamps would be based on a common origin.
    Yeah, I found a reference late yesterday that said "devices" can use NTP to sync their internal clocks, which is used by NDI to generate timestamps. That was on a bit of marketing literature from 2015. Seems like this kind of information should be more obvious in documentation somewhere. Certainly would be good for Newtek to document what the protocol expects, or at least how their implementations of it work.

    I'm pursuing Magewell to get them to add NTP sync to their firmware. At present, there isn't any ability to set date or time to anything on the Pro Convert's.

  6. #6
    Registered User pixelplow's Avatar
    Join Date
    Aug 2014
    Location
    USA
    Posts
    21
    Quote Originally Posted by kanep View Post
    In the TriCaster products there are video and audio sync options available on a per input basis so that you can time sources together that have dissimilar latency. This isn't just for NDI, but any kind of input, it will let you adjust SDI sources as well.
    Yeah, that's what we are building into our video switcher product. That intelligence needs to be driven by information, though, from each source. Many of these sources have variable latency on each launch of a listener receiving an NDI stream from them. Manually-defined, fixed latencies clearly aren't an option in that environment. Hence, while our switcher can also delay individual incoming streams, we'd have to know how much to delay each one every time the stream was instantiated. You can only do that when the timestamping that is happening on every device is based on a fixed, common reference point.

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •