I'm making a social media app (currently mobile and soon also web) and it concentrates on videos. I've two problems:
1) from the android app, my current design requests for new feeds from a web service --> the server responds with json data that includes the video url and the other feed data (content, date, ... etc) --> then I set the url for the VideoView which will request the video. Now isn't there a better way so that I fetch a full feed with one request (with one request I return the data and the video/audio/image)?
Also after researching online, some say that you use an IntentService to keep fetching new feeds and cash it locally and some say not. what is the best approach for a social network app in the backend.
2) I read online that http streaming is a very bad idea if you expect multiple concurrent requests for the same video/audio (I don't know if this applies for images too), the limit is almost a dozen of requests. how should the backend store and send videos/audio back to the mobile/web app in an efficient way? how does big social network store their data and send back so that the used can have the best experience (I know my app won't have .01% traffic compared to large social media sites, but I'm expecting thousands of users and hundreds of them might request the same video at the same time)? any link for a server (preferably using Java) to do such thing will be appreciated.
so long story short, if someone can help me find a good resource to design a backend for a soical media app, that would be great. and sorry for the long post.
Your approach seems fine if it works for you - you don't need to use the same server for all your content and a typical 'pattern', which may reassure you is:
The reason for separating the video is that the technology for streaming videos is quite specialist and if you really want to support many devices then you actually need multiple versions of your video to support all browser/device and network bandwidth combinations. If you want to get started quickly a good cloud video hosting service will do the hard work for you here and allow your videos appear without any 'YouTube' like branding/ads etc.
If you want to run your own video server then there are open source options like VideoLan and GStreamer or paid versions like Woza: