Efficient tools to build your streaming infrastructure
Synchronizing streams by timecodes
Multi-camera production requires all streams to be in sync
Remote production often uses multiple cameras and encoders. Each camera delivers the stream with its own delay relative to other sources. So when they are combined together, the same object is shown at a different point in time from different angles. Thus all sources must be synchronized in a single time scale before being used further.
An industry-proven solution for this problem requires the following approach on both sender and receiver sides.
All sources are set to use the same reference time, e.g. use the same NTP server.
Each source inserts SEI timecode metadata into the content frames.
Media server is set to have a certain delay for frames alignment.
Server takes SEI timecode of each received frame and puts it on hold.
All frames with the same SEI timecode are then sent out at the same time.
This approach allows getting all frames from different sources and align then with each other by absolute time scale. You can find more details in Nimble Streamer setup article mentioned below.
Larix Broadcaster live streaming free app allows inserting SEI timecode metadata into SRT, RTMP and RTSP.
Nimble Streamer
Nimble Streamer may process SEI metadata from any incoming H.264/AVC and H.265/HEVC content via any supported procotol. It can forward the SEI and also use it for synchronization. Nimble Live Transcoder is used for those operations.
This video shows the setup of Makito X4 encoder with SEI metadata to send streams to Nimble Streamer via SRT. Nimble then produces NDI outputs perfectly in sync with each other.
SEI metadata insertion is available in Larix Broadcaster for SRT, RTMP and RTSP as part of Larix Premium in-app subscription avialable for just $9.99/m.
Larix Broadcaster allows using NTP server and inserting SEI timecode metadata into outgoing live streams. Use Advanced menu to enable SEI and specify NTP server.
Watch this video showing how to make time sync of live streams published from Larix Broadcaster via RTMP and SRT with NTP SEI. As an output, Nimble Streamer produces synchronized NDI streams.