高性能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));
            })
        }
    });
}
发布了69 篇原创文章 · 获赞 9 · 访问量 9434

猜你喜欢

转载自blog.csdn.net/EasyDSS/article/details/103404823