live->is_live) { // start recording $streamer = $json->live->streamer_name; $current_pid = intval(file_get_contents("ffmpeg.pid")); // posix_kill with 0 signal tells you if the process is running if ($current_pid != "" && posix_kill($current_pid, 0)) die(); $timestamp = date("Y-m-d\TH:i:s"); if (!is_dir(__DIR__."/../$streamer")) { mkdir(__DIR__."/../$streamer"); copy(__DIR__."/../djindex.php", __DIR__."/../$streamer/index.php"); } $standard_stream = "https://radio.tildeverse.org/radio/8000/radio.ogg"; $testing_stream = "https://radio.tildeverse.org/radio/8010/radio.mp3"; $cmd = "/usr/bin/ffmpeg -i $standard_stream ../$streamer/tilderadio-$timestamp.mp3 >out.log 2>&1 & echo $!"; $pid = exec($cmd); echo $pid; file_put_contents("ffmpeg.pid", $pid); } else { // stop recording $pid = file_get_contents("ffmpeg.pid"); if ($pid != "" && posix_kill(intval($pid), 0)) { posix_kill(intval($pid), 2); file_put_contents("ffmpeg.pid", ""); } }