Video CDN

Video streaming could be difficult. That's why PUSHR is easy.

It would take more than 5 million years to watch the amount of video that will cross global IP networks each month in 2021.

While the trends are obvious and the technology to support this astonishing growth is already here, the raw data does little to help start ups and business owners with their switch to this new era. Traditionally, delivery of video content for the web has been a challenging enough task due to the technical aspects of shooting, post production, encoding and distribution. With myriad of devices on the market, raging from Smartphones to SmartTVs, there has been an ongoing effort in the recent years for standartization of codecs and containers, but we are yet to see all vendors to come to an agreement. As things stand, you could be producing the most amazing video content, but if the intended audience can't play it, your efforts will have no results.

Would you even know?


We already know that nearly 40% of the users of your app, service or website would leave if they are forced to wait for more than 2 seconds for a page to load. It would be safe to assume that the same would happen if they can't get a video to start fast enough or, even worse, if they need to wait for buffering only to be greeted with a playback error. The thing is, that most of these visitors will never report the errors. They would silently close the browser tab or navigate to another website to stream the content without interruptions. You could be sitting on top of your analytics tool of choice, wondering what is wrong, and you would never know, since your iPhone and your Mac could playback the content just the way they should, while devices from other vendors, running different operating systems, may struggle to decode the stream, resulting in artifacts, loss of sound or picture, or even a complete failure of the stream.

It doesn't end there. Even if we could assume that most web browsers, devices and operating systems nowadays could decode a certain video, we should not assume that everyone owns brand new devices. The hardware responsible for the work that these devices do is being developed at an extreme pace, and today if you own a Smart TV or a Smartphone that are 2 years old, you are already using what some consider to be an ancient technology. And this ancient techhnology may, and usually will, fail to playback an otherwise perfectly good MP4 video, just because it has been encoded to a higher profile that these devices did not support just a couple of years ago.

This situation has changed the way we think about the whole process of video production and delivery. Video encoding is now just as important as all other aspects of video creation.

But it's not that easy

For content creators, start ups, mobile developers and businesses this usually means one of two things - either to have someone on board who could guarantee that customers will have a higher chance to view the content with the matching experience, or outsource the encoding part altogether to a service or a thrid party that could do it for them. In the recent years this realisation led to the rise of services offering video encoding in the cloud, promising to fix the issue by handling the encoding process to return a video file that would play nice with web enabled devices. Apart from the fact that these services would often require a developer to automate their use via an API, they would still put the burden on their customers to decide what formats, codecs and stream settings should be used. While it's good to know that someone would take care of the actual process of video preparation, including the hardware needed for this to happen, it doesn't help much when you don't know what settings you should choose, does it?

If that is not enough, there is another issue:

CDNs and Video Encoding services have one thing in common. They cost more than they should.

Traditional CDNs bill you based on traffic. This means that for every byte of data transferred through the CDN's servers you are supposed to pay a certain amount of money. Except for that CDNs themselves don't buy their bandwidth from their providers that way. They buy unmetered bandwidth instead, which, regardless of the way it's being billed, means that no one meters the actual traffic flowing through these internet pipes. Since the pipes themselves do have a physical maximum throughput, there is also a finite maximum of data that could flow through them per second, but even if that finite maximum is being used constantly 24/7, the CDN provider will not incur additional charges by their provider. However, if you do that through the CDN's servers , you would be greeted with an unpleasant bill.

The same goes for cloud video encoding services. The ones that aim to provide a stable service with the processing power needed to match the high expectations for the web video of today will rent or own their physical servers instead of using a third-party's cloud where resources are usually not guaranteed. When they do rent or colocate these servers, they would be billed a fixed amount per month regardless of how they utilise the hardware. Their servers could be encoding 10 videos at once 24/7 or 1 video once per month and this would not change their bill. Unfortunately, when they bill their customers, they will do so based on some metered usage, usually per minute of output, or the number of encoded videos, or the output resolution, citing that some resolutions require more processing power to be encoded within the same short timeframe the customer expects them to be. And while this is true, it doesn't make it any better for the customer.

By now it's probably obvious that if you need to encode only a couple of videos every now and then, and then to deliver them via a CDN to only a handful of customers, traditional CDNs and video encoding services should cut it and would cost a small enough amount of money to even be a consideration. Then again, if you would only need to do this at such a small scale, would you even consider hiring a developer to implement the video encoding service's APIs into your project? Or if you are a startup doing this in-house with your tech team, are you prepeared to scale your expenses as your company grows? Are these solutions still good if you've had 100 media files to encode, with 10000 views on them? What about 100000 views?

Cloud is nice. Metal is nicer.

