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