Node-Media-Server

illuspasApache-2.0活跃维护

用 Node.js 实现的 RTMP/HTTP-FLV 流媒体服务器,支持 H.264、H.265、AV1、VP9 编码,可快速搭建直播推流与播放服务。

A Node.js implementation of RTMP/HTTP-FLV Media Server

暂无版本6,241star1,528fork同步于 2026-11-10 11:34 UTC

怎么上手

由 README 提炼,执行前请确认
npm install node-media-server -g
node-media-server
硬件要求按 README 说明

README 未说明

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

基于 Node.js 的 RTMP/HTTP-FLV 直播流媒体服务器,支持增强 RTMP 原生 HEVC/VP9/AV1

用 Node.js 实现的 RTMP/HTTP-FLV 流媒体服务器,支持 H.264、H.265、AV1、VP9 编码,可快速搭建直播推流与播放服务。

核心能力

  • 支持 RTMP/RTMPS 与 HTTP/HTTP2-flv、WS/WSS-flv 推流和播放
  • 实现 Enhanced RTMP FLV v1,原生支持 HEVC、VP9、AV1 编码
  • 内置 GOP 缓存、鉴权、事件通知与静态文件服务
  • 可将直播流录制为 FLV 文件,配合静态服务实现点播
  • v4.2+ 提供 REST API、JWT 鉴权、实时监控与 Web 管理后台

容易踩的坑

v4 与 v2 不兼容,不能跨大版本升级;v4 不再兼容 cn_cdn 扩展的 flv_265 标准;Web 管理后台默认开启,可用 --no-admin 关闭

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

0 个版本

