{"id":15027317,"url":"https://github.com/illuspas/node-media-server","last_synced_at":"2025-05-12T05:32:42.116Z","repository":{"id":26006912,"uuid":"29449476","full_name":"illuspas/Node-Media-Server","owner":"illuspas","description":"A Node.js implementation of RTMP/HTTP-FLV Media Server","archived":false,"fork":false,"pushed_at":"2025-04-30T06:57:00.000Z","size":1712,"stargazers_count":6114,"open_issues_count":427,"forks_count":1546,"subscribers_count":194,"default_branch":"master","last_synced_at":"2025-05-12T04:11:38.419Z","etag":null,"topics":["av1","flv","h264","hevc","livestream","media-server","nodejs","rtmp","vp9"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/node-media-server","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/illuspas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":["paypal.me/illuspas"]}},"created_at":"2015-01-19T02:13:03.000Z","updated_at":"2025-05-10T01:13:06.000Z","dependencies_parsed_at":"2024-04-01T01:39:03.092Z","dependency_job_id":"6cd9a102-7a0c-45c9-94fe-751187d6fccd","html_url":"https://github.com/illuspas/Node-Media-Server","commit_stats":{"total_commits":570,"total_committers":34,"mean_commits":"16.764705882352942","dds":"0.34912280701754383","last_synced_commit":"bf3f8e87d7ca2e1b9d31e5255aac93d9ac7982b5"},"previous_names":[],"tags_count":117,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illuspas%2FNode-Media-Server","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illuspas%2FNode-Media-Server/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illuspas%2FNode-Media-Server/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/illuspas%2FNode-Media-Server/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/illuspas","download_url":"https://codeload.github.com/illuspas/Node-Media-Server/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253682930,"owners_count":21947038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["av1","flv","h264","hevc","livestream","media-server","nodejs","rtmp","vp9"],"created_at":"2024-09-24T20:06:12.013Z","updated_at":"2025-05-12T05:32:42.095Z","avatar_url":"https://github.com/illuspas.png","language":"JavaScript","funding_links":["paypal.me/illuspas"],"categories":[],"sub_categories":[],"readme":"# Node-Media-Server v4\n[![npm](https://img.shields.io/node/v/node-media-server.svg)](https://nodejs.org/en/)\n[![npm](https://img.shields.io/npm/v/node-media-server.svg)](https://npmjs.org/package/node-media-server)\n[![npm](https://img.shields.io/npm/dm/node-media-server.svg)](https://npmjs.org/package/node-media-server)\n[![npm](https://img.shields.io/npm/l/node-media-server.svg)](LICENSE) \n\n## Introduction\nNode-Media-Server is a high-performance/low-latency/open-source Live Streaming Server developed based on Nodejs.  \nv4 is design to implement enhanced RTMP FLV v1 support for native HEVC, VP9, AV1.  \nv4 is no longer compatible with the cn_cdn extension id flv_265 standard.  \nv4 is no longer compatible with flashplayer's rtmp protocol.  \nv4 is incompatible with v2. Do not upgrade across major versions.\n\n## Installation\n```\nnpm install node-media-server -g\n```\n\nor run directly\n\n```\nnpx node-media-server\n```\n\n## Features\n* HTTP/HTTP2-flv Push/Play\n* RTMP/RTMPS Push/Play\n* GOP cache\n* Notification\n* Authentication\n* Static file server\n* Record to flv file\n\n## Roadmap\n* HTTP-API\n* Rtmp Relay\n\n## Supported clients\n|Client   | H.264  | HEVC | VP9 | AV1|\n| ------------ | ------------ |------------ |------------ |------------ |\n|  OBS_29.1+|  ✅   | ✅ |  ❌|  ✅ |\n|  FFmpeg/FFplay_6.1+ |   ✅  |  ✅ |  ✅ |  ✅ |\n|  NodePlayer.js_1.0+ |   ✅  |  ✅ |  ❌ |  ❌ |\n|  NodeMediaClient_3.0+ |   ✅  |  ✅ |  ❌ |  ❌ |\n\n## Usage\n* obs_29.1 or above is required\n* ffmpeg_6.1 or above is required\n\n### Push Streaming\n\n```\nffmpeg -re -i test_265.mp4 -c copy -f flv rtmp://localhost/live/test_265\n```\n\n```\nffmpeg -re -i test_av1.mp4 -c copy -f flv http://localhost:8000/live/test_av1.flv\n```\n\n### Play Streaming\n```\nffplay http://localhost:8000/live/test_265.flv\n```\n\n### [NodePlayer.js](https://www.nodemedia.cn/product/nodeplayer-js/) pure javascript implementation live streaming player\n[Online Demo](http://demo.nodemedia.cn/)\n- ASM.js, WASM, SIMD, WebWorker, WebCodecs, MediaSource multiple technical implementations\n- H.264/H.265+AAC/G711 software and hardware decoder\n- Ultra-low latency, Under extreme conditions less than 100 milliseconds\n- Enhanced HTTP/WS-FLV Protocol, Natively support h.265\n- Android/iOS/HarmonyOS/Chrome/Edge/Firefox/Safari, All modern browsers or platforms\n\n## Static file services\nNode-Media-Server can provide static file services for a directory.\n```\n\"static\": {\n    \"router\": \"/\",\n    \"root\": \"./html\"\n}\n```\n\n## Record to flv file\nNode-Media-Server can record live streams as FLV files.  \nWhen the static file server is enabled and recordings are saved in its directory.  \nIt can provide video-on-demand services.\n\n```\n\"record\": {\n    \"path\": \"./html/record\"\n}\n```\n\n```\nhttp://server_ip:8000/record/live/stream/unix_time.flv  \nor  \nhttps://server_ip:8443/record/live/stream/unix_time.flv  \n```\n\n## License\nApache 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filluspas%2Fnode-media-server","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filluspas%2Fnode-media-server","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filluspas%2Fnode-media-server/lists"}