0

I'm used to using ffmpeg and stuff to broadcast/do testing.. but I don't understand how iptv servers succeed at having 50+ input streams, making 50+ output streams and sharing them, as I can't even run 3 ffmpeg commands with encoding without having the CPU crying for help...

I've tried to get infos, but except Wowza that seems to do what I'm trying to understand, I don't find any info...

I hope that you can enlight me on understanding how this whole thing works. Also, I'd like to test it out so if you got any recommendations on how to do this, I'll be thankful to you !

1 Answers1

0

Most large streaming services actually will have multiple servers - this is partly due to different function being performed by different servers and also due to performance as you have noted.

There are many different ways you can stitch a service together but it will generally (for live streams) have the following elements:

  • some sort of live encoder which receives the external stream and converts it to a format the rest of the system understand
  • transcoders - these take the inout video and create multiple bit rate versions of it to support Adaptive Bit Rate Streaming (see: https://stackoverflow.com/a/42365034/334402)
  • Packagers - these package the resulting video streams into the required video streaming protocol, usually HLS or MPEG DASH these days. This is typically done 'Just in Time' so only streams and bit rates required are actually packaged. If encryption is required it is typically applied at this point also.
  • Origin server and CDN - the video streams, which actually consist of packets of data making up the ABR video segments, are delivered to an Origin server which is the source for the CDN. The CDN, Content Delivery Network, is alike a large dispersed video cache and it copies the video to the edge of the network to reduce latency when a user request the video.

You can also build this using cloud services rather than installing or spinning up the servers yourself - it might be useful to look at some of the documentation from providers like AWS Media Services or BitMovin.

Whichever way it is done, your initial thoughts are correct - it takes quite a bit of horsepower to server large numbers of video streams.

Mick
  • 24,231
  • 1
  • 54
  • 120