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.
Bookmarks