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

Due: Project presentations will be on 19/20 November 2014 (during class time). The project report is due 19 November 2014 (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 10 September 2014 and can be found in the slides for that lecture here.

Your software to record and upload video should run under Android 4.2 Jelly Bean or 4.4 KitKat. We will be using the Asus Transformer and the Samsung Galaxy Note Pro tablets as client machine.


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

Additional information: