How many simultaneous video encoding/streaming tasks can run on a GPU instance?
I want to do ffmpeg video encoding on a GPU instance. How many can I do at once?
The short answer is: it depends :)
There are multiple variables that go into determining how much a server can handle. This type of question applies to everything from "how much web traffic can a 2gb Linode handle?" to non-Linode questions like "how much milage can I get on a tank of gas?" With video streaming specifically, the number of simultaneous streams that are possible will depend on the following factors.
Quality and File Size
Video streaming, at its core, relies on UDP traffic and can tolerate some loss without losing the integrity of the data. Depending on the quality and resolution you want the output to be, you have the ability to change this factor to put less load on your server - thus opening up the option for more simultaneous streams at the cost of quality.
Type of Storage
If you are storing video content on your Linode itself, you have less variables to compete with. Your server will only need to fetch data from itself and stream the video to the end user, whereas if the video was stored elsewhere on the Internet, the server would need to use more power and resources to fetch the video first. The second method opens the door for additional resource contention issues along with internet traffic problems, as there are more "stops along the way."
Size of the Video
Depending on how long the video is, what the original quality is, and whether it needs to be encoded to a different format, the processing power required for each video can be very different.
Power of the Linode - GPU Video Streaming
The processing capability of the Linode itself also comes into play. For example, let's look at a Linode GPU Instance. Encoding videos, or converting them to another format to be viewed on a different device/tool, is a resource-intensive task that is much faster when done on a server made for resource-intensive tasks. However, the previously mentioned variables still stand, and it is very difficult to say how many video encoding or streaming tasks could run simultaneously on a GPU instance. The best way to find out would be to start up some tasks on your server and keep an eye on the load.