forked from tilderadio/archive
35 lines
1.1 KiB
PHP
35 lines
1.1 KiB
PHP
<?php
|
|
|
|
$json = json_decode(file_get_contents('php://input'));
|
|
|
|
if ($json->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", "");
|
|
}
|
|
}
|
|
|