Live encoding - failover between main and backup ingest feed

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, SRT and ZIXI).

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

1 Like

super cool @peder.borg. To confirm. You’re just using ffmpeg to simulate input from two different encoders correct? In the normal implementation we’d expect a customer to run 2x ingest streams and no-need for an FFMPEG layer.

@Adrian Fully correct. FFMPEG only simulates a live input stream to the Bitmovin Live Encoder. In a real-world scenario, you would typically have two encoders on-site/venue providing redundant ingest streaming to Bitmovin Live Encoder. This would secure failover, and make sure that your live stream continues playback for end-users.