如何运行 10 个进程并监控它

如何运行 10 个进程并监控它

我有大约 10-15 个 FFmpeg 进程用于流媒体服务器,如下所示:

ffmpeg -i "http://ip/play/a03i" -vcodec copy -acodec copy -f flv "rtmp://ip:80/APP/Name"

我使用 Nginx-rtmp 模块通过 exec_static 指令来运行它,但我无法监控每个频道或进程,无法在不停止所有频道的情况下停止、启动、重新启动、编辑任何流

请问有什么想法吗?

最好的,

答案1

尝试类似的东西(这是在 PHP 中,但您可以使用其他脚本中的类似过程):

                    $cmd = "ps aux | grep '-vcodec copy -acodec copy -f flv'";
                    exec($cmd, $output, $returnvalue);

                    $transcoders = 0;
                    foreach ($output as $line) if (strstr($line, "ffmpeg"))
                        {
                            $columns = preg_split('/\s+/',$line);

                            if ($kill) //customise this to kill a process
                            {
                                $kcmd = 'kill -KILL ' . $columns[1];
                                exec($kcmd, $koutput, $kreturnvalue);
                            }
                         }

功能的灵感来自于WP 视频聊天插件它有一个用于监视和终止 FFMPEG 进程的后端部分(用于对 HLS 播放的实时流进行转码以及从流中生成快照)。

相关内容