Server setup for an ffmpeg rendering and video streaming server
I am developing a website which enables users to make video slideshows. After rendering the videos, the videos will be available to view on the same website. The question I have is what kind of hosting would i need for such a website? Would I need to have a separate server for the video rendering component or is it sufficient to have the rendering and streaming occur on the same server? Would I need a dedicated server or is a VPS sufficient? Or would it be better to use cloud based rendering, leaving the dedicated server free for streaming?
I am sure you are going to ask how many concurrent users are expected to use the website. At this point I am not certain.
A lot depends on the volume of incoming videos. A VPS or cloud solution for rendering will be more scalable while keeping costs down. As video encoding is cpu intensive, you'd be best to isolate it from other site functionality for consistency (though you can have queuing and encoding priority processes that can mitigate overload to a certain extent). Another option for encoding is to use a third party encoding service such as heywatch where you pay a small unit cost per file processed. You can also use cloud services to stream, but bandwidth is a lot more expensive than what you'll get on a VPS or dedicated server.