我正在尝试从我的rtmp服务器设置一个中继,并且我正在使用一个名为node-media-server的npm模块。我已经成功地设置了我的rtmp协议,但是当我试图设置中继时,它希望我添加一个路径,我的ffmpeg库,所以我安装了ffmpeg,然后向中继提供了node_module路径,但是我不断地得到错误,uncaughtException Error: spawn C:\blah\blah\node_modules\ffmpeg ENOENT,ffmpeg库肯定存在于指定的位置。为什么会发生这种情况?提前谢谢。
使用:链接到模块im: https://www.npmjs.com/package/node-media-server
const NodeMediaServer = require('node-media-server');
const path = require('path')
const ffmpegPath = path.join(__dirname, '..', 'node_modules', 'ffmpeg')
const config = {
rtmp: {
port: 1935,
chunk_size: 60000,
gop_cache: true,
ping: 30,
ping_timeout: 60
},
http: {
port: 8000,
allow_origin: '*'
},
relay: {
ffmpeg: ffmpegPath,
tasks: [{
app: 'live',
mode: 'push',
edge: 'rtmp://localhost:1936',
},
{
app: 'live',
mode: 'push',
edge: 'rtmp://localhost:1937',
}
]
}
};
var nms = new NodeMediaServer(config)
nms.run();
发布于 2022-09-12 11:03:03
似乎rtmp服务器没有找到ffmpeg安装。我不得不安装node-ffmpeg-installer,一个将ffmpeg作为节点模块安装的包。然后,我将ffmpeg.path分配给中继配置中的ffmpeg键。希望这能有所帮助。
const NodeMediaServer = require('node-media-server');
const ffmpeg = require('@ffmpeg-installer/ffmpeg');
const config = {
rtmp: {
port: 1935,
chunk_size: 60000,
gop_cache: true,
ping: 30,
ping_timeout: 60
},
http: {
port: 8000,
allow_origin: '*'
},
relay: {
ffmpeg: ffmpeg.path,
tasks: [{
app: 'live',
mode: 'push',
edge: 'rtmp://localhost:1936',
},
{
app: 'live',
mode: 'push',
edge: 'rtmp://localhost:1937',
}
]
}
};
var nms = new NodeMediaServer(config)
nms.run();
https://stackoverflow.com/questions/73687648
复制相似问题