Node+OBS直播服务器搭建总结

1|0目录

  • 直播流媒体协议
  • 拉流与推流
  • Node服务搭建
  • 前端播放页面
  • OBS推流配置

2|0直播流媒体协议

先来了解一下基本的直播流媒体协议。

3|0拉流与推流

推流,指的是把采集阶段封包好的内容传输到服务器的过程。

拉流, 指服务器已有直播内容,用指定地址进行拉取的过程。

4|0Node服务搭建

  • 安装依赖包

这次使用node-media-server包,来搭建,获取更多请访问

mkdir live cd live npm init -y npm i node-media-server

引入包,编写配置文件

// server.js const nodeMediaServer = require('node-media-server'); const config = { rtmp: { port: 3001, chunk_size: 6000, gop_cache: true, ping: 30, ping_timeout: 60 }, http: { port: 3002, allow_origin: "*" } } const nms = new nodeMediaServer(config); nms.run();

启动以后会输入一下内容

D:\live>node server.js 2021/8/22 14:52:19 9588 [INFO] Node Media Server v2.3.8 2021/8/22 14:52:19 9588 [INFO] Node Media Rtmp Server started on port: 3001 2021/8/22 14:52:19 9588 [INFO] Node Media Http Server started on port: 3002 2021/8/22 14:52:19 9588 [INFO] Node Media WebSocket Server started on port: 3002

如果打印出以上内容,说明一个rtmp的直播服务器就已经搭建成功了。

  • 拉推流地址

AppName就是App名称;StreamName就是流名称。

推流地址:

url: rtmp://localhost/live key: STREAM_NAME

拉流地址:

rtmprtmp://localhost:port/live/STREAM_NAME
http-flvhttp://localhost:3002/live/STREAM_NAME.flv
HLShttp://localhost:3002/live/STREAM_NAME/index.m3u8
DASHhttp://localhost:3002/live/STREAM_NAME/index.mpd
websocket-flvws://localhost:3002/live/STREAM_NAME.flv

这里主要使用的推流地址是:rtmp://localhost/xqlive/demo,拉流地址是http://localhost:3002/xqlive/demo.flv

5|0前端播放页面

这里主要是使用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"> <title>云直播</title> <style> #live { margin: 0 auto; display: block; min-width: 300px; max-width: 600px; width: 100%; } </style> </head> <body> <video id="live" playsinline controls src="" poster="./img/poster.jpg"></video> <script src="js/flv.min.js"></script> <script> if (flvjs.isSupported()) { let ve = document.getElementById('live'); let flvPlayer = flvjs.createPlayer({ type: 'flv', url: 'http://localhost:3002/xqlive/demo.flv' }); flvPlayer.attachMediaElement(ve); flvPlayer.load(); flvPlayer.play(); } </script> </body> </html>

看一下效果

6|0OBS推流配置

这里使用OBS进行推流直播。

OBS下载地址

下载好后安装然后打开主页面,找到文件=》设置=》推流

然后填写好地址与密钥就好了。

 

接着选择媒体源开始推流。

  • 推流界面

下面是我选择的一段小视频进行推流直播。

 

  • 播放界面

 

除了媒体源,你还可以选择直播显示器桌面,直播文字,直播图片,以及开启摄像头直播你自己,都可以。

如果你要部署到线上的话,要保障你的服务器带宽至少在10MB左右,不然就会很卡的。

好了,自建直播就介绍到这里,如果你进行商业化服务,那就要购买云计算服务商的云直播服务了,那个是非常流程的清晰的,但是是根据直播带宽或者流量计费的。


__EOF__

本文作者菜菜
本文链接https://www.cnblogs.com/caicz/p/17622264.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   菜菜聊架构  阅读(860)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
历史上的今天:
2021-08-11 mica-mqtt 1.0.2 发布,完善 stater 和 example
2021-08-11 Spring Event奇技淫巧
点击右上角即可分享
微信分享提示