Ric*_*ckZ 6 ffmpeg streaming-video node.js
我是 Node.js 新手,已经弄清楚如何利用 child.spawn 启动 FFMPEG 实例,该实例用于捕获实时视频并通过 rtmp 将其发送到 Adobe Media Server。
我见过的 FFMPEG 与 Node.js 结合使用的每个示例都是有时间限制的示例,因此一旦 FFMPEG 到达正在转换的文件末尾,子进程就会关闭。
在这种情况下,没有“文件结尾”。
如果我实例化:
var ffmpeg = child.spawn('ffmpeg.exe', [args]);
Run Code Online (Sandbox Code Playgroud)
它创建实时提要。
我尝试立即关闭子进程:
setTimeout(function() {
ffmpeg.stdin.resume();
ffmpeg.stdin.write('insert command to echo q to close FFMPEG');
ffmpeg.stdin.end();
});
Run Code Online (Sandbox Code Playgroud)
然而,这似乎不起作用。我继续在我的测试盒上看到我的 rtmp feed。
有没有办法通过 Node.js 中的 stdin 向 FFMPEG 传递关闭命令?
提前致谢!
瑞克
你可以简单地杀死它。
ffmpeg.kill(SIGHUB)
Run Code Online (Sandbox Code Playgroud)
或您想要的任何其他终止信号,请参阅http://en.wikipedia.org/wiki/Unix_signal
如果我正确理解您的示例,您将节点进程的所有参数传递给 ffmpeg,包括流。为了让你的ffmeg.end()
工作,你必须直接从你的节点进程进行流式传输。我认为 ffmpeg 当连续从相机接收数据时不会停止。