Project: Build a DASH-compliant Client-Server Video Service
Due: Project presentations will be on 17/18 November 2015 (during class time). The project report is due 17 November 2015 (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 tar or zip archive of all your sources (please exclude sample audio/video files, object code files, etc.) and 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.
Resources
All the students talking this module are given an account on our server machine pilatus.d1.comp.nus.edu.sg. The machine is currently running CentOS 6.7. The CentOS operating system is basically a free distribution of the RedHat Enterprise Linux (RHEL) OS.
Additional information:
- Project team order schedule for demos and presentations: here.
- Project description (updated draft): here.
- Project logistics: here.
- There is an effort to standardize Apple's HTTP Live Streaming and Microsoft's Smooth Streaming techniques. The standard is called Dynamic Adaptive Streaming over HTTP (DASH). A draft document about DASH is available here.
- Apple's proposed RFC can be found here.
- Slides: Powerpoint