暂无 release 数据(可能没有发版,或尚未同步)。

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Node-Media-Server v4

    npm npm npm npm

    Introduction

    Node-Media-Server is a high-performance/low-latency/open-source Live Streaming Server developed based on Nodejs.
    v4 is design to implement enhanced RTMP FLV v1 support for native HEVC, VP9, AV1.
    v4 is no longer compatible with the cn_cdn extension id flv_265 standard.
    v4 is incompatible with v2. Do not upgrade across major versions.

    Installation

    npm install node-media-server -g
    node-media-server
    

    or run directly

    npx node-media-server
    

    Cli Options

    Options:
      -c, --config <path>    Path to the config file (default: bin/config.json)
      -b, --bind <addr>      Bind address, overrides the "bind" config value
          --rtmp-port <n>    RTMP port, overrides rtmp.port
          --rtmps-port <n>   RTMPS port, overrides rtmps.port
          --http-port <n>    HTTP/WebSocket port, overrides http.port
          --https-port <n>   HTTPS/WSS port, overrides https.port
          --data-path <path> Runtime data directory, overrides store.path
          --record-path <p>  Record output directory, overrides record.path
          --record-auto      Enable auto recording, forces record.auto on
          --notify-url <url> Event webhook URL, overrides notify.url
          --auth-play        Enable play authentication, forces auth.play on
          --auth-publish     Enable publish authentication, forces auth.publish on
          --no-admin         Disable the webadmin console (/admin), media only
      -h, --help             Show this help
    
    Command line values take precedence over config file values and are
    never written back to the config file.
    

    WebAdmin

    Features

    • HTTP/HTTP2-flv Push/Play
    • WS/WSS-flv Push/Play
    • RTMP/RTMPS Push/Play
    • GOP cache
    • Notification
    • Authentication
    • Static file server
    • Record to flv file
    • Enhanced RTMP v2 multitrack audio
    • REST API System (New in v4.2.0)
    • JWT-based Authentication (New in v4.2.0)
    • Real-time Monitoring & Statistics (New in v4.2.0)
    • Session Management (New in v4.2.0)
    • Session Deletion (New in v4.2.0)
    • Advanced Health Monitoring (New in v4.2.0)
    • RTSP/RTMP Relay Tasks with persistence and management API (New in v4.3.0)
    • Web Admin UI with Dashboard, Streams, Records, History, Relay and Settings (New in v4.3.0)
    • Username/Password Login with scrypt hashing and login rate limiting (New in v4.3.0)
    • Configuration Management API with validation (New in v4.3.0)
    • Change Password API (New in v4.3.0)
    • Record File Download (New in v4.3.0)
    • Record Session Resume within publish grace period (New in v4.3.0)
    • History Search by stream path, IP and time range (New in v4.3.0)
    • Network Bandwidth Statistics (New in v4.3.0)
    • Graceful Shutdown (New in v4.3.0)

    Static file services

    Node-Media-Server can provide static file services for a directory.

    "static": {
        "router": "/",
        "root": "./html"
    }
    

    Record to flv file

    Node-Media-Server can record live streams as FLV files.
    When the static file server is enabled and recordings are saved in its directory.
    It can provide video-on-demand services.

    "record": {
        "path": "./html/record",
        "auto": true
    }
    

    Set "auto": false to disable auto-recording of every published stream; streams can then be recorded on demand via the webadmin streams page or POST /api/v1/streams/{app}/{name}/record.

    http://server_ip:8000/record/live/stream/unix_time.flv
    or
    https://server_ip:8443/record/live/stream/unix_time.flv
    

    REST API System (New in v4.2.0)

    Node-Media-Server v4.2.0 provides a REST API system for server management and monitoring, featuring:

    • JWT-based authentication with challenge-response login
    • Stream and session management
    • Relay (RTSP pull / RTMP pull-push) task management
    • Real-time monitoring & statistics
    • Advanced health monitoring

    See the full API documentation in docs/api.md.

    Supported clients

    ClientH.264HEVCVP9AV1
    OBS_29.1+✅✅❌✅
    FFmpeg/FFplay_6.1+✅✅✅✅
    NodePlayer.js_1.0+✅✅❌❌
    NodeMediaClient_3.0+✅✅❌❌

    QLive free Android Live Streaming App

    • Custom output
    • Portrait and landscape orientation support
    • Multiple codec support
    • Multiple filter settings

    NodePlayer.js pure javascript implementation live streaming player

    Online Demo

    • ASM.js, WASM, SIMD, WebWorker, WebCodecs, MediaSource multiple technical implementations
    • H.264/H.265+AAC/G711 software and hardware decoder
    • Ultra-low latency, Under extreme conditions less than 100 milliseconds
    • Enhanced HTTP/WS-FLV Protocol, Natively support h.265
    • Android/iOS/HarmonyOS/Chrome/Edge/Firefox/Safari, All modern browsers or platforms

    NodePublisher.js pure javascript implementation live streaming publisher

    • WebSocket-FLV Protocol
    • H.264+AAC hardware encoder
    • Only chrome or chromium based browsers are supported at the moment
    • wss is required

    NodeMediaClient-iOS iOS live streaming player and publisher SDK

    • Objective-C/Swift
    • RTMP/HTTP-FLV/RTSP
    • H.264/H.265+AAC/OPUS/G711
    • Ultra-low latency, Under extreme conditions less than 100 milliseconds
    • Enhanced RTMP/FLV Protocol, Natively support H.265/OPUS
    • Built-in beauty filter

    NodeMediaClient-Android Android live streaming player and publisher SDK

    • JAVA/Kotlin
    • armv7/arm64/x86/x86_64
    • RTMP/HTTP-FLV/RTSP
    • H.264/H.265+AAC/OPUS/G711
    • Ultra-low latency, Under extreme conditions less than 100 milliseconds
    • Enhanced RTMP/FLV Protocol, Natively support H.265/OPUS
    • Built-in beauty filter

    expo-nodemediaclient Expo module for NodeMediaClient

    • iOS and Android
    • player and publisher
    • Built-in beauty filter

    Other server-side options

    Commercial version: NodeMediaServer v3

    • Multi-core ultra-high concurrency
    • WebRTC / SRT / HLS / RTSP / KMP protocol
    • Real-time audio transcoding
    • Multi-resolution video transcoding
    • VOD slicing and services

    Windows executable: nginx-live-win32

    • Enhanced rtmp v2 and http/websocket-flv
    • No dependencies, single exe deployment
    • Easy to deploy in offline environments
    • Based on the latest nginx version

    License

    Apache 2.0