Back to Portfolio

Streambench

Local HLS player and learning workbench. Pairs a video player with the actual playlist text so the relationship between master playlists, quality variants, and video segments is visible. Runtime assets are served locally; only requested remote stream hosts receive network requests.

Streambench interface showing the video player, manifest text, and controls

Overview

Streambench lets someone play, inspect, and save an HLS stream without sending its URL to an online player service. Its interface pairs a video player with the actual playlist text, so the relationship between master playlists, quality variants, and video segments is visible.

A generated offline example splits twelve seconds of synthetic video and audio into six segments. The accompanying tag guide explains what the user is seeing. Runtime assets are served locally; only requested remote stream hosts receive network requests.

Node.js 22
Runtime
Localhost
No external service required
FFmpeg
Remuxing engine
Windows
Launcher included

Built by Howarth Tech Solutions.

Streambench full desktop interface with synthetic HLS demo
Full desktop interface with synthetic HLS demo
Streambench interface after local MP4 download completion
Completed local MP4 download with expanded guide
Streambench expanded HLS tag guide
Expanded HLS tag guide
Streambench mobile interface
Mobile interface

Tech Stack

Node.js 22 running as a local server, a native browser front end, and locally installed FFmpeg handling remux. No framework, no database, no cloud dependency.

Node.js 22
Local server, reverse proxy, and static file serving
hls.js + m3u8-parser
Browser HLS playback and manifest parsing
FFmpeg (locally installed)
MP4 remuxing without re-encoding
Native HTML, CSS, JavaScript
Front-end interface — no framework
Localhost only
No database, no cloud service, no account required
Architecture note

The local server acts as a reverse proxy, rewriting segment, map, key, and track references so the browser can resolve them. Security checks include DNS-pinned IPv4 validation, loopback binding, and Host/Origin/cross-site enforcement to prevent the tool from being used as a proxy to private-network destinations.

Key Features

Everything you need to play, inspect, and save HLS streams without sending anything to an online service.

▶

HLS Playback

  • Browser playback with automatic and manual quality selection
  • Full ABR stream support via hls.js
  • Works with any accessible HLS stream URL
🔎

Playlist Inspection

  • Side-by-side view of master and media playlists
  • Variant selection and raw manifest display
  • One-click clipboard copy of any manifest
💾

MP4 Remux & Download

  • Quality selection independent of playback
  • Estimated file sizes before starting
  • Progress indicator and cancellation
⏲

Recording-Length Controls

  • Length controls for live sources
  • Real live-source validation pending
🎓

Offline Learning Example

  • Synthetic HLS stream — twelve seconds of generated video and audio in six segments
  • Inline tag guide explaining each manifest field
  • No external network request required to explore the example
🛠

Windows Launcher

  • Included launcher script starts the local server and opens the browser interface
  • Responsive interface works on any screen size

Technical Highlights

The engineering behind a security-aware local application.

🔁

Local Reverse Proxy

The local server rewrites all relative segment, map, key, and track references so the browser can resolve them without CORS errors or direct access to the stream host.

🔒

Network Boundary Security

DNS-pinned public IPv4 validation and redirect checks block private-network and loopback destinations, preventing the tool from being used as a network proxy to internal addresses.

🔐

Loopback Binding + Request Guards

The server binds to loopback only and enforces Host, Origin, and cross-site checks on every request. No request from an external origin is accepted.

🎙

Locally Installed FFmpeg

Remuxes original audio and video into MP4 without re-encoding, preserving the source codec and quality. Byte-range forwarding ensures segment data arrives intact.

📄

UTF-8-Safe Manifest Decoding

Manifest responses are decoded as UTF-8 with byte-range forwarding. Chunked and range responses are handled correctly across different stream configurations.

✅

12 Automated Checks

The test suite covers the full pipeline including an actual HLS-to-MP4 download decoded by FFmpeg — end-to-end validation of the working system, not just mocked unit tests.

What This Project Demonstrates

Streambench demonstrates the range from media-stream integration to security-aware local application design.

🎙
Media-Stream Integration
HLS playback, manifest parsing, quality selection, and segment handling in a browser-based player
🏠
Local Application Architecture
Node.js server with a reverse proxy layer, loopback binding, and a native browser front end — no framework overhead
🔒
Network Boundary Design
DNS validation, redirect checks, and request guards preventing misuse of a local proxy
👥
Accessible Interface Work
Responsive layout, readable controls, and an inline learning guide usable without prior HLS knowledge
✅
Functional Pipeline Testing
12 automated checks including a live FFmpeg-decoded HLS-to-MP4 download — not just mocked unit tests

Need browser-based tooling or local application work?

Streambench shows what a local media tool looks like when built to production standards — security-aware proxy design, real FFmpeg integration, automated pipeline tests, and a responsive interface. If you need a custom local application or browser-based workbench built to the same standard, let’s talk.

Get In Touch See More Work

Frequently asked questions

What is Streambench?

Streambench is a local HLS player and learning workbench. It lets you play, inspect, and save an HLS stream without sending its URL to an online player service, pairing a video player with live manifest text on localhost.

What tech does Streambench use?

Node.js 22 for the local server and reverse proxy, hls.js and m3u8-parser for browser HLS playback, and locally installed FFmpeg for MP4 remuxing without re-encoding.

Can Howarth Tech build a local application or browser-based workbench?

Yes — local application architecture, media pipelines, and browser-based tooling are all in scope. See our software development service to discuss your needs.

Related services & work

Want something like this built?

Tell us what you have in mind and we'll come back with an approach and a flat quote — no obligation.

Get a free quote See more work