EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒體服務器解決方案之Grunt的使用簡介

什麼是Grunt?

Grunt,簡而言之,就是運行在Node.js上面的任務管理器(task runner),其可以在任何語言和項目中自動化指定的任務。我們可通過npm來安裝Grunt和Grunt插件。

爲什麼使用Grunt?

一詞概括:自動化

Grunt幫助我們提高重複項目的性能,比如:

  • Minification
  • Compilation
  • Unit testing
  • Linting and more

Grunt使用簡介

1.命令安裝

爲了要使用Grunt,需要全局安裝Grunt的命令行接口CLI(Command Line Interface)。如果是在Linux、mac上運行,需要用管理員權限運行命令窗口或是使用sudo。

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、手機、平板電腦等多種終端實時觀看遠程畫面,並可以把監控畫面錄製下來隨時回看或分享。廣泛應用於寶寶在線、家居安全、公共安防等方向。

實時課堂
應用於遠程課堂直播,讓不在現場的人也能實時學習優質課程。支持時移,可以隨時回看任意時間的課程。

科研方向
應用於農業、養殖業、科學實驗等跨區域場景研究。

企業展示
對企業的展示、宣傳、活動、行政、培訓等視頻資源進行 高質量轉碼,發佈到互聯網,讓員工和客戶可以通過企業 網站、移動門戶等觀看。

EasyDSS

關於EasyDSS

EasyDSS(http://www.easydss.com)流媒體解決方案採用業界優秀的流媒體框架模式設計,服務運行輕量、高效、穩定、可靠、易維護,支持RTMP直播、RTMP推送、HTTP點播、HTTP-FLV直播、HLS直播,並支持關鍵幀緩衝,畫面秒開等多種特性,能夠接入Web、Android、iOS、H5、微信等全平臺客戶端,是移動互聯網時代貼近企業點播/直播需求的一款接地氣的流媒體服務器,配套OBS、EasyRTMP等直播推流工具以及EasyPlayer等網絡播放器,可以形成一套完整的視頻直播、錄播解決方案,滿足用戶在各種行業場景的流媒體業務需求。
EasyDSS

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章