How to Relive?

florolf

VOC geekend

2018-10-05

What is Relive?

  • Automate dumping streams into HLS
    • VDR mode while event is in progress
    • VOD until release is done
    • Unintentional backups
  • Could be done using larger DASH/HLS fragment backlog
    • We want event awareness
    • We want to steer users towards releases

Architecture

Previously

  • Parse HLS generated by nginx-rtmp, copy fragments
    • Relatively complex
  • Had to run on CDN master
  • "hls" ​mode

Now

  • icedist mode
  • Spawns ffmpeg
    • Connects to icedist
    • Dumps HLS
  • Can run anywhere
    • Typically still runs on CDN master

VOC setup

  • Runs as user relive on live.ber
  • Pulls from icedist on live.ber
  • Stores fragments to /video/relive
    • No automatic cleanup!

(small events)

Setting up Relive for your event

1. Create configuration

  • There's a README!
  • Configs live in ~/relive/git/configs/
  • Name file after your event acronym
    • Not mandatory, but I'll be sad if you don't
  • Either
    • Take a recent config as a sample
    • Use gen_event_config.py to autogenerate from streaming WS

1. Create configuration

Note:

  • Cronjobs check that directory
    • Ideally, only put the file there once you want stuff to happen
  • Clean up old configs (move to old/) while you're at it
    • Won't delete data, but reduces job churn

1. Create configuration

Note:

  • Media conference ID is used to poll "released" status for talks
    • This is a number

2. Validate cronjobs

  • schedule.xml and (optionally) media-events should pop up in data/project-name/ after a bit
  • An empty array should appear in /video/relive/project-name/index.json

 

  • Running jobs manually to debug is safe, see crontab -l -u relive
    • Also works if you're impatient

3. Launch scheduler

./launcher.sh project-name

 

  • Should list room mappings and next events
  • Check for plausibility

4. Set up steaming WS

  • Just pointing RELIVE_JSON to the appropriate place should be enough
  • Website will force-refresh indices on rollout

\o/

Future

  • It's too complex (hence this talk)
    • Pulls together multiple distinct systems
    • slightly too UNIXy
  • Autoconfiguration / autolaunching?
  • DASH integration?

Thanks

Questions?

Made with Slides.com