I'm currently developing a video app that enables it's users to upload and stream videos from the app. Knowing fully well that videos are resource intensive, I am stuck on deciding a cost effective and efficient way of storing and streaming the videos. So far so good, below are my options:
Host server app, store and stream video from a VPS or Dedicated Cloud Server. With this option, I think I will be faced with the challenge of server disk space and bandwidth as video storage and streaming increases. I think(not sure) some hosting firms sell additional disk space and bandwidth. But if true, won't it fall on the expensive side?
Host server app on VPS, store and stream from cloud storage (e.g Amazon S3). From my assumption, I am thinking this option will be cost friendlier than the above option as cloud storage like Amazon S3 will only require me to pay for storage and bandwidth used. With this option, I am thinking it will work by first uploading the video file to the server app on VPS or Dedicated Cloud Server and then move it to the Amazon S3 storage. Now, what I'm not sure of is if it is advisable or a good practise to stream from Amazon S3 URL or is there a way to route the streaming through the app server as if the file is stored on the app server.
Need advise on which of the above option isa better and If there is a more cost effective solution apart from the above options, please do not hesitate to advise.