How to develop highload services on Node.js

In this post, we are going to focus on developing based on a relatively new technology, Node.js. It is rapidly gaining in popularity, and not unreasonably. Node.js allows you to implement faster Web services capable to hold extreme load, which is critical to video service projects. For example, in Node.js you can easily build real-time statistics collectors , large-scale chats, etc. Of course, services written in C++ have a higher performance margin, but are too costly to implement. On the contrary, Node.js allows you to quickly create complex systems. In this post, we will use Node.js to build a simple application that can hold very high load. Continue reading

Case Study: BBC Olympics


BBC-Olympics-2012

The BBC Olympics sports broadcast service is one of the largest media events of 2012. It has brought the video service industry to a totally new level, earning for the 2012 Olympics the popularity of "truly digital games". In this context, it is critical to acknowledge the importance of expertise gained and leverage it in further growth. In this post, we are going to dwell into the project, its implementation, and valuable experience that you can apply to your own projects. Continue reading

HTTP Live Streaming Cookbook Updated!

ios-video-hls

Creating technically seamless applications has always been a pretty tough task in terms of time and complexity. Moreover, helpful data is scattered across multiple sources. This also applies to iOS video applications development. In this post, we have aggregated the most vital and helpful information on efficient use of all the features of HTTP Live Streaming, with detailed data source list. These materials are prerequisite to anyone who intends to ensure high quality of viewing experience. Continue reading

Video Statistics Service

video-analytics

It is in no way a secret that video statistics and analytics are crucial to any video portal. One of the main rationales behind video statistics is to enable settlements with copyright holders. However it covers a number of other crucial tasks, including:

  • Limit the number of parallel viewers using the same account (obviously, you do not wish all friends and relatives of one lucky customer view content under a single account? Well, let them watch it, but at least sequentially rather than in parallel :)).
  • Prevent viewing of any video to users that have got a subscription by mistake or due to some manipulation,
  • Evaluate the quality and popularity of video
  • Return to the point where watching was interrupted last time (on any device)
  • And, last but not least, enhance the user experience.

Of course, we should keep in mind that, every video portal has specific tasks that absolutely cannot do without the viewing statistics. In this post, we are going to discuss specifics of such a service. Continue reading

iOS Player with VAST Video Ad Support

apple-advertising

Ads based monetization has been widely adopted by the developers of free-of-charge iOS applications. To support banner ads in such applications, Apple offers a ready solution. However if your application is built around a video player, you may prefer inline ads shown in video pauses. As far as we know, no widely used free solution yet exists for this. In this post, we’ll tell you how you can easily add video ads to your app. For this purpose, you’ll have to add our free iOS VAST Player library to the OpenX ad server. Continue reading

JavaScript Tests and Their Automation

Test case efficiency is vital for large scale projects, when parts of applications vary in their behavior. Perhaps the most common case is when a large group of developers is working on the same or interfacing modules. This often results in unexpected changes in behavior of functions written by other programmers. Also, firefighting sometimes may result in inadvertent changes to critical parts of the application. Continue reading

HTTP Streaming: Load Balancing

balancing-http-streaming

In most cases, modern video content delivery systems are based on HTTP Streaming. This technology delivers video in a series of fragments (chunks), several seconds each. The most popular video delivery formats are Apple HTTP Live Streaming and Adobe HTTP Dynamic Streaming. In the near future, MPEG DASH will also probably become popular. The benefits offered by this type of delivery consist in a more stable video platform operation over a heterogeneous public network (Internet) and use of existing mechanisms of traditional CDN networks (HTTP chunk caching). But often traditional media is not sufficient, and large-scale online video services usually require a more flexible management of video content delivery. In our projects, we use our Video Load Balancer. In this post, we are going to outline the basics of its operation that might be helpful to your projects regardless of the load balancing technology you use. Continue reading

HTML5 Application Optimization

This article provides tips on how to optimize the client part of large-scale Web projects (most of the recommendations also apply to small projects, however). Just within a few years, Web sites have made a giant leap, having evolved from simple static pages to complex applications. The website frontends have as dramatically grown in size and logic, and now they demand no less attention in the context of optimization than backends, as the frontends are responsible for interacting with the users. Continue reading

iOS DRM: Secure iOS Video Delivery and Playback

HTTP Live Streaming (HTTP LS) is a protocol strongly recommended and actively promoted by Apple as the best solution for online video delivery to mobile devices. But neither the protocol itself, nor its tools offered by the iOS API, implement a full-fledged DRM support. The new version of Adobe Access 4.0 adds this missing functionality to the iOS-devices. Continue reading