NodeJS Server 在不阻塞的情况下启动 UDP 流的 FFMPEG 捕获



我有一个在本地主机上运行的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之外,是否有更好的服务器可以用于此?

因此,

由于我不关心 FFMPEG 进程的 IO,所以我使用了

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

start-FFMPEG 是一个 bash 脚本,它调用 FFMPEG 并设置了一些参数,我传入了 UDP 地址。这允许我的nodejs服务器在我启动FFMPEG进程后继续服务器HLS内容。

最新更新