Features

Developers

Common questions about video on demand services

February 9, 2021 - Doug Sillars

api.video is an end-to-end api service for video. Upload your video, and we’ll transcode it into a stream, host it, and also provide a player that you can easily embed into your site for video delivery. In this post, we're going to walk through a number of frequently asked questions we receive in regards to how developers might integrate with our video on demand service.

Most developers are used to creating a full fledged service by connecting several different products (maybe libraries A and B, services C and D) and combining them into the product they actually need. As a result, we are often asked if we can provide just one piece of the video delivery pipeline. In many cases, we CAN provide that one "bit" to do that, but we like to ask questions to see if perhaps using more of our end to end service makes sense.

schematic of the api.video video pipeline.

One common question is whether or not we can just provide video transcoding. This leads to frequently asked question 1:

Q1: Can I just save the mp4 or download the streaming video files?

Of course, this will lead to two possible responses:

I want a mp4

api.video delivers an optimized mp4 at the same size of the uploaded video (max of 1080p). If you upload a 480p video, we’ll optimize it for you, and give you that 480p mp4. mp4 files are great for short videos (and for downloading onto a customer’s machine for local playback), but for longer videos - using mp4s for playback on the web has its disadvantages.

Sometimes, when we are asked if we can deliver multiple mp4 videos (in several sizes). Currently, this is out of scope for us here at api.video, but we like to know why developers want many different mp4 versions:

Can I get many mp4s?

Often, this is done to support multiple devices: mobile devices will be served the smaller 480p or 720p video, while desktop and larger would get 1080p video. This is an admirable approach - but the best way to support multiple sizes of a video is though video streaming. Read on to learn why!

Can I just download the video stream?

When we create a video stream, we create up to 6 different sizes of the video (240p, 260p, 480p, 720p, 1080p and 2160p). On playback, our video player (or any other video player), can choose the correctly sized video for the screen - negating the need for multiple versions of the same mp4 file. Where streaming video provides better performance over a static mp4 file because video streams can adjust playback based on the available network speeds - switching between versions of the video DURING playback, if the network slows down or speeds up.

We can provide the streaming files for you - but, first:

Q2: Where should I host my videos?

Video files are big (even when optimized!). If you self-host your mp4 videos/video streams, your hosting/delivery costs will go up. You might even need more server capacity (further raising your delivery costs). We’ve done the math, and our hosting and delivery costs are cheaper than hosting and delivery through Amazon S3! (Factor in the added advantage of not having dedicated engineering support from your development team, and it becomes an even better value).

We know that cost is often a determining factor in any development endeavour. But, perhaps even more important than cost, if you host your videos at api.video, you’ll have a team of infrastructure engineers who specialize in worldwide video delivery handling your videos. In addition to simply hosting your videos, we provide a fast worldwide CDN - ensuring abundant caching at the edge of the internet, all around the world. This means that your videos will be delivered to your customers quickly with very little latency (and no effort on your part).

This is often a deciding factor - not needing to engage with the backend team, or having to create an entire video delivery infrastructure is a major lift, and greatly simplifies all video delivery.

Speaking of video delivery:

Q3: Which player should I use?

Video streaming requires a player for playback (HLS video is only natively supported in Safari). If you already have a video streaming player, you can simply plug in the HLS manifest from our API, and you’re ready to go.

If you have not yet developed a video player - our API also provides a player url (and an iframe version for the web). This url includes the api.video player and the video - and can be simply plugged into your existing application - no player development required! (You can, of course, customize the player to match the colours and look and feel of your application for free).

Ok, so we've sorted video creation, hosting, delivery and playback. But,

Q4: How should I measure video playback?

If you decide to use the api.video player, we’ll automatically collect analytics on each session (even recording the user, or other unique characteristics). We also know about each interaction with the player - so you know how much of the video each viewer saw.

Conclusion

Once we’ve asked these questions, we often find that the additional services api.video provides are services that the customer requires. They realize that using one end-to-end solution is less complicated, easier and requires less development time than connecting up a service using several providers, one for each feature.

If you have questions about the best ways to build out your video delivery process, please feel free to reach out to us in the api.video community, and we’ll be happy to chat about how our services can best suit your video delivery needs (If you’re sure all you need is our encoding/transocding service, we’ll probably still ask you the questions above - but if that is indeed all that you require - we’ll help deliver exactly the bit that you need.)

Doug Sillars

Head of Developer Relations

Create your free account

Start building with video now