Project: Build a DASH-compliant Client-Server Video Service

Due: Project presentations will be on 21/22 November 2012 (during class time). The project report is due 21 November 2012 (23:59 pm).

Below is an overview of the project.

Project Scope

In this project, your task is to build a small DASH-compliant (Dynamic Adaptive Streaming over HTTP) - that is, compatible with Apple's Live Streaming - client-server-based video hosting service on top of a LAMP stack (Linux, Apache, MySQL, PHP).

The DASH approach of streaming is becoming very popular. It is basically a replacement for the RTSP/RTP/RTCP based approach to streaming. With DASH, the server is a simple HTTP web server (e.g., Apache). The media (video) is divided into small segments which are, for example, 10 seconds long. These segments are also called streamlets. The client media player retrieves the streamlets from the web server, one at a time, and plays them without interruption. For the client to know all the streamlet files that belong to a complete video, the server provides a playlist file. The playlist file has a special format (it is basically an XML file) and its extension is .m3u8. To start streaming, the client player loads the .m3u8 file and then starts to download the streamlets that are listed in this file.

To submit your project, create a tarball of all yours sources, (please exclude sample audios, object files etc.), put it into IVLE workbin. Your source code should be properly commented with explanations to help us understand your code. You must include a README.txt file that explains how your code works.

How to Compile/Run under Android and Linux

You will be given a number of utilities that will help you to get the project done. Additional information will be given during the lecture on 19 September 2012 and can be found in the slides for that lecture here.

Your software to record and upload video should run under Android 4.0 Ice Cream Sandwich. We will be using the Asus Transformer tablet as client machine.


All the students talking this module are given an account on our server machine The machine is currently running CentOS 6.3. The CentOS operating system is basically a free distribution of the RedHat Enterprise Linux (RHEL) OS.

Additional information: