gpt4 book ai didi

node.js - 在 nodejs 和管道中生成 ffmpeg 以表达的响应

转载 作者:行者123 更新时间:2023-12-04 22:52:20 25 4
gpt4 key购买 nike

我正在生成 ffmpeg 并将它的输出(我想要的视频流)传递给这样的响应对象:

app.get('/stream', (req, res) => {
let _url = req.query.url;

if(_url){

res.writeHead(200, {
'Access-Control-Allow-Origin': '*',
'Connection': 'Keep-Alive',
'Content-Type': 'video/mp4'
});

// transcode rtsp input from ip-cam to mp4 file format (video: h.264 | audio: aac)
let ffmpeg = child_process.spawn("ffmpeg",[
"-probesize","2147483647",
"-analyzeduration","2147483647",
"-i", _url,
"-vcodec","copy",
"-f", "mp4",
"-movflags","frag_keyframe+empty_moov+faststart",
"-frag_duration","3600",
"pipe:1"
]);


// redirect transcoded ip-cam stream to http response
ffmpeg.stdout.pipe(res);

// error logging
ffmpeg.stderr.setEncoding('utf8');
ffmpeg.stderr.on('data', (data) => {
console.log(data);
});
}
else{
res.end();
}

到目前为止,它就像一个魅力。
但是其中的某个地方似乎有一个上限。我只能同时运行 3 个流。当第 4 个生成发生时,第 4 个线程将阻塞其中一个 cpu 核心:

htop of my raspberry pi 3

并且自然第四流不会到达浏览器..
有人知道我错过了什么吗?

编辑:这与我在树莓派上运行 nodejs 项目这一事实无关。它在我的 Windows 10 机器上的行为方式也相同

最佳答案

耶稣。好吧,问题来了:

无论如何,我的 IP 摄像机只能同时传输 3-4 个流...

关于node.js - 在 nodejs 和管道中生成 ffmpeg 以表达的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47815475/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com