Node+flutter 搭建直播平台

Node搭建直播服务端

实现的RTMP/HTTP/WebSocket/HLS/DASH流媒体服务器插件 Node-Media-Server
  • 简单搭建 MediaServer.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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();
  • 启动
1
node MediaServer.js

直播推流

使用命令行直接推送需要播放的视频流到指定的地址 完整的跨平台解决方案,用于记录,转换和流传输音频和视频。FFmpeg
  • 如果你有一个音视频编码为H.264+AAC的视频文件转为直播:
1
ffmpeg -re -i INPUT_FILE_NAME -c copy -f flv rtmp://localhost/live/STREAM_NAME

  • 或者有个其他编码格式,需要转为h.264+AAC的编码再转直播:
1
ffmpeg -re -i INPUT_FILE_NAME -c:v libx264 -preset superfast -tune zerolatency -c:a aac -ar 44100 -f flv rtmp://localhost/live/STREAM_NAME

flutter客户端

smart_player 项目demo码云地址

image.png

image.png

image.png