When creating a live encoding with Bitmovin you have the option of configuring the encoding with both a main and a backup ingest feed available for RTMP and SRT (main and backup is not supported for ZIXI, however it should be possible to build resilience into the Zixi Broadcaster upstream of the Live Encoder).
This will have the effect that even if you experience a dropout on your main ingest feed (or backup ingest feed) the live stream will continue to play client side.
But how does it look with a real example? Please watch the following video where dropouts on both main and backup feeds are simulated.
Highlights from the video:
- 00:02: Creating the live encoding with main and backup ingest
- 01:30: Starting main and backup ingest feeds
- 01:56: Main and backup ingest feeds running - waiting for live stream to play
- 02:29: Live stream started and playing from main ingest feed
- 03:25: Turning off main ingest feed - live stream will automatically failover to backup ingest feed
- 03:45: Failover to backup ingest feed
- 04:46: Turning back on main ingest feed (live stream continues from backup ingest feed)
- 05:55: Turning off backup ingest feed - live stream will automatically failover to main ingest feed
- 06:15: Failover to main ingest feed
- 07:16: Turning of ingest and shutting down live encoding
FFMPEG command used to ingest RTMP:
ffmpeg -re -i "udp://233.0.14.137:1234?overrun_nonfatal=1&fifo_size=50000000" -vf drawtext="fontfile=monofonto.ttf: fontsize=96: box=1: boxcolor=black@0.75: boxborderw=5: fontcolor=white: x=(w-text_w)/2: y=((h-text_h)/2)+((h-text_h)/4): text='Primary - %{gmtime\:%H\\\\\:%M\\\\\:%S}'" -vcodec libx264 -preset ultrafast -b:v 8000k -acodec aac -f flv rtmp://ip-address/live/livestream