node.js简易版直播功能(局域网内)

Node.js实现直播推流与拉流教程

现在的直播功能,分为推流和拉流。 说俗点就是 主播那端是推流 通过屏幕捕捉或者是 摄像头捕获主播的 面前的东西或者是电脑桌面的东西。然后通过流的方式将数据传输到服务器端,然后服务器端在发送到客户端,客户端那边 也就是观众的那边需要拉流,然后就可以展示到 客户端了。

node.js后端

首先我们需要下载一个插件

1.安装

npm install node-media-server --save

2.配置启动(node index.js)
//  index.js 
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.安装OBS:

https://obsproject.com/ // 下载地址

2.配置:

点击左下边 来源的 加号 然后 选择 桌面捕获

然后就会出现以下的这种情况 

然后就是 开始推流了 上面我们已经用node.js搭建好了 流服务器了。点击右下边的 设置

我这里使用的是 ip地址 因为一会我要让 手机看到 所以不能用 localhost 进行设置

在这里服务器我设置为rtmp://192.168.1.28/live/ 

192.168.1.28则是我所链接的局域网的ip  (可以打开cmd输入ipconfig)
推流码可以自定义设置  在这里我设置为zrr

配置完后 保存 点击开始推流
服务器端 有变化 就说明了 你的推流成功了 。

拉流(客户端)

使用过 flv 的方式 进行拉流的,下面是客户端了拉流代码

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>
	<body>
		<script src="https://cdn.bootcss.com/flv.js/1.4.0/flv.min.js"></script>
		<video id="videoElement" style="width: 100%;" controls="controls"></video>
		<script>
		    if (flvjs.isSupported()) {
		        var videoElement = document.getElementById('videoElement');
		        var flvPlayer = flvjs.createPlayer({
		            type: 'flv',
					url:'http://192.168.1.28:8000/live/zrr.flv''
		        });
		        flvPlayer.attachMediaElement(videoElement);
		        flvPlayer.load();
		        flvPlayer.play();
		    }
		</script>
	</body>
</html>

打开浏览器  刚好看到就是 我刚刚在做的动作 这个很正常 因为直播就是会有延迟的。

但是会出现一个问题,就是 OBS的 显示器桌面 捕捉 必须 得是集成显卡  要不然我们播放的页面就会是黑屏加载的一个状态  针对这个问题  我们可以去设备管理器中把  独显  给禁用了就可以了(windows10笔记本会出现这种情况)

此外我们如果想要在手机上进行一个直播,那么我们可以在手机上下载一个V导播录屏

以下则是手机推流电脑实现的一个效果

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值