首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >由于某种原因,Nodejs找不到ffmpeg模块

由于某种原因,Nodejs找不到ffmpeg模块
EN

Stack Overflow用户
提问于 2020-12-29 02:08:29
回答 1查看 1.5K关注 0票数 0

我需要显示的实时流媒体vidoe(rtsp)在一个网站(http,vue框架)与nodejs和vue框架。

我已经查了很多,得到了他们是什么和它是如何工作的基本逻辑。因此,我计划使用socket.io将rtsp转换为使用nodejs的hls,并将其显示在web上。(让我知道是否有更有效的方法来做到这一点)

问题是,由于某种原因,当我试图在后端(Nodejs)中开发它时,节点只会向我发送一个没有找到FFMpeg模块的错误。已经一个多星期了..。请帮帮忙。

顺便说一句,所有这些都适用于ffmpeg cmd(窗口powerShell)。

我是如何建立的(Ffmpeg):

https://ffmpeg.org/

  1. 下载ffmpeg

添加到系统路径的C:\Users\Marie\Desktop\ffmpeg-4.3.1-2020-11-19-full_build\bin\:

  1. 使用window powerShell进行测试,并将powerShell转换为m3u8:

'C:\Users\Marie\Desktop\tmp\hls/streaming.m3u8' -i‘rtsp://ip.ip.ip/media/视频1’-hls_time 3 -hls_wrap 10

下面是第三名的屏幕截图。

我如何设置(Nodejs)

rtsp-ffmpeg

=>没有工作,错误说找不到ffmpeg模块

  1. 手动设置路径(例如)ffmpeg.setFfmpegPath(path)

=>没有成功。错误说找不到ffmpeg模块

..。我已经认真地尝试了几乎所有的东西,比如删除,重新安装ffmpeg,更改路径,添加路径,请帮忙..。

编辑: package.json

代码语言:javascript
运行
复制
{
  "name": "streaming",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "start": "node app.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "express": "^4.17.1",
    "ffmpeg": "0.0.4",
    "fluent-ffmpeg": "^2.1.2",
    "jsmpeg": "^1.0.0",
    "node-media-server": "^2.2.4",
    "node-onvif": "^0.1.7",
    "node-rtsp-stream": "0.0.9",
    "rtsp-ffmpeg": "0.0.15",
    "socket.io": "^3.0.4",
    "ws": "^7.4.1"
  }
}

app.js

代码语言:javascript
运行
复制
const Stream = require('node-rtsp-stream')

// let path = 'C:/Users/Marie/Desktop/ffmpeg-4.3.1-2020-11-19-full_build/bin/ffmpeg.exe'
// let path = 'C:/Users/Marie/Desktop/ffmpeg-4.3.1-2020-11-19-full_build/bin/'
let path = 'C:/Users/Marie/Desktop/ffmpeg-4.3.1-2020-11-19-full_build/bin'
const ffmpeg = require('fluent-ffmpeg')

ffmpeg.setFfmpegPath(path)

stream = new Stream({
  name: 'name',
  streamUrl: 'rtsp://ip.ip.ip.ip/media/video1',
  wsPort: 9999,
  ffmpegOptions: { // options ffmpeg flags
    '-stats': '', // an option with no neccessary value uses a blank string
    '-r': 30 // options with required values specify the value after the key
  }
})

错误:产卵

app.js (用于另一项测试)

代码语言:javascript
运行
复制
const app = require( 'express' )(),
    server = require( 'http' ).Server( app ),
    io = require( 'socket.io' )( server ),
    rtsp = require( 'rtsp-ffmpeg' )

process.env.FFMPEG_PATH = 'C:/Users/Marie/Desktop/ffmpeg-4.3.1-2020-11-19-full_build/bin/ffmpeg.exe'
// console.log( rtsp.FFMpeg )

server.listen( 6147 )
var uri = 'rtsp://ip.ip.ip.ip/media/video1',
    stream = new rtsp.FFMpeg( { input: uri } )
io.on( 'connection', function ( socket )
{
    var pipeStream = function ( data )
    {
        socket.emit( 'data', data.toString( 'base64' ) )
    }
    stream.on( 'data', pipeStream )
    socket.on( 'disconnect', function ()
    {
        stream.removeListener( 'data', pipeStream )
    } )
} )
app.get( '/', function ( req, res )
{
    res.sendFile( __dirname + '/index.html' )
} )

错误:找不到FMpeg可执行文件。安装此包并检查FFMpeg.cmd属性

nodejs版本= 10.16.3

EN

回答 1

Stack Overflow用户

发布于 2020-12-29 07:07:32

事实证明,这个库在窗口中不能正常工作。换成了rtsp-ffmpeg,我开始工作了。

相关git问题:https://github.com/kyriesent/node-rtsp-stream/issues/28

  • 您必须在项目文件夹中添加ffmepg.exe才能在nodejs中触发ffmpeg。这个库可以在Linux/Unix中正确找到路径。而且,这个库中的许多其他函数不能正常工作(可能仅在windows上),所以我不建议任何需要在基于窗口、web和nodejs的环境上开发它的人使用。

我把它做好了:https://www.npmjs.com/package/rtsp-ffmpeg

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65486432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档