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'] ."
"; // Extract a thumbnail exec("rm ram/stream-tb.*"); $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 ." ram/stream-tb.jpg"); else exec($ffmpegpath ." -y -i \"" .$stream ."\" -an -ss 00:00:05.00 -r 1 -vframes 1 -s " .$resx ."x" .$resy ." -f mjpeg ram/stream-tb.png"); return array($title, $info); } 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)); if (is_dir($file)) return 3; if (preg_match("/" .$fileext ." /", $videotypes)) return 1; else if (preg_match("/" .$fileext ." /", $audiotypes)) return 2; else return 0; } 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); }