Implementation of JavaScript Webm Demultiplexer, and VP8 Video Decoder for Ogv.js


Brian Parra

Oral Defence Date: 

Friday, May 12, 2017 (All day)


TH 434


Profs. Ilmi Yoon & Arno Puder


The Ogv.js project is an experimental JavaScript web video player developed by Brion Vibber of the WikiMedia Foundation. Ogv.js is capable of decoding and playing video without using the standard HTML5 video element. Playback is achieved by handling the complete decode and play logic in JavaScript. The motivation for a full JavaScript video player is to ensure playback, without having to rely on browser-supported formats. The Ogv.js project currently uses cross-compiled libraries, with JavaScript core player logic. This project contributes to Ogv.js by implementing two components of the Webm format, a Webm demultiplexer, and VP8 video decoder. The goal of the JavaScript implementation is to leverage JavaScript specific API’s and facilitate smoother inter-module communication. Resulting JavaScript demultiplexer, and decoder, codenamed JsWebm, and JsVpx, both achieve much better memory usage than cross-compiled modules. JsVpx CPU performance comes very close to Emscripten cross-compiled versions on target WebKit browsers (Safari).

Brian Parra

VP8, Webm, Video Compression, Libvpx, Matroska, Ogv.