Project: Build a DASH-compliant Client-Server Live Video Streaming System

Due: Project presentations will be held on 16/17 November 2017, 18:30-20:30, in Meeting Room 6 (MR6) in building AS6. The project report is due 15 November 2017 (23:59 pm).

Below is an overview of the project.

Project Scope

In this project, your task is to build a DASH-compliant (Dynamic Adaptive Streaming over HTTP -- that is, compatible with BOTH Apple's HTTP Live Streaming (HLS) and MPEG DASH standard) client-server-based live video streaming system 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 individually playable video segments which are, for example, 3 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 the streamlet files that belong to a complete video, the server provides a playlist file (also called a Media Presentation Description (MPD)). The playlist file has a special format; it is basically a XML file for the MPEG DASH standard and M3U8 format file for HLS. To start streaming, the client player loads the playlist file and then starts to download the streamlets that are listed in this file. Your task is to generate such a playlist file onto the server dynamically as the new streamlets are available from one mobile device and support live playback of those streamlets onto another client device.

You will submit your project into the CS5248 IVLE Workbin. NOTE, you will need to be logged into IVLE for the direct IVLE Workbin web link to work.

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 3 on 30 August 2017 and can be found in the slides for that lecture here.

Your software to record and upload video should run under Android 5.x Lollipop or 7.x Nougat. We will be using the Samsung Galaxy Note Pro and the Samsung Galaxy S2 8.0 tablets as client machines.

Resources

All the students talking this module are given an account on our server machine monterosa.d2.comp.nus.edu.sg. The machine is currently running Ubuntu 16.04.3 LTS (Xenial Xerus). The Ubuntu operating system is a popular variant of the Linux operating system.

We will be using the Integrated Virtual Learning Environment (IVLE) and Slack for forum discussions, announcements, and possibly other materials.

Additional information: