DEV Community

Doug Sillars for api.video

Posted on • Originally published at api.video on

So you want to build a video streaming service

Video content is coming to your app. Whether you like it or not, your customers are looking to consume video content, and you’ll soon be asked what it will take to add video (and of course, the timeline will be 'yesterday'). Maybe it will be professionally produced and edited video, or perhaps user generated content directly uploaded from smartphones. Either way, in order to add video to your app, you’ll need a way to stream video to your users.

Why streaming?

The videos uploaded to your new service are going to be uploaded in potentially many different formats & sizes. For standarised delivery on all devices, you’ll have to re-encode them to your ‘standard’ format and size (which *you* get to define). As long as you are re-encoding every video, you should consider streaming with several different sizes and bitrates. This is how to properly deliver responsive video, meaning that the video is properly sized to every screen (and can run on any speed network).

Building the service

Sure, a video streaming service is something you can build internally. But before you start dedicating resources, provisioning servers, and writing code, let’s walk through some of the aspects of a streaming service that you’ll need to maintain and keep running in good working order.

  • Storage: Videos are big. You’ll need a lot of storage, and you’ll need to constantly monitor and grow your video storage resources.
  • Transcoding: Videos will come at you in all sorts of formats, qualities, resolutions - and for them to playback to all of your users - you’ll want to determine the optimal video formats, resolutions, bitrates and sizes - and then reencode all your videos to meet those specs.
  • Delivery: Depending on your apps reach, you’ll want multiple locations around the world for the videos to be hosted. You’ll also want a Global CDN to cache content on the network edge.
  • Playback: If you have a video stream - you’ll need a JavaScript player for all your viewers on the web.
  • Analytics: Which videos are popular with your viewers? How are people watching your video? Are they skipping? You’ll want to integrate an analytics package to track all of the video viewing.

Ok, There’s a lot to unpack there, and we haven't even gotten into security, infrastructure creation/monitoring/deployment, or talked about the engineering resources you’ll need hire (or pull from other projects) to maintain it all. If you build this yourself, you'll probably have to lean on 2-3 different third parties to tie everything together into one service.

Alternatives

We’re api.video. We are an api-first, developer centered toolchain that abstracts all this complexity from your video service. Just upload your videos (or have your customers upload their videos) into our service, and we will handle all the heavy lifting - transcoding, storing and delivering all of your video content through our datacenters and our global CDN. We’ll also give you a URL for each video - easily embeddable on the web - and we’ll provide analytics on every play. We'll pull all the creation, maintenance and monitoring off of your development team, AND we're confident that we'll still be less expensive than your favourite cloud provider.

Conclusion

Sure - you can build your own video streaming service. But, do you have to? Do you want to dedicate critical technical resources to support video, pulling them off of other essential projects? If you are considering adding video (whether a small or a huge amount of video) try out api.video. We’ll simplify the entire process, give your users high quality streaming video worldwide and we’ll even save you money from using popular cloud services.

Top comments (0)