首页 > 解决方案 > 通过 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)

请帮我

标签: node.jsiisffmpegsocket.ioiisnode

解决方案


您需要将这些永久存储在某个地方,然后将此路径添加到您的系统或用户 PATH 变量中:

  • 在开始菜单中,右键单击计算机并选择属性。

  • 然后选择高级系统设置。

  • 打开环境变量:

在此处输入图像描述

  • 然后编辑 Path 变量:

在此处输入图像描述

  • 路径只是一个文件夹列表,其中包含允许您使用的命令,而无需输入 exe 文件的完整路径。

因此,继续将 C:\ffmpeg\bin 添加到行尾,确保在上一个文件夹之后有一个分号 (;):

在此处输入图像描述

Windows问题上的PHP-FFMpeg安装和基本用法


推荐阅读