node执行cmd运行ffmpeg脚本

一,需要安装模块.
1,fluent-ffmpeg
2,http
二,执行思路
1,使用http创建服务,接收参数
1),数据流来源
2),ffmpeg转流参数
3),数据流输出服务器
2,根据参数集成ffmpeg命令推流
3,将线程储存在map里面等待关闭
三,部分核心代码

//用来储存线程
var maps = new Map();
//读取模块新建ffmpeg.
ffmpeg = require('fluent-ffmpeg');
//新建 ffmpeg 可执行对象 ,inputPath 是视频输入流地址
var command = new ffmpeg(inputPath);
//设置ffmpeg.exe地址 ,path是ffmpeg.exe的存放地址
command.setFfmpegPath(path)
//可设置参数 -re 整理视频流,如果没有这个参数 视频流的播放速度可能出现问题
//其他的参数可以通过请求参数调整
command.inputOptions('-re')
//打印启动信息
command.on('start', function (commandLine) {
    console.log('[' + new Date() + '] Vedio is Pushing !');
    console.log('commandLine: ' + commandLine);
})
//打印错误信息
command.on('error', function (err, stdout, stderr) {
    console.log('error: ' + err.message);
    console.log('stdout: ' + stdout);
    console.log('stderr: ' + stderr);
})
//打印结束信息
command.on('end', function () {
    console.log('[' + new Date() + '] Vedio Pushing is Finished !');
})
//添加转换参数 ,可以通过请求参数调整
command.addOptions([
      '-vcodec copy'
])
//设置输出地址
command.output(outputPath, {
    end: true
})
//执行转码
command.run();
//添加线程到map
maps.set(jsonstr.in,command);
posted @ 2020-06-02 15:14  枫·影  阅读(879)  评论(0编辑  收藏  举报