analyze($stream); $title = "Media:"; $info = "Duration: " .sec2hms($fileinfo['playtime_seconds']) ."
"; if ($fileinfo['fileformat']) $info .= "Format: " .$fileinfo['fileformat'] ."
"; if ($fileinfo['video']['codec']) $info .= "Video: " .$fileinfo['video']['codec'] ."
"; if ($fileinfo['audio']['codec']) $info .= "Audio: " .$fileinfo['audio']['codec'] ."
"; if ($fileinfo['video']['resolution_x']) $info .= "Resolution: " .$fileinfo['video']['resolution_x'] ."x" .$fileinfo['video']['resolution_y'] ."
"; return array($title, $info); } function mediagentb($stream, $dest) { global $ffmpegpath; // Get info $getid3 = new getID3; $fileinfo = $getid3->analyze($stream); exec("rm " .$dest); $path = dirname($stream); if (file_exists(substr($stream, 0, -4) .".tbn")) $file = substr($stream, 0, -4) .".tbn"; else if (file_exists($path ."/poster.jpg")) $file = $path ."/poster.jpg"; else if (file_exists($path ."/folder.jpg")) $file = $path ."/folder.jpg"; else $file = ""; $resx = 180; $resy = 100; if ($file) { $getid3 = new getID3; $fileinfo = $getid3->analyze($file); } if ($fileinfo['video']['resolution_y'] && $fileinfo['video']['resolution_x']) { if ($fileinfo['video']['resolution_y'] < $fileinfo['video']['resolution_x']) { $resx = 180; $resy = round(($fileinfo['video']['resolution_y'] * 180) / $fileinfo['video']['resolution_x']); } else { $resx = round (($fileinfo['video']['resolution_x'] * 100) / $fileinfo['video']['resolution_y']); $resy = 100; } } if ($file) exec("cp \"" .$file ."\" ram/stream-tb-tmp.jpg; " .$ffmpegpath ." -y -i ram/stream-tb-tmp.jpg -s " .$resx ."x" .$resy ." " .$dest ." ; rm ram/stream-tb-tmp.jpg"); else exec($ffmpegpath ." -y -i \"" .$stream ."\" -an -ss 00:00:05.00 -r 1 -vframes 1 -s " .$resx ."x" .$resy ." -f mjpeg " .$dest); if (!file_exists($dest)) exec('cp logos/nologoMEDIA.png ' .$dest); } function mediagetwidth($file) { $getid3 = new getID3; $fileinfo = $getid3->analyze($file); return $fileinfo['video']['resolution_x']; } function mediagettype($file) { global $videotypes, $audiotypes; // Get file extension $fileext = end(explode(".", $file)); $file = str_replace("\\'", "'", $file); if (is_dir($file)) return 3; else if (preg_match("$/$", $fileext)) return 0; else if (preg_match("/" .$fileext ." /", $videotypes)) return 'tv'; else if (preg_match("/" .$fileext ." /", $audiotypes)) return 'rec'; else return 'vid'; } function mediadirhasaudio($dir) { global $audiotypes; $audioextarray = explode(' ', $audiotypes); foreach ($audioextarray as $num => $audioext) { if (glob($dir .'*.' .$audioext)) return 1; } return 0; } function mediagetmusicinfo($file ="") { // Get info $getid3 = new getID3; $fileinfo = $getid3->analyze($file); $name = $fileinfo['tags']['id3v2']['title'][0]; if ($name == "") { $name = $fileinfo['tags']['id3v1']['title'][0]; if ($name == "") { $name = $fileinfo['filename']; if ($name == "") $name = "unknown"; } } if (!is_utf8($name)) $name = utf8_encode($name); $duration = $fileinfo['playtime_string']; return array ($name, $duration); } function generatelogo($type, $name, $dest) { switch ($type) { case 'tv': $channoslash = preg_replace("$/$", " ", $name); $logopath = "../logos/" .$channoslash .".png"; if (!file_exists($logopath)) $logopath = "../logos/nologoTV.png"; exec("cp \"" .$logopath ."\" " .$dest); break; case 'rec': $channoslash = preg_replace("$/$", " ", $name); $logopath = "../logos/" .$channoslash .".png"; if (!file_exists($logopath)) $logopath = "../logos/nologoREC.png"; exec("cp \"" .$logopath ."\" " .$dest); break; case 'vid': // Generate TB mediagentb($name, $dest); break; } } ?>