本文编写于 95 天前,最后修改于 95 天前,其中某些信息可能已经过时。

通过Node-Media-Server 搭建 RTMP/HTTP-FLV/WS-FLV/HLS/DASH/MP4 Media Server 视频推流服务器
首先第一步创建一个文件夹,再通过cmd 进入该文件夹 并使用 npm init 初始化工程会生成一个package.json文件:
例如:

第二步在项目中创建一个src文件夹,再在文件夹下创建一个app.js的文件,这个app.js的文件名称可以自己,test.js也许index.js也行

第三步 安装依赖 npm install node-media-server

安装完成以后编写我们src下面的js文件

const media = require('node-media-server')  //引入node-media-server
const config = {
    rtmp: {
        port: 1935,
        chunk_size: 60000,
        gop_cache: true,
        ping: 60,
        ping_timeout: 60
      },
      http: {
        port: 8000,
        allow_origin: '*'
      },
      auth: {
        publish: true,
        secret: 'Luncode',   // obs填写的串流密钥
      }
}

var start = new NodeMediaServer(config)
start.run()

再通过 node src/app.js 运行以下结果显示正常

最后打开obs的设置》推流》选择自定义》填写服务器地址 rtmp://localhost/live》填入串流密钥:Luncode 点击确定


最后点击开始推流

最后可以来个临时测试

使用bilibili开源的flv.js播放器测试

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="http://cdn.amazeui.org/amazeui/2.5.0/css/amazeui.min.css">
    <title>wss</title>
</head>
<body>
<script src="https://cdn.bootcss.com/flv.js/1.5.0/flv.min.js"></script>
<video id="videoElement" controls autoplay muted></video>
<script>
    if (flvjs.isSupported()) {
        var videoElement = document.getElementById('videoElement');
        var flvPlayer = flvjs.createPlayer({
            type: 'flv',
            url: 'http://localhost:8000/live/Luncode.flv'
        });
        flvPlayer.attachMediaElement(videoElement);
        flvPlayer.load();
        flvPlayer.play();
    }
</script>
  </body>
</html>

http://localhost:8000/live/Luncode.flv   //Luncode.flv  名称和串流密钥一至

推流+Wss聊天后端开源地址:https://github.com/Luncode/Lives-Server