高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒體服務器RTMP推流服務器EasyDSS如何在Nodejs中調用bat或sh腳本?

EasyDSS流媒體服務提供一站式的轉碼、點播、直播、時移回放服務,極大地簡化了開發和集成的工作。點播功能主要包含:上傳、轉碼、分發。直播功能,主要包含:直播、錄像,直播支持RTMP輸入,RTMP/HLS/HTTP-FLV的分發輸出;錄像支持自定義保存時長、檢索及下載。

EasyDSS流媒體服務器

 

Sh腳本介紹

Sh腳本也就是我們常用的Shell腳本,與Windows/Dos下的批處理相似,也就是用各類命令預先放入到一個文件中,方便一次性執行的一個程序文件,主要是方便管理員進行設置或者管理用的。但是它比Windows下的批處理更強大,比用其他編程程序編輯的程序效率更高,它使用了Linux/Unix下的命令。

bat腳本

bat腳本是windows上所用的腳本,我們經常使用的cmd一些命令就可以使用。也許有的朋友會問爲什麼不直接使用powershell腳本?因爲古老的一些服務器上面沒有安裝powershell,此時就需要用到bat腳本。

那麼本片文章將會爲大家介紹一下Nodejs中調用bat或sh腳本的方法。

Nodejs中調用bat或sh腳本

1. 安裝shelljs

npm install shelljs --save

2. 其他的相關依賴

npm install co --save

3. 封裝異步方法

var shell = require('shelljs');
exports.exec = function(command) {
    return Promise.resolve({
        then: function(onFulfill, onReject) {
            shell.exec(command, function(code, stdout, stderr) {
                onFulfill({ code: code, out: stdout, error: stderr });
            })
        }
    });
 }

4. 同步調用執行

var ossshell = require('./shell.js');

function demo(){
    return Promise.resolve({
    then: function(onFulfill, onReject) {
            co(function*() {
                    var command = "";
                    if (platform.startsWith("win")) {
                       //如果是windows
                        command = `call trans_process.bat`;
                    } else { 
                        //如果是linux
                        command = `sh ./trans_process.sh`;
                    }
                    yield ossshell.exec(command);
                    onFulfill();
                }
            }).catch(function(e) {
                onReject(new Error(e));
            })
        }
    });
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章