导读 本文将想大家展示使用使用 node-media-server 及flv.js快速的在项目当中实现视频直播的功能。本文的功能需要你的电脑具有node 的环境。 适合小白进行体验学习。
服务端 node-media-server
base on github.com/illuspas/No…
新建一个文件夹 mediasrv
cmd进入到目录中
先快速初始化项目
npm init -y
安装 node-media-server
npm install node-media-server
在根目录新建一个文件 app.js 复制以下代码
const NodeMediaServer = require('node-media-server');
const config = {
rtmp: {
port: 1935, // rtmp端口号
chunk_size: 60000, // 单个拆分媒体流的包的大小
gop_cache: true,
ping: 30,
ping_timeout: 60
},
http: {
port: 8000, // http端口号
allow_origin: '*' // 允许跨域
}
};
var nms = new NodeMediaServer(config)
nms.run();
然后 在终端运行项目
node app.js
运行起来的效果如下
在使用期间一定要保持服务端处于运行状态(终端的窗口不要关闭,或者使用其他的进程管理工具运行有也可以)
获取电脑在局域网的ip地址
为了后面方便我们成app把视频推流到服务端来需要通过系统自带的“CMD”查看局域网内所使用的IP地址
首先需要同时按住键盘的“Win”+“R”键,打开运行窗口,然后输入“CMD”,并点击确定。
打开CMD命令窗口后,输入“ipconfig /all”,然后回车查看本机的的IP地址,这一步的目的是查看局域网所用的网段,比如小编所用的网段就是“
客户端-使用flvjs来实现播放(拉流)
新建一个html文件
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>直播</title>
</head>
<body>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/flv.js/1.6.2/flv.min.js" type="application/javascript"></script>
<video id="videoElement" width="100%" controls></video>
<script>
if (flvjs.isSupported()) {
var videoElement = document.getElementById('videoElement');
var flvPlayer = flvjs.createPlayer({
type: 'flv',
// qfedu 是推流的时候的路径名称
// dixon 是stream 自定义的名称
url: 'http://localhost:8000/qfedu/dixon.flv'
});
flvPlayer.attachMediaElement(videoElement);
flvPlayer.load();
flvPlayer.play();
}
</script>
</body>
</html>
好了!到了这一步 我们的服务端和客户端就已经准备好了,接下来需要一个视频源,这个视频源推流(一遍拍摄一边把视频拆分成一个个的包) 到我们的直播服务器,然后客户通过向服务器拉流(主动的想服务器拉取最新的视频包) ,这样我们的客户端就上就可以呈现我们的直播内容了。大家根据自己的手机平台来下载对应的免费的推流app。
android : v导播录屏 ( 下载链接 hmlive.cn/?page_id=16…)
ios: Airmix solo ( appstore直接搜索“Airmix” apps.apple.com/cn/app/id10… )
使用app进行推流推流的流程
使用 Arimix 进行视频推流 (IOS)
第一步 Airmix 打开的主界面
第二步 进入直播推流设置
添加推流地址
设置好之后点击 右上角的done
这个时候我们就完整了推流的设置 ,然后会退回到主界面
在主界面中 需要添加摄像头作为直播内容
选择ios camera
这个时候退出来的界面会多了一个 摄像头的预览小窗口
选择这个摄像头的小窗口,这个时候主视图就可以看到主要的视频内容了,这个主视图的内容就是最终要推送出去的视频内容。
右侧是一些个性遮罩层 你可以自行添加或者删除
添加之后的效果大概如下
在主界面点击右上角的 Go Live! 开始推流
推流成功的界面如下 右上角的绿色圆点变成了红色圆点
使用 v导播录屏(ANDROID)
注意 截图的时候为2.8.1版本
打开v导播录屏的主界面 点击手机直播
在配置当前填写推流的地址 这个地址 由服务器ip地址和 一个自定义的访问路径
第一次开始的时候会要求有权限授权大家按照提示点确定就好
开始后之后进入一个预览界面,点击下面的箭头
点击直播就可以开始推流了
直播过程当中还可以添加一些个性的图层
然后服务端就会出现以下内容, 考虑接收到手机app推送过来的视频内容
这个时候你再打开你的客户端(就是刚才的那个html页面 )然后点击播放 你就可以发现html页面上面播放的就是你的手机正在拍摄到的内容了,根据网络的情况不同一般都会有一定的延迟,不过不会很大。至此我们就完成了一个直播的业务的搭建了。
好了,希望大家能简单的体验一下实现手机直播业务的流程。