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
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值