Among the benefits of the modern clouds are features like high availability, ease of scaling and the perception that if you'd pay only for what you've used, your costs would be ultimately lower than with any other billing model. In an essense, PUSHR's infrastructure is a cloud too. Our in-house failover system can reroute traffic on per server and per datacenter level within 6 seconds of failure detection, and our bandwidth and storage capacities can be scaled virtually infinitely, so that instead of being forced to choose , for example, between 100Mbps and 1Gbps of bandwidth like you do with traditional unmetered services, you could simply pick 300Mbps if that is what you need. If your service would become popular tomorrow and you'd need 500Mbps, simply scale your bandwidth up to 500Mbps. Alternatively, let PUSHR do the scaling for you.

There is an obvious benefit of the cloud-like features, but as with any service, one size rarely fits all. When applied to intensive tasks like video encoding, if these tasks need to be performed often, the cloud becomes expensive and has no real benefit to the customer. We could make a parallel between owning and renting a car. It would be more cost-effective to rent a car than to own one if you'd need it only for a few days per month. But if you used this same rented car every day of the work week to commute to work and back, in the end of the month you'd have paid times more than if you've owned it. Same goes for your video needs - unless you only need to encode a few videos per month, it's wiser and could easily be more cost-effective to rent a dedicated server to do this for you.

Now that we've pin-pointed a few of the issues of today's web video, let's look at how PUSHR aims to solve them.

A CDN with unmetered bandwidth and integrated dedicated servers for video encoding that requires zero knowledge

At PUSHR we mix traditional and cloud billing models to create a solution that remains scalable and performance-oriented but without the expenses and the administration hassle. Our video encoding nodes are integrated transperently into our CDN storage which is available via an API or FTP. Zero knowledge or Googling is required to get your videos to work on more than 95% of the smart devices and browsers produced within the past 5 years. The process is entirely automated via "watch folders", and as soon as a video is being uploaded to any of these folders, PUSHR initiates a transcoding operation and takes on. Once encoded, the new version of the video is returned to a directory of your choice, ready for streaming. Callbacks are supported, so that your app or database can be aware of which video is ready and when. All settings needed to control the process are exposed via your account's dashboard, easily accessible via a point-and-click interface that is easy to understand. Preconfigured presets are available for most use cases so that you don't have to create them yourself.

So the tech side of it has been solved. What about billing?

All video encoding servers integrated in PUSHR's platform offer unlimited video encoding. You can throw any number of videos at them, regardless of their length, and have them encoded in any or all resolutions, and this would never incur any additional costs beyond the fixed monthly price of your encoding server. Which encoder fits your use case depends entirely on the speed at which you need the videos to be encoded. Ranging from an average speed of 5x (5 seconds of input video takes 1 second to be encoded) up to 45x, PUSHR puts you in complete control of how much you spend on video encoding without any restrictions on the encoded content. And since the server(s) are dedicated to your account, you will never wait on a queue for other customers to convert their videos so you could start encoding yours. Clustered encoding solutions are also available for our most demanding customers, with virtually unlimited scalability.

Okay. Content protection?

One of the challenges today is content protection. While we do not take this lightly, our experience shows that if something can be played in a browser, it can also be downloaded as a file via the same browser. Without DRM protection all attempts to make a video impossible to download are nothing more but a cat & mouse game. There are also other implications, as well as a moral side of the story with DRM, but these are out of the scope of this post.

PUSHR offers hotlink protection via secure tokens - a feature that allows apps, websites and services to generate a token, which is then appended to the link for the content that is being protected. These tokens are based on information extracted from the visitor requesting the content, which makes them unique. During the request for access to the protected content, the tokens are checked and if they don't match, access to the content is not granted. However, once access has been granted, the user could download the content without much effort.

We've been debating over the idea to create our own video player which would include various techniques to mask the URL of the content that is being served, with the idea that the more hassle it causes for the URL to be revealed, the less someone would be inclined to spend time on it to find a solution. But that wouldn't solve content theft issues. On the other hand, open source projects like VideoJSAfterGlow Player and others do have a constantly growing communities that work together to deliver free, fully functional web video players and it's highly unlikely that a closed source project built by us would do any better. Therefore we've decided against this idea for the time being.

What does this mean to you?

Just like our approach to content delivery via unmetered bandwidth makes the reliable and fast distribution of software and VOD content affordable to customers from all sizes, PUSHR's integrated video encoding does so for web video preparation. Assuming 730 hours in a month and 24/7 encoding, our smallest encoding server is cabale of converting up to 3600 hours of web video content per month for $39, making it up to 56* times more affordable than the average price of competitive encoding services.

The only thing left for you is to come up with the next best app, website or service, and PUSHR will handle the rest.

PUSHR's integrated video transcoding engine is currently in beta. If you want to have your dedicated transcoder today, please open a support ticket in your account's dashboard.