前端快速实现直播业务附带app配置(图文细节)

265 阅读4分钟

导读 本文将想大家展示使用使用 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页面上面播放的就是你的手机正在拍摄到的内容了,根据网络的情况不同一般都会有一定的延迟,不过不会很大。至此我们就完成了一个直播的业务的搭建了。

好了,希望大家能简单的体验一下实现手机直播业务的流程。