node-stream 使用分享
source link: https://wulu.zone/posts/node-stream
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
node-stream 使用分享
基于Node.js 的本地直播应用
今天介绍一个开源项目node-stream,该项目由开发者waleedahmad开发,采用MIT协议在Github开源。 node-stream
利用Node.js实现了一个简易的本地直播平台。该项目支持从推流软件(OBS等)接收RTMP流并转码为HLS流在浏览器中播放。该项目分为服务端和客户端,服务端负责接收RTMP流和转码,客户端负责显示播放页面,同时该项目支持简单的帐号管理。
本文将讲述 node-stream
的部署和使用。对项目本身构建感兴趣的伙伴可以查看项目开发者 waleedahmad 写的文章 Building Live Streaming App with Node.js and React。
原版的node-stream的安装使用
部署node-stream开发环境
以 Ubuntu
安装Node.js开发环境
安装
ffmpeg
$ sudo apt install ffmpeg
安装
mongodb
注意!Ubuntu提供的
mongodb
包并非由MongoDB公司维护,并且与官方的mongodb-org
包有冲突。如果您已经在Ubuntu系统上安装了mongodb
包,那么在执行这些说明之前,必须先卸载mongodb
包。否则可能会出现难以预计的问题,导致mongodb无法正常运行。各操作系统mongodb官方安装教程:链接
配置和与运行node-stream
从github上下载
node-stream
源码$ git clone https://github.com/waleedahmad/node-stream
修改配置文件
$ cd nodeStream && nano ./server/config/default.js
几个重要配置说明:
server.secret
为服务器密钥,用于加密会话,建议修改。server.port
为网页客户端的端口。rtmp_server.trans.ffmepg
为ffmpeg
安装路径。Linux系统下,可以通过which ffmpeg
获得,默认情况应该是与原始配置相同的,无需更改。Windows系统,则需要手动修改为ffmepg
实际安装位置。
安装依赖,运行
node-stream
$ npm install
$ npm run start
{% codeblock node-stream/ %} $ npm install $ npm run start {% endcodeblock %}
访问网页端注册账户并获取串流密钥
访问
http:127.0.0.1:3333
注册帐号:注册完成后,进入 Go Live 页面,点击 Generate a new key 生成串流密钥。复制生成的串流密钥。
利用 OBS 直播串流
打开OBS > 设置 > 推流。服务器选项选择 自定义 ,服务器输入
rtmp://127.0.0.1:1935/live
串流密钥为上一步骤生成的密钥。接下就能在客户端首页看到直播列表,点击即可查看。
部署到树莓派上
要将 node-stream 部署到树莓派上,只要在树莓派上安装arm版本的nodejs,再同样按照上面的步骤就可以啦。但是,由于原版的 node-stream 只支持在localhost访问,所以局域网内的其他设备访问就会出现问题。所以笔者fork后针对原版进行了修改,修改的版本:emuqi/node-stream,只要直接在配置文件里将ip_addr
配置为树莓派在局域网的ip再运行直播服务就可以在局域网内访问node-stream了。其他更加详细的修改可以看下文。
针对node-stream进行改进
在使用原版的 node-stream 的过程在,发现其存在一些问题。
- 不支持自定义ip,只能在localhost运行。
- 虽然
node-stream/server/config/default.js
也就是配置文件中提供了很多参数,但是修改部分配置后会出现很多问题。比如修改直播服务的端口后,直播列表的预览图就会加载失败等。
因此,笔者在原版的基础上做了一些改动和修复,感兴趣的朋友可以使用笔者修改过后的版本emuqi/node-stream。使用方法与原版基本相同,主要修改如下:
添加直播服务自定义ip功能
可在配置中直接修改
ip_addr
,即可自定义ip。
const config = {
server: {
ip_addr: '127.0.0.1',
secret: 'kjVkuti2xAyF3JGCzSZTk0YWM5JhI9mgQW4rytXc',
port : 3333
},
...
}
修复更改直播服务端口会导致直播缩略图无法正常显示的Bug
更新项目readme
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK