Coffee_Candy

22 分类: nodejs后端开发

Node.js + FFmpeg + flv.js 全栈实战

参考博客10 分钟搞定直播:Node.js + FFmpeg + flv.js 全栈实战
FFmpeg安装这里不细说

  1. Nodejs代码 version<=16

 前置npm install node-media-server@2.6.4 搭配 version<=16的nodejs,>16用新版的
    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: '*'
      }
    };
    
    new NodeMediaServer(config).run();
    console.log('RTMP: rtmp://localhost:1935/live/stream');
    console.log('HTTP-FLV: http://localhost:8000/live/stream.flv');
  1. html代码

 <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>我的直播</title>
        <script src="https://cdn.jsdelivr.net/npm/flv.js@1.6.2/dist/flv.min.js"></script>
    </head>
    <body>
        <h1>我的直播间</h1>
        <video id="video" width="800" height="450" controls autoplay></video>
    
        <script>
            if (flvjs.isSupported()) {
                const player = flvjs.createPlayer({
                    type: 'flv',
                    isLive: true,
                    url: 'http://127.0.0.1:8000/live/stream.flv'
                });
                player.attachMediaElement(document.getElementById('video'));
                player.load();
                player.play();
            } else {
                alert('当前浏览器不支持 flv.js');
            }
        </script>
    </body>
    </html>


  1. FFmepg推视频

    ffmpeg -re -i sp.mp4 -c:v libx264 -preset ultrafast -tune zerolatency -c:a aac -ar 44100 -b:a 96k -f flv rtmp://127.0.0.1:1935/live/stream
    参数解释
    -re 要求推流1s视频=1s推流
    -i 视频名称
    -c:v 视频编码器选H.264
    -preset ultrafast 编码速度优先级选择最快cpu占用低的
    -tune zerolatency 优化参数 为低延迟直播设置
    -c:a 音频编码格式AAC
    -ar 音频采样率
    -b:a 音频码率
    -f 输出的封装格式为flv
    rtmp:填nodejs的rtmp协议通信ip:port/路由路径
    2026-01-09T22:14:42.png
    2026-01-09T22:16:21.png
    2026-01-09T22:17:42.png
    2026-01-09T22:16:45.png

#none

作者: Coffee_Candy

版权: 除特别声明,均采用BY-NC-SA 4.0许可协议,转载请表明出处

目录Content

评论已关闭