Tuesday 22 February 2011

Video on the web

Traditional Television is a consolidated business that exists since lots of years (¾ of a century). It is a complex environment, but it can be roughly divided in two blocks. The upstream block, made up of content producers, syndicators, distributors, and the downstream block: TV channels who distribute content to end users. The two blocks are well connected, and content produced by the upstream is licensed piece-by-piece to the downstream part of the environment.
In commercial TV, advertisers and ad agencies help feeding the chain that brings content from producers to end users by footing their bill.

Similarly, “video on the web” can be summarised as follows: an upstream block, typically made up of individual videomakers, provides content to the downstream block, who serves end users.
Unlike traditional TV, here there is a lot more content, more and more people watching it, but it looks like just a few players are making business to an extent that is largely unknown. A new web TV appears online, with 500 videos. End users start watching it, but after some time they want new content, and the web TV itself is not able to renew its catalogue so quickly. Some videos are self-produced, but not enough... How to find the right content providers for its audience? The up and downstream block are weakly connected, content producers are many but it is difficult to establish a relationship with them.
On top of that, web TVs that have a little audience are not appealing for advertisers, and for web TVs it is not easy to find other sources of revenue.

wim.tv is creating an alternative environment. In wim.tv there are content producers, syndicators, web TVs, advertisers, ad agencies and end users: both the upstream and downstream blocks exist.
Creators can upload their videos and license them to syndicators and web TVs, at their own conditions. Web TVs can easily find videos for their catalogues from creators and syndicators, thus reducing the cost of settling business relationships with content producers.
Advertisers can create their own video ad campaigns, define a target and find the right web TVs to reach it.
Every time a certain video ad is served by a web tv to an end user, the corresponding advertiser pays an amount, and remunerates all those who took part to the presentation of the ad to the end user (web tv, video creator, and intermediaries).
Riccardo Chiariglione

Tuesday 15 February 2011

The cross-browser challenge

Web standards have been growing fast thanks to the World Wide Web Consotrium and the community around it. It's amazing to see what a browser can do with a few lines of html and javascript. But.. What if you need to deliver a new feature to users and you can't implement it using current web standards ?

This often means you will have to develop your own "browser plugin" using native code. What you would like is to have a plugin that runs on every browser, on every operating system, on every hardware architecture.

In order to deliver encrypted RTSP content inside user's browser, WimTV had to face (and is facing) the very same problems. Just like Adobe Flash we had to implement our own piece of software that runs side by side with the browser, rendering contents in a child window.

While there are a lot of browsers available, it's is possible to group them by the rendering engine they use.

- Webkit: Chrome, Safari, Android Mobile Browser, many others
- Gecko: Firefox, Camino
- Trident: Internet Explorer, other Microsoft products

Luckly most Webkit and Gecko browsers implement NPAPI for their plugins.

NPAPI is a cross-platform plugin architecture that was introduced by Netscape and then received many contributions by Mozilla and Google. Basically it defines a set of APIs that must be implemented on both browser and plugin side in order for them to interact. Mozilla currently offers the best SDK and documentation to help developers write their plugins using C or C++.

WimTV Browser Plugin uses NPAPI to support Webkit and Gecko powered browsers, and a NPAPI-ACTIVEX wrapper in order to work on Microsoft Internet Explorer.

The wrapper is called PluginHostController. It is opensource and the code is available from Mozilla servers. It consist of an ActiveX plugin written in C++ and implementing some basic funcions of NPAPI. Unfortunately it was written some years ago and it is not maintained. In the meantime NPAPI evolved adding some features we used in our plugin, such as Scriptable APIs allowing Javascript interaction. In order to use it we had to develop the missing parts and then bundle wrapper and plugin inside a cab file.
Davide Bertola

Tuesday 8 February 2011

What is a machine-readable license?

In recent years the use of digital technologies has increased dramatically, we can find these new technologies in all those contexts in which media content is created, distributed and consumed. Nowadays, for example, is possible to buy a single song on the internet, using only digital technologies. The broad use of these technologies has created a clash between those who create content, those who distribute them and who consume them.
In order to regulate the use and distribution of digital content licenses may be employed.
The license is a tool that aims to express what the users can and can not do with the licensed content (a video, a song, an ebook...).
To be machine-readable, licenses must be expressed in a particular way. For this reason a language called Rights Expression Language (REL) has been formalized .
One of the most important REL is the MPEG REL (MPEG-21 part 5). MPEG REL adopts a simple and extensible data model for many of its key concepts and elements. This data model consists of four entities and the relationship among entities. This basic relationship is defined by the MPEG REL assertion “grant”. The structure of the MPEG REL grant consists of the following: the principal to whom the grant is issued, the right that the grant specifies, the resource to which the right in the grant applies and finally the conditions that must be met before the right can be exercised.
In wim.tv the REL model is used for all transactions, be they B2C and B2B. The first is used between WebTvs and End Users, the latter between other actors. In these transaction it is possible to express payment and reissuing conditions.
Edoardo Radica

Tuesday 1 February 2011

Behind the scene, the Web APIs

Once upon a time the web used to be a lot different. If you think about it for a second, you'd surely recall that just few years ago the web was all about emails, static web sites and file sharing (either legal or not) .
It's fascinating how much it evolved, and how close the web applications are getting to the old fashion applications you used to install on your laptop.
This was surely because of the evolution of the network itself (growing bigger and faster all over the world) but mainly because lately new paradigms (such as the ad Software as a Service and Web Service ones) came along opening a whole new prospective on how the software can be delivered.

The Wim.tv project started taking deeply in account those new paradigms and focused on delivering a rich user experience to both its business partner and to the consumer joining the platform. But it wasn't until recently that we started to implement a key feature to become successful web platform: a Web API.
When used in the context of web development, an API is typically a defined set of Hypertext Transfer Protocol (HTTP) request messages, along with a definition of the structure of response messages, which is usually in an Extensible Markup Language (XML) or JavaScript Object Notation (JSON) format. While "Web API" is virtually a synonym for web service, the recent trend (so-called Web 2.0) has been moving away from Simple Object Access Protocol (SOAP) based services towards more direct Representational State Transfer (REST) style communications. Web APIs allow the combination of multiple services into new applications known as mashups . This is a key feature of modern web applications because it allows web developers to exploit the APIs in ways never even imagined by the API's development team itself, letting the web evolve. Wim.tv strongly believes in openness and interoperability and it's working hard to provide a simple and reliable Web API to allow other web developers to interact with the platform as much as possible and to integrate our technologies into their web applications.
Alberto Aresca