NodeJS Server无阻塞地启动UDP流的FFMPEG捕获

时间:2016-02-25 23:01:53

标签: node.js ffmpeg

我有一个在localhost上运行的nodejs服务器检查传入的URL,如果它看到.m3u8扩展名将HLS流文件提供给客户端进行回放。我还让服务器启动一个FFMPEG子进程,将UDP流转换为HLS。

传递给服务器的示例URL可能是 http://localhost:7070/udphelp/239.255.1.1:59001/out.m3u8

现在我的服务器提取该UDP地址,启动FFMPEG将该UDP流转换为HLS。但是,我发现由于UDP流“永无止境”,这导致服务器上的块服务于.m3u8和.ts文件进行回放。

有没有办法让FFMPEG在运行时不阻塞服务器?或者除了nodejs之外还有更好的服务器用于此吗?

1 个答案:

答案 0 :(得分:0)

因为我不关心我使用的FFMPEG过程的IO

ffmpegProc = process.spawn('../start-ffmpeg', [udpAddress], stdio: 'ignore', detached: true}).unref()

start-ffmpeg是一个bash脚本,调用ffmpeg并设置一些参数,然后传入udp地址。这使我的nodejs服务器在我启动FFMPEG进程后继续为HLS内容提供服务。