EpochSegmentSync: Inter-Encoder Synchronisation for Adaptive Bit-Rate Streaming Head-ends

February 2022
ABSTRACT

ABSTRACT

This paper presents EpochSegmentSynch, an approach for Inter- Encoder synchronization. It is a robust way to achieve synchronization between distributed live adaptive streaming encoders. The approach does not require a direct communication path between adaptive streaming encoders and supports seamless failover and recovery. Each encoder uses a common time anchor and generates segments with constant durations. By estimating the number of segments K since the anchor, aligned segment boundaries are calculated at distributed encoders. EpochSegmentSynch supports the case when encoders may join or leave a session at any time or may fail and start again at any time. It works in setups without strict system clock-synchronization such as in the common case when up to 100 ms clock skew exists. EpochSegmentSynch can be applied to different use cases, it can be used to synchronize the output of distributed encoders generating parts of a bit-rate ladder, or to synchronize tracks generated by different processes on the same encoder. The approach is implemented in an open-source implementation using the popular FFmpeg encoding tool library and the DASH-IF Live media ingest protocol. The distributed workflow is deployed with multiple encoders and a streaming server using docker-containers. These can be stopped and re-started to emulate failovers. The encoders use a use a synthetically generated test signal with color bars and a clock overlay allowing one to inspect visual and timeline discontinuities perceptually. In a realistic setup an additional timeline conversion step between the input timing e.g. MPEG-TS and the adaptive streaming timeline would need to be implemented. The paper provides some details on how this can be achieved. In the use case of redundant dual ingest with encoders failing and restarting, playback is observed as seamless. In the case, when distributed encoders are producing parts of the bit-rate ladder switching is also seamless. In both cases the live archive stored at the streaming server is observed to be continuous. Last, we detail how more complex cases such as non-integer frame-rates or splice- point insertions can be handled.