node.js - 通过 IISNode 将带有 FFMpeg 的 NodeJS 部署到 IIS 服务器时出现问题
问题描述
我有一个 nodeJs 项目流 RTSP 到 HTML。
我将 rtsp-ffmpeg 与套接字 io
server.js 一起使用:
var cams = arrData.map(function(device, index) {
var config = JSON.parse(device.CauHinhThietBi);
var rtspUri = getRtspUrl(config.IPLAN, config.RstpPort, config.Username, config.Password, streamType.MainStream);
console.log(rtspUri);
debugger;
var stream = new rtsp.FFMpeg({input: rtspUri, rate: 25, resolution: '640x480', quality: 3});
stream.on('start', function() {
console.log('stream ' + device.TenThietBi + ' started');
});
stream.on('stop', function() {
console.log('stream ' + device.TenThietBi + ' stopped');
});
return stream;
});
cams.forEach(function(camStream, i) {
var ns = io.of('/cam' + arrData[i].ThietBiID);
ns.on('connection', function(wsocket) {
console.log('connected to /cam' + arrData[i].ThietBiID);
var pipeStream = function(data) {
wsocket.emit('data', data);
};
camStream.on('data', pipeStream);
wsocket.on('disconnect', function() {
console.log('disconnected from /cam' + arrData[i].ThietBiID);
camStream.removeListener('data', pipeStream);
});
});
});
io.on('connection', function(socket) {
socket.emit('start', arrData);
});
app.get('/', function (req, res) {
res.sendFile(__dirname + '/index.html');
});
当我在 Visual Studio Code 中运行它时,它很好
但是当我使用 IISNode 部署到 IIS 时,出现以下错误:
错误:未找到 FFMpeg 可执行文件。安装此包并检查 ChildProcess 中的 FFMpeg.cmd 属性。(D:\2.Demo\DemoNodeJs\DemoNodeJs\DemoNodeJs\node_modules\rtsp-ffmpeg\lib\rtsp-ffmpeg.js:118:10) 在 ChildProcess.emit (events.js:315:20) 在 Process.ChildProcess。 _handle.onexit (internal/child_process.js:273:12) 在 onErrorNT (internal/child_process.js:469:16) 在 processTicksAndRejections (internal/process/task_queues.js:84:21)
请帮我
解决方案
您需要将这些永久存储在某个地方,然后将此路径添加到您的系统或用户 PATH 变量中:
在开始菜单中,右键单击计算机并选择属性。
然后选择高级系统设置。
打开环境变量:
- 然后编辑 Path 变量:
- 路径只是一个文件夹列表,其中包含允许您使用的命令,而无需输入 exe 文件的完整路径。
因此,继续将 C:\ffmpeg\bin 添加到行尾,确保在上一个文件夹之后有一个分号 (;):
推荐阅读
- javascript - 向上滚动时不显示导航栏
- mysql - 如何为 Percona 监控和管理配置 MySQL
- oracle - 将稀疏数据插入 Oracle 表
- html - 如何折叠移动设备的导航栏?
- reactjs - React 的 Ant 设计 - 在 Dropdown 组件中使用 List 组件
- node.js - 获取在 mongoDB 中添加到给定字符串中的字段中存在的所有单词的集合列表
- jenkins - Jenkins Pipeline 在 Plaintex 中显示密码
- angular - (Angular 7)无法分配给 ng-block-ui 上的只读属性“isActive”
- html - 如何在 Angular 7 中将 json html 标签修复为文本转换器
- java - 用户输入正确格式后,如何使扫描仪可重复多次