This is an abandoned effort, and is on-line only for historical purposes. No more development or maintenance are planned. Actually I believe that media distribution by an ad-hoc topology is feasible only if you own (or rent) a true CDN. If distribution is left to viewers, a peer to peer approach would be much better, as done by, and my new contribution to the free live Internet TV is named Kitchen TV.


OpenCDN aims at the development of an application-level Content Delivery Network, suitable for replication and splitting of live and recorded multimedia content.

It is coded in Perl, and interfaces some Relay technology (which splits incoming media packets for each downstream flow) by a control plane, which directs the content delivery process. Media distribution is hierarchically arranged among participating Nodes, coordinated by a centralized control unit named Request Routing and Distribution Manager (RRDM). Content providers can register metadata about their contribution, produced by an Origin entity, and to be distributed by OpenCDN. Control communication in between RRDM, Nodes, and Origins, is performed by XML-RPC calls, and status probes are sent via UDP.

Provided that ISPs would like to host a sufficient number of Relay nodes over the net, media can be efficiently distributed to a very large number of clients, without severe network and server requirements, actually performing an Application Level Multicast content routing. In particular, first and last mile will be crossed only once.

The code is modular and support can be easy added for different Relay technologies: the original development was based on Darwin Streaming Server by Apple, and then it has been adapted to Helix Universal Server by Real. Actually, we are working toward exploiting the VideoLAN capabilities. Use of WM servers should also be possible, by writing a new Adaptation Layer. There are a lot of Windows people out there, why do not contribute to development ?

You can experiment operations by visiting an announcement page, asking for some content, wait for distribution set-up, and pick up content from the nearest node. Also, you can contribute as a content provider, or as a redistribution node.