Television in Web Apps with Raspberry Pi, FirefoxOS & JavaScript

Student Project (at least 2 participants)

Everything is the Web. Help bring traditional television to the world of web apps.

Your tasks:

On a Raspberry Pi embedded computer running Firefox OS, you will implement a draft version of a Web API to control a television tuner. The API lists available TV channels on the tuner and allows to switch to such a TV channel. Using this API, you will write a simple television app for FirefoxOS.


Required skills:

  • Linux (must)
  • JavaScript, C (at least one)


Related technologies:


Related FAME Projects:

Contact:

Pure JavaScript binary writer

Student Project (2 participants), Bachelor Thesis

Nowadays JavaScript is capable of amazing feats. The once web browser only language has become a much respected server language as well since the advent of Node.js. Compilers like Emscripten allow for complex native code like AV en-/decoder or even game engines to be recompiled as JavaScript-only apps.

Your tasks:

You will implement support for writing arbitrary binary formats in pure JavaScript in an already existing JavaScript library called binary-parser. You will first familiarize yourself with that library by implementing an app that reads and parses binary input of a simple existing file format. Then you will enhance the library to support writing binary and an app that is able to output the same simple binary file format.

If you choose to apply for this topic as Bachelor Thesis the ultimate goal is being able to read and write MPEG-TS in pure JavaScript.

Required skills:

  • Experience with binary operations and binary arithmetic (must)
  • JavaScript, Node.js, C (at least one)

Related technologies:

Related FAME Projects:


Contact:


Cloud Browser

Student Project (4 participants), Master Thesis

The Cloud Browser differs from traditional browsers in that web pages are rendered in the cloud and only the UI output of the web page is streamed to the client using appropriate video streaming technologies. The Client is in general a simple device that is only capable to decode and play a video stream. It doesn't have the capabilities to run a Browser, render web pages or perform computing intensive operations. It only offers capability to interact with the user e.g. using Remote Control. All user interactions need to be sent to the cloud browser and triggered on the corresponding web page. 

One potential use case of cloud browser is a Set-Top-Box that runs in the cloud. The operator provides low performance and cheap devices to costumers that connect to its cloud infrastructure. In this case, the operator doesn't need to supply new kind of devices if he wants to offer new services that requires new hardware or software capabilities. Using the Cloud Browser solution, he needs only to update the cloud browser software stack for all customers at once. Another use case is the rendering of 360° Video in the cloud instead of the local browser. The approach has two main advantages: (1) there is no need to stream the whole 360° video to the client, but only the view requested by the user and (2) there is no need to render the 360° video locally which requires expensive computing operations. 

One important requirement for Cloud Browsers is the zero-latency streaming of the current view. The time between a user interaction and the receiving of the corresponding frames that show the effect of his interaction must not exceed a threshold of few milliseconds. The WebRTC technology could be one potential technology that fulfill this requirement.

Your tasks:

  • You will implement a Cloud Browser framework that includes the following components:
    • Server that offers the Cloud Browser functionality and is capable to serve multiple users and sessions in parallel. The Server should also offer an API for receiving user inputs.
    • Client that offers a player for video stream received from the cloud browser and is capable to open new sessions on the Cloud Browser using appropriate APIs. The Client needs also to intercept user inputs and send them to the server. The Client may be implemented on low capability devices 

Required skills:

  • Web Technologies: JavaScript, HTML, CSS
  • Communication Technologies: WebRTC and/or WebSockets (Optional)

Related technologies:


Related FAME Projects:


Contact:

Louay Bassbouss