Transcoding advice for multiple live-streams

Hi, I’m planning out a system that will be ingesting h265 live streams from a number of RTSP/RTP sources and transcoding to h264, and maybe (depending on cost) producing a few different bitrate / resolution variants for each one. There’s no relationship or syncing needed between the streams, they’re all completely independent.

This will be running on an EC2 instance so I can choose number of vCPUs and GPU options.

I’m trying to work out if I should be looking to use GPU. I found this link doing some benchmarking, but that is batch-processing not live-streams (it’s also using ffmpeg, but I assume this is a somewhat transferable result). This would only be cost effective I think if I can have one GPU handling multiple live streams.

I plan to carry out some testing, but before starting does anyone have any pointers on direction?

Can I just start up multiple Gstreamer applications all sharing one GPU, or some other approach?

Reporting back here in case anyone ever stumbles across this and is in a similar situation:

  1. Yes you can attach many independent GStreamer processes to one GPU. I don’t know why I had an idea that you can only attach one at time, but this just isn’t the case.
  2. And yes, it does seem that at least in EC2, GPU instances will be significantly more cost effective that CPU-based transcoding (assuming you have enough work to do to fully utilise one of the smaller GPU instances).