# phoboslab/jsmpeg

MPEG1 Video Decoder in JavaScript

Repository: https://github.com/phoboslab/jsmpeg
Canonical: https://ross.abutalabs.com/products/jsmpeg
Language: JavaScript
License: MIT
License Family: permissive
Last push: 2022-09-20T10:28:16+00:00

## Health v2 (maintenance only)
Score: 32/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 0, release rhythm 35, longevity 100
- inputs: {"age_days": 4865, "days_push": 1443, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 6498, forks 1414 (observed 2026-08-28T04:09:43.860224+00:00)

## What it is
JSMpeg is a JavaScript video player that decodes MPEG1 video and MP2 audio entirely in the browser, including an MPEG-TS demuxer, WebGL/Canvas2D renderers, and WebAudio output. It supports loading static .ts files via Ajax and low-latency (~50ms) streaming over WebSockets, all in about 20kb gzipped.

## Use cases
- play mpeg1 video in the browser without plugins
- stream low-latency video from a server over websockets
- decode video in javascript with canvas or webgl rendering
- embed a lightweight video player on a webpage
- play .ts video files via ajax with progressive loading
- build a browser-based ip camera viewer with minimal latency

## When to choose
- you need to play MPEG1/MP2 content in any modern browser without native codecs
- you need very low latency video streaming over WebSockets
- you want a tiny dependency (~20kb) instead of a full-featured player
- you need to render video frames to a canvas for further processing or screenshots

## When to avoid
- you need modern codecs like H.264/H.265 or VP9 - use native HTML5 video instead
- you need high-resolution, high-fps playback beyond MPEG1's efficiency limits
- you need DRM or adaptive bitrate streaming like HLS/DASH
- you need hardware-accelerated decoding for battery efficiency

## Facets
- artifact type: library
- maturity: maintenance
- function: video-processing, audio-processing, http-client, websocket
- domain: web-development, frontend, media
- platform: browser, wasm
- tags: mpeg1-decoder, mp2-audio, mpeg-ts-demuxer, webgl-renderer, webaudio, low-latency-streaming, video-player, websockets-streaming, video, javascript

## Member repositories
- phoboslab/jsmpeg (main) score 32

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:09:43.860224+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:44:29.977848+00:00, confidence not recorded.
  - readme: https://github.com/phoboslab/jsmpeg (fetched 2026-08-28T04:09:43.860224+00:00, sha 85b034525bd4)
- Data as of 2026-08-30T08:39:29.467469+00:00.
