Adaptive Media Streaming

Student Project (1-3 participants), Bachelor- and Master Thesis

Adaptive media streaming solutions adjust the quality of video and audio content depending on the current available bandwidth on the client.

MPEG-DASH is a standard to enable adaptive media streaming in the browser using conventional HTTP servers. They key component of an MPEG-DASH player is the algorithm that selects the best possible quality. An approach that is often used is to start with the lowest bitrate available and gradually increase the quality over time.

During playback, the network conditions need to be periodically checked by the client. Network condition can vary everywhere the Web is accessed. The most affected devices are obviously mobile phones and tablets connected via a cellular network. The coverage of a mobile network's base station is limited as well as its number of clients that can be served. This quickly leads to a bottleneck and bandwidth losses for each user. An advanced algorithm should be aware of its context (e.g. network type, other clients, user history, time etc.).

Tasks:

  • Research & develop context-sensitive adaptive media streaming algorithms
  • Integration with open source MPEG-DASH players (e.g. dash.js, shaka)
  • Test and compare different implementations

Required Skills:

  • Web Technologies: JavaScript, HTML, CSS
  • Basic Knowledge in media streaming

Related Technologies:

Related FAME Projects:

Contact: 

Daniel Silhavy
Stefan Pham

Implementation of an MPEG-DASH segmenter using Node.js

Student project (1-3 participants)

Adaptive media streaming solutions adjust the quality of video and audio content depending on the current available bandwidth on the client. MPEG-DASH is a standard to enable adaptive media streaming in the browser using conventional HTTP servers. DASH conformant content is encoded in different qualities and segmented into small chunks. Adaptive behavior is realized by appending chunks of different qualities. 

The goal of this project is to implement a Node.js based DASH segmenter.  Participants in this project will get a good understanding of the principles and challenges behind DASH based media streaming. Moreover, the project offers the chance to work with Node.js. 

Your Tasks:

  • Understand adaptive streaming technologies, MPEG-DASH in particular
  • Understand the container structure of DASH based media files (ISOBMFF)
  • Extend a Node.js based DASH segmenter to support new box types
  • Implement an MPD creator to support use cases like multi-period, ad-insertion

Required Skills:

  • Interested in media streaming and web technologies
  • Programming languages: Javascript/Node.js

Related Technologies:

  • MPEG-DASH, HLS
  • Edash-packager

Related FAME Project:

Experimentation with WebAssembly

Student project (1-3 participants)

WebAssembly or "wasm" is a portable, low-level programming language for in-browser execution to complement JavaScript. Initially, C/C++ is supported. It aims at enabling high performance applications on the Web and is currently being designed as an open standard by a W3C Community Group.

New opportunities arise for media-related use cases such as video transcoding and manipulation in the Web browser using WebAssembly.


Your Tasks:

  • Understand the specification and relationship to asm.js and Emscripten
  • Research requirements and browser support for WebAssembly
  • Research & develop media processing-related use cases for WebAssembly


Required Skills:

  • Web Technologies: JavaScript, HTML, CSS, C/C++
  • Basic knowledge in media streaming


Contact:

Stephan Pham

Daniel Silhavy

Experimentation with Blockchain for Media

Student project (1-3 participants)

Blockchain seems to be a promising technology for rights management and micro payments between users without a central entity. In blockchain architecture, transactions are stored in a public, distributed ledger. When a new transaction is made, it needs to be verified by the decentralized network. This promises to bring transparency, security and efficiency to transactions.


Your Tasks:

  • Understand Blockchain technology and its cryptographic concepts
  • Research & develop with existing Blockchain solutions


Required Skills:

  • Web Technologies: JavaScript, HTML, CSS, C/C++
  • Basic knowledge in crypto and media streaming technology


Contact:

Stephan Pham

Franck Russel Kuipou