VLC.js

From Archiveteam
Revision as of 16:12, 16 January 2017 by Jscott (talk | contribs) (Reverted edits by Megalanya0 (talk) to last revision by Db48x)
Jump to navigation Jump to search
Vlc-media-player.jpg

From the project idea post:

It is my belief that a Javascript (later WebAssembly) port of VLC, the VideoLan Player, will fundamentally change our relationship to a mass of materials and files out there, ones which are played, viewed, or accessed. Just like we had a lot of software locked away in static formats that required extensive steps to even view or understand, so too do we have formats beyond the “usual” that are also frozen into a multi-step process. Making these instantaneously function in the browser, all browsers, would be a revolution.

A quick glance at the features list of VLC shows how many variant formats it handles, from audio and sound files through to encapsulations like DVD and VCDs. Files that now rest as hunks of ISOs and .ZIP files that could be turned into living, participatory parts of the online conversation. Also, formats like .MOD and .XM (trust me) would live again effectively.

Also, VLC has weathered years and years of existence, and the additional use case for it would help people contribute to it, much like there’s been some improvements in MAME/MESS over time as folks who normally didn’t dip in there added suggestions or feedback to make the project better in pretty obscure realms.

I firmly believe that this project, fundamentally, would change the relationship of audio/video to the web.

Probable Architecture

Simple C app wrapping libvlc, compiled to JS (or WebAssembler as that ramps up) and running in a web worker. HTML+JS UI running in the page. Communication between the two using the obvious message-passing protocols.

Imagine a nice diagram here with nice boxes and swoopy arrows.

The Plan

The plan is to plan the plan.

But basically the first step is to try a hello-world style experiment and see where it breaks. We'll get a simple program that can play video of some kind, and hack together the bare-minimum of javascript to set it up.

Later there will be details.

Useful Links