'; printf('
  • ', $clipBegin, $src, $dur, $in, $out, $begin, $name, $play, $duration, $in_p, $out_p ); } } else { printf('
  • ', "...", "No Playlist for this Day", "...", "...", "...", "...", "..." ); } } // generate object from dragged item if(!empty($_GET['li_path'])) { $path = rawurldecode($_GET['li_path']); $src_re = array(); $src_re[0] = '/# [0-9-]+.('.$ext.')$/'; $src_re[1] = '/^[0-9]+ # /'; $src_re[2] = '/.('.$ext.')$/'; $src_re[3] = '/^# /'; $src = preg_replace('/^\//', '', $path); $src_arr = explode('/', $src); $name = preg_replace($src_re, '', end($src_arr)); $play = ''; $duration = preg_replace("/\n\n|\n|\n/",'',shell_exec("ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 '".$path."'")); $dur_time = gmdate("H:i:s", $duration); printf('
  • ', "0", $src, $duration, "0", $duration, "00:00:00", $name, $play, $dur_time, "00:00:00", $dur_time ); } // save modified list if(!empty($_POST['save'])) { // get json string $raw_arr = json_decode(urldecode($_POST['save'])); $date = $_POST['date']; $date_str = explode('-', $date); // get save path $ini = get_ini(); $dir = $ini['PLAYLIST']['path']; $json_path = $dir . "/" . $date_str[0] . "/" . $date_str[1]; $json_output = $json_path . "/" . $date . ".json"; // prepare header $list = array( "channel" => "Test 1", "date" => $date, "length" => "24:00:00.000", "program" => [] ); $length = 0; // create json video element foreach($raw_arr as $rawline) { $clipItem = array( "in" => floatval($rawline->in), "out" => floatval($rawline->out), "duration" => floatval($rawline->dur), "source" => "/" . $rawline->src ); $list["program"][] = $clipItem; // TODO: add real length? //$length += round($rawline->out - $rawline->in); } //$list["length"] = sprintf('%02d:%02d:%02d', ($length/3600),($length/60%60), $length%60); if (!is_dir($json_path)) { mkdir($json_path, 0777, true); } file_put_contents($json_output, json_encode( $list, JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT)); printf('Save playlist "%s.json" done...', $date); } ?>