# illuspas/node-media-server

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/illuspas-node-media-server).**

6,236 stars · 1,549 forks · JavaScript · Apache-2.0

## Links

- GitHub: https://github.com/illuspas/Node-Media-Server
- Homepage: https://www.npmjs.com/package/node-media-server
- awesome-repositories: https://awesome-repositories.com/repository/illuspas-node-media-server.md

## Topics

`av1` `flv` `h264` `hevc` `livestream` `media-server` `nodejs` `rtmp` `vp9`

## Description

Node-Media-Server is a Node.js media server that accepts incoming RTMP streams and delivers live video over HTTP-FLV and WebSocket-FLV for low-latency playback. It functions as a live RTMP streaming server, handling the ingestion and delivery of live video with sub-second latency for broadcasting workflows.

The server provides stream authentication using JSON Web Tokens, validating tokens on publish or play requests to restrict access to authorized clients. It includes a GOP cache that stores the most recent Group of Pictures in memory, allowing new viewers to start playback immediately without waiting for a keyframe. A REST API enables session management, allowing operators to query server status, list active sessions, and terminate streams programmatically.

The server can record incoming live streams as FLV files on disk for later replay or video-on-demand, and can serve static files from a local directory over HTTP. It supports delivering live video over HTTP, WebSocket, and RTMP, with real-time server statistics available through the REST API.

## Tags

### Graphics & Multimedia

