Skip to content
David Fischer edited this page Sep 20, 2013 · 16 revisions

Welcome to the OSCIED wiki!

OSCIED stands for Open-Source Cloud Infrastructure for Encoding to Distribution. It is a project driven by the idea of combination a task scheduler, for both encoding and publication tasks, and the automatic scaling of these tasks/capacity in a cloud. It is a platform designed to be deployed directly on bare metal without overhead of an IaaS layer, or on a public or private cloud IaaS like OpenStack, or even in combination of private setup and public cloud creating an hybrid cloud setup.

Automatic scaling in the cloud

OSCIED delivers a flexible platform for managing encoding and distribution resources via the platform API and web user interface. For example in the hybrid setup mentioned above the public cloud can be use for peak offloading when the maximal capacity of the private cluster is reached. Outside the scope of OSCIED are caching / CDN functions needed in the online distribution chain or the business intelligence to decide how much capacity is needed.

The combination of encoding and delivery

Especially with HTTP streaming it makes sense to combine the encoding to distribution in one chain. HTTP packages are published directly on a HTTP server from where they can be accessed in a local network or be cached for delivery on the Internet. Another example is the use of the MPEG-DASH publication windows in linear feeds allowing end users to pause or scroll through content within this time slot. This use case is not yet implemented in OSCIED as we are still working on the support of live feeds.

Virtual machines

OSCIED is entirely based on (virtual) machines templates called charms that can be easily deployed, up- or down-scaled and removed by simply asking it, therefor all target environments that can be used without extra interfacing are those who are supported by JuJu.

EBU IBC demo

The demonstrator shown during the IBC is an example (available here) of how this platform can be used in an fully automatic fashion. The implemented pre-schedule or smart client not only manages encoding and distribution tasks but also the up- or down-scaling of the platform services.

A busy day at IBC 2013.A busy day at IBC 2013.

The available code in this repository

Most of the code is developed with Python and is available under EUPL (see section licensing). This project is entirely based on FLOSS components that glued together makes this project a reality: So a special thank to the communities behind such great tools !

The API is powered by Flask, FFmpeg, GPAC/DashCast, x264 are the encoders, Apache is the HTTP-server ...

Contribute

We encourage everybody to use the software and add support for better components or improve the available code. Improvement of documentation are also appreciated. Please follow the project and give likes as this will improve the likelihood for new releases.

Work in progress

We improve while walking, which means that there are parts that are still imperfect. Please do not forget to check the issues list to see what are the already know bugs and the interesting features we are already considering.

Further reading

  • Broadcast use cases for OSCIED, see the section on the IBC 2013 OSCIED demo on the EBU booth.
  • For a code development interest one can read the installation and architectural sections of this wiki.

For in depth reading it is suggested to read the master thesis of the main code contributor, David Fischer.

OSCIED is an EBU project lead by Bram Tullemans (tullemans_at_ebu_dot_ch)