簡介Node-Media-Server一個(gè) Node.js 實(shí)現(xiàn)的RTMP/HTTP/WebSocket/HLS/DASH流媒體服務(wù)器。 開源github地址:
github star: 3100+, MIT 協(xié)議 主要技術(shù)棧 nodejs, HLS,RTMP,DASH 特性
用法docker 版本docker run --name nms -d -p 1935:1935 -p 8000:8000 illuspas/node-media-server git 版本
node cluster.js npm 版本(推薦)
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(); 直播發(fā)布使用 FFmpeg 推流如果你有一個(gè)音視頻編碼為H.264+AAC的視頻文件轉(zhuǎn)為直播:
或者有個(gè)其他編碼格式,需要轉(zhuǎn)為h.264+AAC的編碼再轉(zhuǎn)直播: 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 推流
Stream Type : Custom Streaming Server URL : rtmp://localhost/live Stream key : STREAM_NAME 播放直播流RTMP 流格式
http-flv 流格式ffplay http://localhost:8000/live/STREAM_NAME.flv 使用 flv.js 播放 http-flv 流格式
使用 flv.js 播放 websocket-flv 流格式<script src='https://cdn./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> |
|