Nodejs执行ffmpeg rtsp转rtmp,运行一段时间后失效

由于需要在web中播放摄像头视频, 源流是rtsp的。没用办法只有用ffmpeg来转一下码。服务端采用node + ffmpeg + nginx + nginx-http-flv-module

node写了一个接口,接收rtsp地址,然后运行ffmpeg命令将rtsp流转为rtmp流推给nginx。 然后网页就可以连接nginx的1935端口播放rtmp流。

nodejs中,我用child_process中的spawn来运行的命令,遇到的问题是刚运行命令后可以正常播放。 过一段时间后(几分钟)就不能播放了。用vlc播放器直接播放rtmp也不行,播放rtsp却可以。

我的代码是,没发现什么问题。
ps aux | grep ffmpeg 查看,进程都在。

var workerProcess = child_process.spawn('ffmpeg', ["你需要的参数"]);

workerProcess.stdout.on('data', function (data) {
    console.log('stdout: ' + data);
});

workerProcess.on('close', function (code) {
    console.log('子进程已退出,退出码 '+code);
});

然后抱着试一试的心态,把stderr加上的日志处理加上,播放视频就不会断了


workerProcess.stderr.on('data', function (data) {
     console.log('stderr: ' + data);
});

真的是无语。不知道什么原因!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值