- [RTMP Streaming Servers](https://awesome-repositories.com/f/graphics-multimedia/live-streaming-servers/rtmp-streaming-servers.md) — Accepts and delivers live video streams over the RTMP protocol with sub-second latency for broadcasting workflows.
- [RTMP and HTTP-FLV Streamers](https://awesome-repositories.com/f/graphics-multimedia/live-media-streaming/rtmp-and-http-flv-streamers.md) — A Node.js media server that accepts RTMP streams and delivers live video over HTTP-FLV and WebSocket-FLV.
- [Protocol Bridges](https://awesome-repositories.com/f/graphics-multimedia/live-media-streaming/rtmp-and-http-flv-streamers/protocol-bridges.md) — Bridges RTMP ingest and HTTP-FLV/WebSocket-FLV delivery by transcoding the RTMP stream into FLV chunks in real time.
- [HTTP-FLV Delivery](https://awesome-repositories.com/f/graphics-multimedia/low-latency-video-streaming/http-flv-delivery.md) — Serves live video streams over HTTP using the FLV container format for low-latency browser playback.
- [FLV Multiplexers](https://awesome-repositories.com/f/graphics-multimedia/low-latency-video-streaming/http-flv-delivery/flv-multiplexers.md) — Packages live video and audio data into the FLV container format for delivery over HTTP, WebSocket, or file storage.
- [WebSocket-FLV Deliveries](https://awesome-repositories.com/f/graphics-multimedia/low-latency-video-streaming/http-flv-delivery/websocket-flv-deliveries.md) — Delivers live streams over WebSocket using the FLV container format for ultra-low-latency playback. ([source](https://cdn.jsdelivr.net/gh/illuspas/node-media-server@main/README.md))
- [WebSocket-FLV Delivery](https://awesome-repositories.com/f/graphics-multimedia/low-latency-video-streaming/http-flv-delivery/websocket-flv-delivery.md) — Delivers live video over WebSocket with the FLV container for minimal-latency playback in web browsers.
- [Keyframe Caches](https://awesome-repositories.com/f/graphics-multimedia/keyframe-animations/keyframe-only-playback/keyframe-caches.md) — Stores the most recent Group of Pictures in memory so new viewers can start playback immediately.
- [Live Stream Recorders](https://awesome-repositories.com/f/graphics-multimedia/media-capture-utilities/live-stream-recorders.md) — Saves incoming live streams as FLV files on disk for later replay or video-on-demand.

### DevOps & Infrastructure

- [Event-Driven Pipelines](https://awesome-repositories.com/f/devops-infrastructure/event-driven-pipelines.md) — Processes incoming media data through a chain of event handlers that manage ingestion, recording, and delivery without blocking.

### Networking & Communication

- [RTMP Stream Forwarding](https://awesome-repositories.com/f/networking-communication/transport-bridges/protocol-bridges/rtmp-protocol-support/rtmp-stream-forwarding.md) — Accepts incoming RTMP streams and delivers them to viewers with sub-second latency. ([source](https://www.npmjs.com/package/node-media-server))
- [RTMP Stream Servers](https://awesome-repositories.com/f/networking-communication/transport-bridges/protocol-bridges/rtmp-protocol-support/rtmp-stream-forwarding/rtmp-stream-servers.md) — Accepts incoming RTMP/RTMPS streams and delivers them to viewers with low latency. ([source](https://cdn.jsdelivr.net/gh/illuspas/node-media-server@main/README.md))
- [Active Session Management](https://awesome-repositories.com/f/networking-communication/active-session-management.md) — Disconnects a specific client session by ID, stopping their stream or playback immediately. ([source](https://www.npmjs.com/package/node-media-server))
- [REST API Interfaces](https://awesome-repositories.com/f/networking-communication/rest-api-interfaces.md) — Provides a RESTful interface to query server status, manage sessions, and monitor health. ([source](https://cdn.jsdelivr.net/gh/illuspas/node-media-server@main/README.md))
- [Session Management Interfaces](https://awesome-repositories.com/f/networking-communication/rest-api-interfaces/session-management-interfaces.md) — Exposes a RESTful interface to query server status, list active sessions, and terminate streams programmatically.
- [Stream Management APIs](https://awesome-repositories.com/f/networking-communication/rest-api-interfaces/stream-management-apis.md) — Provides a RESTful interface to query server status, manage sessions, and terminate active streams.
- [Stream Session Management APIs](https://awesome-repositories.com/f/networking-communication/rest-api-interfaces/stream-session-management-apis.md) — Provides a RESTful interface to query server status, manage sessions, and terminate active streams.

### Security & Cryptography

- [Stream Authentications](https://awesome-repositories.com/f/security-cryptography/token-authentication/jwt-authentications/stream-authentications.md) — Validates a JSON Web Token on publish or play requests to restrict stream access to authorized clients.
- [JWT Authentications](https://awesome-repositories.com/f/security-cryptography/token-authentication/jwt-authentications.md) — Restricts access to live streams by validating JSON Web Tokens on publish or play requests.

### Web Development

- [HTTP-FLV Streaming Servers](https://awesome-repositories.com/f/web-development/http-servers/http-flv-streaming-servers.md) — Delivers live streams over HTTP/HTTP2 using the FLV container format for browser playback. ([source](https://cdn.jsdelivr.net/gh/illuspas/node-media-server@main/README.md))
- [WebSocket-FLV Delivery](https://awesome-repositories.com/f/web-development/http-servers/http-flv-streaming-servers/websocket-flv-delivery.md) — Delivers live video over WebSocket with the FLV container for minimal-latency playback in web browsers. ([source](https://www.npmjs.com/package/node-media-server))

### Programming Languages & Runtimes

- [Async I/O Runtimes](https://awesome-repositories.com/f/programming-languages-runtimes/async-i-o-runtimes.md) — Leverages Node.js non-blocking I/O and event loop to handle multiple concurrent RTMP and HTTP connections efficiently.

### System Administration & Monitoring

- [Real-Time Server Activity Monitors](https://awesome-repositories.com/f/system-administration-monitoring/real-time-monitoring-systems/server-command-monitoring/real-time-server-activity-monitors.md) — Exposes live metrics about active streams, sessions, and server health through the API. ([source](https://cdn.jsdelivr.net/gh/illuspas/node-media-server@main/README.md))
- [Streaming Statistics Monitors](https://awesome-repositories.com/f/system-administration-monitoring/real-time-monitoring-systems/server-command-monitoring/real-time-server-activity-monitors/streaming-statistics-monitors.md) — Reports live CPU, memory, uptime, stream count, and client count through the REST API. ([source](https://www.npmjs.com/package/node-media-server))
