HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
mbebenita
Broadway
C2011–2018
mbebenita / Broadway

Broadway

A JavaScript H.264 decoder.

15Distinct people
16Mentions
0Explicit recommenders
2.8KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

A JavaScript H.264 decoder.

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

No recommendation phrase was found in the indexed comments.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 5:04:57 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year16 dated mentions

Observed mentions: 2011-10-28 10:38:35 UTC to 2018-01-30 06:54:54 UTC.

0123452011-01-01 00:00:00 UTC to 2012-01-01 00:00:00 UTC (exclusive): 4 mentions; 1 submissions, 3 comments20112012-01-01 00:00:00 UTC to 2013-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2013-01-01 00:00:00 UTC to 2014-01-01 00:00:00 UTC (exclusive): 5 mentions; 2 submissions, 3 comments2014-01-01 00:00:00 UTC to 2015-01-01 00:00:00 UTC (exclusive): 2 mentions; 1 submissions, 1 comments20142015-01-01 00:00:00 UTC to 2016-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2018

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20112011-01-01 00:00:00 UTC2012-01-01 00:00:00 UTC413
20122012-01-01 00:00:00 UTC2013-01-01 00:00:00 UTC202
20132013-01-01 00:00:00 UTC2014-01-01 00:00:00 UTC523
20142014-01-01 00:00:00 UTC2015-01-01 00:00:00 UTC211
20152015-01-01 00:00:00 UTC2016-01-01 00:00:00 UTC000
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC101
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC101
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC101

From the project README

An excerpt from the repository, fetched Nov 13, 2026.

Read the project’s introduction
Broadway.js A JavaScript H.264 decoder. View a Live Demo: http://mbebenita.github.io/Broadway/foxDemo.html http://mbebenita.github.io/Broadway/storyDemo.html http://mbebenita.github.io/Broadway/treeDemo.html The video player first needs to download the entire video before it can start playing, thus appearing to be a bit slow at first, so have patience. You can start the video by clicking on each player. The top left player runs on the main thread, while the remaining players run in background worker threads. Use an example node app as template: https://github.com/soliton4/BroadwayStream Technical info The demo is Android's H.264 decoder compiled with Emscripten to JavaScript, then further optimized with Google's JavaScript closure compiler and further optimized by hand to use WebGL. Building the demo: Install and configure Emscripten (https://github.com/kripken/emscripten) The current version of Broadway was built with emscripten 1.35.12 The code for the demo is in the Decoder folder, to build it run the make.py python script. (Requires at least python 2.7) Encoding Video The decoder expects an .mp4 file and does not support weighted prediction for P-frames and CABAC entropy encoding. To create such bitstreams use ffmpeg and x264 with the following command line options: ffmpeg -y -i sourceFile -r 30000/1001 -b:a 2M -bt 4M -vcodec libx264 -pass 1 -coder 0 -bf 0 -flags -loop -wpredp 0 -an targetFile.mp4 API Player.js, Decoder.js and YUVWebGLCanvas.js all have a unified module definition. You can use them as plain js files or with common.js / AMD Player.js: var p = new Player({ <options> }); p.canvas; // the canvas - put it where you want it p.decode(<h264 data>); Options: useWorker true / false Decode in a worker thread workerFile Path to Decoder.js. Only neccessary when using worker. Defaults to "Decoder.js" webgl true / "auto" / false Use webgl. defaults to "auto" size { width: , height: } Initial size of the canvas. Canvas will resize after video starts streaming. Properties: canvas domNode refers to the canvas element. methods: decode () Feed the decoder with h264 stream data. Decoder.js: var p = new Decoder({ <options> }); p.onPictureDecoded; // override with a callback function p.decode(<h264 data>); options: rgb true / false If true will convert the image to rgb. sligtly slower. properties: onPictureDecoded callback function(, width, height) Will be called for each frame. methods: decode () Feed the decoder with h264 stream data. Real World Uses of Broadway.js
Read the full README on GitHub

What Hacker News says

16 sources
ffmpeg just ignores patent licensing - you're responsible for paying the appropriate licensing fees if you use it. The same applies to x264 and x265. Generally the pools won't go after ffmpeg itself but rather companies shipping it once they get big enough / have money. For example: https://github.com/mbebenita/Broadway/issues/124 HEVC is currently literally impossible to license. One of the pools hasn't decided on pricing yet. You basically have to set aside some cash and hope it's enough to back-pay once they announce the pricing. But even with the existing ones, you have to pay for encoders, decoders, and videos encoded in it. https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding#P...
In MPEG: A crisis, the causes and a solution
This is really cool! But the compression quality of MPEG1 is really nowhere close to h264. If you're interested in this sorta thing, try taking a look at Broadway JS: https://github.com/mbebenita/Broadway Here's a simple demo page they have setup: http://mbebenita.github.io/Broadway/foxDemo.html Its entirely possible to use WebSockets to stream H264 to a browser and decode using broadway, and the performance is pretty good, even on mobile.
In JSMpeg – Decode It Like It's 1999

Showing the 15 most recent of 16 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.