EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器解决方案之Grunt的使用简介

什么是Grunt?

Grunt,简而言之,就是运行在Node.js上面的任务管理器(task runner),其能够在任何语言和项目中自动化指定的任务。咱们可经过npm来安装Grunt和Grunt插件。node

为何使用Grunt?

一词归纳:自动化web

Grunt帮助咱们提升重复项目的性能,好比:npm

  • Minification
  • Compilation
  • Unit testing
  • Linting and more

Grunt使用简介

1.命令安装

为了要使用Grunt,须要全局安装Grunt的命令行接口CLI(Command Line Interface)。若是是在Linux、mac上运行,须要用管理员权限运行命令窗口或是使用sudo。json

npm install -g grunt-cli

2.grunt依赖

  • 一个基本的Nodejs项目,根目录包含package.json文件,如:
{
      "name": "my-project-name",
      "version": "0.1.0",
      "devDependencies": {
        "grunt": "~0.4.5",
        "grunt-contrib-jshint": "~0.10.0",
        "grunt-contrib-nodeunit": "~0.4.1",
        "grunt-contrib-uglify": "~0.5.0"
      }
    }
  • 接下来运行
npm i
  • 或者经过如下命令安装
// --save-dev 意思是将依赖放入devDependencies中
    npm install grunt --save-dev

    npm install grunt-contrib-jshint --save-dev

    npm install grunt-contrib-nodeunit --save-dev

    npm install grunt-contrib-nodeunit --save-dev

3.Gruntfile配置

  • 在项目根目录中建立Gruntfile.js,示列如:
module.exports = function(grunt) {

      // Grunt配置
      grunt.initConfig({
        //获取package配置
        pkg: grunt.file.readJSON('package.json'),
        uglify: {
          options: {
           // 配置日志输入标识
            banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
          },
          build: {
            // 配置源文件目录
            src: 'src/<%= pkg.name %>.js',
            // 压缩后目标目录
            dest: 'build/<%= pkg.name %>.min.js'
          }
        }
      });

      // 加载js压缩插件
      grunt.loadNpmTasks('grunt-contrib-uglify');

      // 注册默认执行任务
      grunt.registerTask('default', ['uglify']);

    };

4.Grunt运行

  • 根目录打开命令窗口,运行以下命令
grunt
  • 执行后的效果就是讲src目录里的js文件压缩输出到dest目录中

5.监听文件目录

  • 不少状况下,咱们在编码的时候,但愿能够自动将更改部署到目标目录。这时候咱们可使用:
npm i grunt-contrib-watch --save-dev
  • 修改Gruntfile.js
module.exports = function(grunt) {

      // Grunt配置
      grunt.initConfig({
        //获取package配置
        pkg: grunt.file.readJSON('package.json'),
        uglify: {
          options: {
           // 配置日志输入标识
            banner: '/*! <%= pkg.name %> <%= grunt.template.today("yyyy-mm-dd") %> */\n'
          },
          build: {
           // 配置源文件目录
            src: 'src/<%= pkg.name %>.js',
            // 压缩后目标目录
            dest: 'build/<%= pkg.name %>.min.js'
          }
        },
        //监视
        watch: {
            scripts: {
                //监听目录src下的全部js文件
                files: ['src/*.js'],
                //只要文件有变更就执行uglify任务
                tasks: ['uglify'],
                options: {
                    spawn: false,
                },
            }
        }
      });

      // 加载js压缩插件
      grunt.loadNpmTasks('grunt-contrib-uglify');

      // 注册默认执行任务
      grunt.registerTask('default', ['uglify','watch']);

    };

EasyDSS应用场景

现场直播
摄像机或其它设备实时采集到的现场画面,经过编码器或编码软件推送到直播服务器分发,用户便可经过PC、手机、平板电脑等多种终端实时观看现场直播内容。经常使用于年会、发布会、政企会议等的网络直播。安全

网络电视
实现传统电视台的网络播出,支持多平台多终端的直播观看及时移回看。服务器

远程监控
配合网络摄像头可实现远程视频监控,终端用户能够经过PC、手机、平板电脑等多种终端实时观看远程画面,并能够把监控画面录制下来随时回看或分享。普遍应用于宝宝在线、家居安全、公共安防等方向。微信

实时课堂
应用于远程课堂直播,让不在现场的人也能实时学习优质课程。支持时移,能够随时回看任意时间的课程。网络

科研方向
应用于农业、养殖业、科学实验等跨区域场景研究。框架

企业展现
对企业的展现、宣传、活动、行政、培训等视频资源进行 高质量转码,发布到互联网,让员工和客户能够经过企业 网站、移动门户等观看。svg

EasyDSS

关于EasyDSS

EasyDSS(http://www.easydss.com)流媒体解决方案采用业界优秀的流媒体框架模式设计,服务运行轻量、高效、稳定、可靠、易维护,支持RTMP直播、RTMP推送、HTTP点播、HTTP-FLV直播、HLS直播,并支持关键帧缓冲,画面秒开等多种特性,可以接入Web、Android、iOS、H五、微信等全平台客户端,是移动互联网时代贴近企业点播/直播需求的一款接地气的流媒体服务器,配套OBS、EasyRTMP等直播推流工具以及EasyPlayer等网络播放器,能够造成一套完整的视频直播、录播解决方案,知足用户在各类行业场景的流媒体业务需求。
EasyDSS

相关文章
相关标签/搜索