Node-Media-Server开源流行Nodejs流媒体服务器

简介

Node-Media-Server一个 Node.js 实现的RTMP/HTTP/WebSocket/HLS/DASH流媒体服务器。

开源github地址:

https://github.com/illuspas/Node-Media-Server

github star: 3100+, MIT 协议

主要技术栈

nodejs, HLS,RTMP,DASH

特性

  • 跨平台支持 Windows/Linux/Unix
  • 支持的音视频编码 H.264/H.265/AAC/SPEEX/NELLYMOSER
  • 支持缓存最近一个关键帧间隔数据,实现RTMP协议秒开
  • 支持RTMP直播流转LIVE-HTTP-FLV流,支持 flv.js 播放
  • 支持RTMP直播流转LIVE-WebSocket-FLV,支持 flv.js 播放
  • 支持星域CDN风格的鉴权
  • 支持事件回调
  • 支持https/wss加密传输
  • 支持服务器和流媒体信息统计
  • 支持RTMP直播流转HLS,DASH直播流
  • 支持RTMP直播流录制为MP4文件并开启faststart
  • 支持RTMP/RTSP中继
  • 支持API控制中继

用法

docker 版本

docker run --name nms -d -p 1935:1935 -p 8000:8000 illuspas/node-media-server

git 版本

mkdir nmscd nmsgit clone https://github.com/illuspas/Node-Media-Servernpm inode app.js

使用多核模式运行

node cluster.js

npm 版本(推荐)

mkdir nmscd nmsnpm install node-media-servervi app.js
const NodeMediaServer = require('node-media-server');const config = { rtmp: { port: 1935, chunk_size: 60000, gop_cache: true, ping: 30, ping_timeout: 60 }, http: { port: 8000, allow_origin: '*' }};var nms = new NodeMediaServer(config)nms.run();

直播发布

使用 FFmpeg 推流

如果你有一个音视频编码为H.264+AAC的视频文件转为直播:

ffmpeg -re -i INPUT_FILE_NAME -c copy -f flv rtmp://localhost/live/STREAM_NAME

或者有个其他编码格式,需要转为h.264+AAC的编码再转直播:

ffmpeg -re -i INPUT_FILE_NAME -c:v libx264 -preset veryfast -tune zerolatency -c:a aac -ar 44100 -f flv rtmp://localhost/live/STREAM_NAME

使用 OBS 推流

Settings -> Stream

Stream Type : Custom Streaming Server

URL : rtmp://localhost/live

Stream key : STREAM_NAME

播放直播流

RTMP 流格式

ffplay rtmp://localhost/live/STREAM_NAME

http-flv 流格式

ffplay http://localhost:8000/live/STREAM_NAME.flv

使用 flv.js 播放 http-flv 流格式

<script src='https://cdn.bootcss.com/flv.js/1.5.0/flv.min.js'></script><video id='videoElement'></video><script>    if (flvjs.isSupported()) {        var videoElement = document.getElementById('videoElement');        var flvPlayer = flvjs.createPlayer({            type: 'flv',            url: 'http://localhost:8000/live/STREAM_NAME.flv'        });        flvPlayer.attachMediaElement(videoElement);        flvPlayer.load();        flvPlayer.play();    }</script>

使用 flv.js 播放 websocket-flv 流格式

<script src='https://cdn.bootcss.com/flv.js/1.5.0/flv.min.js'></script><video id='videoElement'></video><script> if (flvjs.isSupported()) { var videoElement = document.getElementById('videoElement'); var flvPlayer = flvjs.createPlayer({ type: 'flv', url: 'ws://localhost:8000/live/STREAM_NAME.flv' }); flvPlayer.attachMediaElement(videoElement); flvPlayer.load(); flvPlayer.play(); }</script>
(0)

相关推荐

  • 用Go实现一个直播系统难吗?看看这个开源项目

    今天 以下文章来源于Go招聘 ,作者欧盆索思 Go招聘Golang 相关求职和招聘,以及面试题.经验分享,Go 语言其他知识和职场也是值得分享的. 这几年直播真的是不要太火,相关技术也很成熟.但没有接 ...

  • 手把手带你实现srs流媒体推流和拉流操作

    一.前言 大家晚上好,今天给大家来一个简单的流媒体的推流和拉流的实际操作,废话不多说,赶紧上车! 二.srs流媒体服务器 1.什么是srs流媒体服务器: srs(Simple Realtime Ser ...

  • 本地数据库(SQL Server)远程连接服务器端服务器

    本地数据库(SQL Server 2012) 连接外网服务器的数据库,外网的服务器端需要做如下配置: 1. 首先是要打开 数据的配置管理工具 2. 配置相关的客户端协议,开启TCP/IP 3. 数据库 ...

  • 直播平台的流媒体服务器的作用

    直播视频的格式多种多样,不管是移动端还是PC端都不可能支持这么多样化格式的视频,因此流媒体服务器的首要任务就是将视频更改为统一的格式,从而解决播放器格式不统一的问题,在不改变原视频的画质情况下,更改视 ...

  • 如何在Mac上使用Plex Media Server在网络上流式传输电影

    利用备用Mac的一种方法是将其转变为用于家庭娱乐目的的服务器.这是在macOS中设置Plex Media Server的方法. 曾经将其替换为Apple Silicon版本的基于Intel的旧Mac的 ...

  • CentOS7下利用SRS搭建直播流媒体服务器

    更多技术干货,第一时间送达 SRS is a RTMP/HLS/WebRTC/SRT/GB28181 streaming cluster, high efficiency, stable and si ...

  • Universal Media Server for Mac(通用媒体服务器)

    Universal Media Server mac是一款通用媒体服务器,通用媒体服务器Mac版以很少或没有配置流或转码视频,音频和图像格式.它由FFmpeg,MEncoder,tsMuxeR,Med ...

  • 在线直播源码,CDN服务器和流媒体服务器的工作区别

    直播行业的火热发展带给周边产品新的发展机会的同时,也创造了新的竞争关系,在线直播源码团队之间的竞争.服务器商家之间的竞争.三方SDK商家之间的竞争,大家都在不断提升自己的服务质量以便吸引更多的客户. ...

  • 打造一个自己专属的Netflix流媒体服务器

    Netflix 奈飞 / 网飞是全球最知名的流媒体平台,它曾经是一家在线DVD和蓝光影碟租赁商,拥有海量影片的实体光盘.目前通过PC.TV.iPad.智能手机等设备以流媒体的形式向用户交付电影和电视节 ...

  • WINDOWS server 2008 r2,win2012 r2 服务器安全加固实战

    最近我们立方技术工作室在使用阿里云的过程中,发现服务器安全性也不是很高,而服务端的安全软件都很贵.为了为朋友们提供更加有效的解决方案,我们决定身体力行,高筑墙,大幅度提升服务器的安全防护级别! 主机安 ...

  • windows server 2003 安装设置DNS服务器

    表白:这样我就不会被刮跑了 讲解对象:windows server 2003 安装设置DNS  作者:融水公子 rsgz 首先我们先进入这个windows2003server 我们查看一下服务器的ip ...