1. node-media-server介绍 node-media-server 是一个基于 Node.js 的流媒体服务器,它提供了构建和管理实时音视频流媒体应用程序所需的功能。 以下是一些 node-media-server 的特点和功能: 1.RTMP支持:node-media-server 支持 RTMP(Real-Time Messaging Protocol)协议,用于接收和传输实时的音视频流 2.多路并发流支持:node-media-server 具有多路并发流处理能力,可以同时处理多个流媒体的接收、转码、推流和录制等操作。 3.高性能和低延迟:node-media-server 的设计注重高性能和低延迟,使其适用于实时应用场景,如实时直播、互动直播和视频聊天等。 环境安装与配置 # 安装nodejs和ffmpeg sudo apt install nodejs ffmpeg # 安装node-media-server npm install node-media-server
搜了很多资料,很多都是介绍 RTMP 的,可见 RTMP 在国内采用有多广泛, 因此我们打算试试: 首先是搭建 RMTP 服务器,可以直接基于 Node-Media-Server,代码很简单: const NodeMediaServer = require('node-media-server') const config = { // RMTP 服务器, 用于RTMP 推流和拉流 rtmp: 下面示例通过 flvjs 来拉取 node-media-server 的视频流: <script src="https://cdn.bootcss.com/flv.js/1.5.0/flv.min.js b-frames 缩小 GOP 开启 x264 的 -preset fast/faster/verfast/superfast/ultrafast 参数 使用-tune zerolatency 参数 <em>node-media-server</em>
Node.js实现方案架构思路:使用node-fluent-ffmpeg进行流处理使用node-media-server搭建RTMP服务器使用WebSocket实现低延迟传输核心代码示例:const ffmpeg
nginx-rtmp-module [4] 有C++的: https://github.com/ossrs/srs [5] 有Nodejs的: https://github.com/illuspas/Node-Media-Server