microservices in SVP Ingest

what is ingest system?

VOD videos

encoding/transcoding

multi bitrate streaming

publishing

video archive

how it was done before?

2 and more years ago

  • developed by Aptoma
  • synchronized encoding
  • slow (avg 2x duration of video)
  • x264 with ffmpeg - static presets

1 year ago and now

  • async encoding
  • static assignment (server-file) 
  • x264 episode engine - static presets
  • queues support (ee)

what we used?

Communication

 

Rabbit MQ

Video Encoding

 

x264 + ffmpeg
x264 + episode engine
VCE 2.0
NVENC

Other tools

  • ImageMagic
  • ffprobe / mediainfo
  • chef

Hardware
4x macPro

 

12 cores 3Ghz

32GB ram
FirePro D500
SAN / Thunderbolt storage
PCIe memory

list of microservices

video uploader

  • HTTP partial upload
  • ftp upload
  • rsync

video validator

  • ffprobe/mediainfo

thumbnails generator

  • imagemagic (montage)
  • ffmpeg

poster image generator

  • ffmpeg

video encoder

  • x264 (ffmpeg)
  • x264 (episode engine)
  • x265 (ffmpeg)
  • nvenc (h.264/h.265 hardware)
  • VCE 2.0 (h.264/h.265 hardware)

cdn publisher

  • akamai integration
  • avilo integration
  • own cdn (telenor users)

api publisher

  • svp api integration

workflow

advantages

high scalability

publishing partial encoded streams

impact on qualities (slow/fast encoding)

prioritization in queues

 multi encoders/cdn support

Svp ingest system

By Konrad Pietrzkiewicz