diff --git a/cron2.php b/cron2.php index d5fb82a..05f8c38 100755 --- a/cron2.php +++ b/cron2.php @@ -4,7 +4,7 @@ * * $Id$ */ -// ini_set('include_path',"/home/tuve/include/"); + include ("include/config.php"); if (file_exists("/tmp/cron2.php.lock")) @@ -13,109 +13,33 @@ system("/usr/bin/touch /tmp/cron2.php.lock"); $query = "SELECT * FROM videos_pending v INNER JOIN users u ON v.oid = u.uid WHERE encoded = 0"; -// $result = mysql_query($query); $result = $db->query($query); -/* - * if (mysql_num_rows($result) > 0) { - * $vid = mysql_result($result,0,'vid'); - * $file = mysql_result($result,0,'file'); - * $artist = mysql_result($result,0,'artist'); - * $title = mysql_result($result,0,'title'); - * $genre = mysql_result($result,0,'genre'); - * $rid = mysql_result($result,0,'rating'); - * $cid = mysql_result($result,0,'classification'); - * $oid = mysql_result($result,0,'oid'); - */ +while ($qData = $result->fetch_assoc()) { -if ($qData = $result->fetch_assoc()) { - $movie = new ffmpeg_movie("/usr/web/uploads/" . $qData['file']); + exec("/usr/local/bin/mediainfo --Inform=\"Video;%Width%,%Height%,%BitRate%,%FrameRate%,%Duration/String3%\" /media/incoming/" . $qData['file'], $mediaInfo); - $oW = $movie->getFrameWidth(); - $oH = $movie->getFrameHeight(); - $oLen = $movie->getDuration(); + $vData = explode(",", $mediaInfo[0]); - print("W: $oW H: $oH"); + $mWidth = $vData[0]; + $mHeight = $vData[1]; + $mBitRate = $vData[2]; + $mFrameRate = $vData[3]; + sscanf($vData[4], "%i:%i:%i.%i", $hour, $min, $sec, $ms); - if (($oW == 0) || ($oH == 0)) { + $mDuration = ($hour * 3600) + ($min * 60) + $sec + ("0." . $ms); + + unset($mediaInfo); + + if (($mWidth == 0) || ($mHeight == 0)) { $mType = 2; $encode = "/usr/local/bin/ffmpeg -loop_input -i \"/usr/home/reddawg/UbixCube.gif\" -i \"/usr/web/uploads/" . $qData['file'] . "\" -ar 44100 -ac 2 -ab 128k -t $oLen -r 0.5 -f flv -y \"/media/streams/" . $qData['file'] . ".flv\""; print("[$encode]"); - $res = system($encode); +// $res = system($encode); } else { $mType = 1; - $hRat = 300 / $oH; - $wRat = 400 / $oW; - if ($oH == $oW) { - $nH = 300; - $nW = 400; - } else if ($hRat < $wRat) { - $rat = $hRat; - $nW = floor($oW * $rat); - - if (($nW % 2) != 0x0) - $nW --; - - $pad = floor((400 - $nW) / 2); - - if (($pad % 2) != 0x0) - $pad ++; - - if ($pad > 1) { - $pad_str = "-padleft $pad -padright $pad "; - $pad_str = "'pad=width=400:height=300:x=$pad:y=0:color=black'"; - } - else - $pad_str = ""; - $nH = 300; - // $nW = 400 - ($pad * 2); - } else { - $rat = $wRat; - $nH = floor($oH * $rat); - - if (($nH % 2) != 0x0) - $nH --; - - $pad = floor((300 - $nH) / 2); - - if (($pad % 2) != 0x0) - $pad ++; - - if ($pad > 1) { - $pad_str = "-padtop $pad -padbottom $pad "; - $pad_str = "'pad=width=400:height=300:x=0:y=$pad:color=black'"; - } - else - $pad_str = ""; - // $nH = 300 - ($pad * 2); - $nW = 400; - } - - // old -g 250 -i_qfactor 0.71 -gblur 0.9 - // $vidParams "-deinterlace -g 250 -qcomp 0.6 -qdiff 4 -i_qfactor 0.71428572 -b_qfactor 0.76923078 -bt 200k -b 360k -r 25"; - $vidParams = "-deinterlace -g 250 -qcomp 0.6 -qdiff 4 -i_qfactor 0.71 -umv -aic -sc_threshold 10000 -bt 200k -b 360k -r 25"; -/* - $encode = "/usr/local/bin/ffmpeg -i \"/usr/web/uploads/" . $qData['file'] . "\" -an $pad_str $vidParams -f flv -s " . $nW . "x" . $nH . " -pass 1 -passlogfile /tmp/pass_monkey -y \"/media/tmp/" . $qData['file'] . ".flv\""; - - print("[$encode]"); - - $res = system($encode, $retVal); - - if ($retVal == 1) - doExit($encode, $qData['vid']); - - $encode = "/usr/local/bin/ffmpeg -i \"/usr/web/uploads/" . $qData['file'] . "\" -ar 44100 -ac 2 -ab 128k $pad_str $vidParams -f flv -s " . $nW . "x" . $nH . " -pass 2 -passlogfile /tmp/pass_monkey -y \"/media/tmp/" . $qData['file'] . ".flv\""; -*/ - - $encode = "/usr/local/bin/ffmpeg -i \"/usr/web/uploads/" . $qData['file'] . "\" -pass 1 -vcodec libx264 -preset slower -b:v 360k -bt 200k -threads 0 -s 400x300 -aspect 4:3 -acodec aac -ar 44100 -f flv -y \"/home/tuve/tmp/" . $qData['file'] . ".flv\""; // -ab 32 before the -f - - $encode = "/usr/local/bin/ffmpeg -i \"/usr/web/uploads/" . $qData['file'] . "\" -c:v libx264 -vprofile main -b:v 360k -bt 200k -vf \"scale=w=400:h=300:force_original_aspect_ratio=1,pad=400:300:(ow-iw)/2:(oh-ih)/2\" -c:a aac -ac 2 -ar 44100 \"/home/tuve/tmp/" . $qData['file'] . ".flv\""; - - $encode = "/usr/local/bin/ffmpeg -i \"/usr/web/uploads/" . $qData['file'] . "\" -c:v libx264 -vprofile main -vf \"scale=w=800:h=450:force_original_aspect_ratio=1,pad=800:450:(ow-iw)/2:(oh-ih)/2\" -c:a aac -ac 2 -ar 44100 \"/home/tuve/tmp/" . $qData['file'] . ".flv\""; - - - $encode = "/usr/local/bin/ffmpeg -i \"/usr/web/uploads/" . $qData['file'] . "\" -c:v libx264 -vf \"scale=w=800:h=450:force_original_aspect_ratio=1,pad=800:450:(ow-iw)/2:(oh-ih)/2\" -b:v 1M -maxrate 1M -bufsize 2M -preset veryfast -c:a mp3 -pass 1 -f flv -an -y /dev/null"; + $encode = "/usr/local/bin/ffmpeg -i \"/media/incoming/" . $qData['file'] . "\" -c:v libx264 -vf \"scale=w=800:h=450:force_original_aspect_ratio=1,pad=800:450:(ow-iw)/2:(oh-ih)/2\" -b:v 1M -maxrate 2M -bufsize 4M -preset veryfast -pass 1 -f flv -an -y /dev/null"; print("[$encode]"); @@ -124,7 +48,7 @@ if ($retVal == 1) doExit($encode, $data['vid']); - $encode = "/usr/local/bin/ffmpeg -i \"/usr/web/uploads/" . $qData['file'] . "\" -c:v libx264 -vf \"scale=w=800:h=450:force_original_aspect_ratio=1,pad=800:450:(ow-iw)/2:(oh-ih)/2\" -b:v 1M -maxrate 1M -bufsize 2M -preset veryfast -c:a aac -b:a 128k -pass 2 -f flv -y \"/home/tuve/tmp/" . $qData['file'] . ".flv\""; + $encode = "/usr/local/bin/ffmpeg -i \"/media/incoming/" . $qData['file'] . "\" -c:v libx264 -vf \"scale=w=800:h=450:force_original_aspect_ratio=1,pad=800:450:(ow-iw)/2:(oh-ih)/2\" -b:v 1M -maxrate 2M -bufsize 4M -preset veryfast -c:a mp3 -b:a 128k -pass 2 -f flv -y \"/media/tmp/" . $qData['file'] . ".flv\""; print("[$encode]"); @@ -135,10 +59,8 @@ print($res); - system("rm -fr /tmp/pass_monkey*"); - } - system("/bin/mv \"/usr/home/tuve/tmp/" . $qData['file'] . ".flv\" \"/usr/home/tuve/streams/" . $qData['file'] . ".flv\""); - system("/usr/sbin/chown tuve:www \"/usr/home/tuve/streams/" . $qData['file'] . ".flv\""); + system("/bin/mv \"/media/tmp/" . $qData['file'] . ".flv\" \"/red5/webapps/oflaDemo/streams/" . $qData['file'] . ".flv\""); + system("/usr/sbin/chown tuve:www \"/red5/webapps/oflaDemo/streams/" . $qData['file'] . ".flv\""); /* Move The File To The Mirrors */ /* No more mirrors */ @@ -147,14 +69,12 @@ /* Update The videos_pending Table */ $query = "UPDATE videos_pending SET encoded = 1 WHERE vid = " . $qData['vid']; - // mysql_query($query); $db->query($query); /* Insert The Video Into The System */ $uDate = time(); - $query = "INSERT INTO videos (artist,title,genre,file,rating,classification,oid,mType,length,width,height,added) VALUES(\"" . $qData['artist'] . "\",\"" . $qData['title'] . "\",\"" . $qData['genre'] . "\",\"" . $qData['file'] . ".flv\"," . $qData['rating'] . "," . (($qData['classification'] > 0) ? $qData['classification'] : 1) . "," . $qData['oid'] . ",$mType,$oLen,800,450,$uDate)"; + $query = "INSERT INTO videos (artist,title,genre,file,rating,classification,oid,mType,length,width,height,added) VALUES(\"" . $qData['artist'] . "\",\"" . $qData['title'] . "\",\"" . $qData['genre'] . "\",\"" . $qData['file'] . ".flv\"," . $qData['rating'] . "," . (($qData['classification'] > 0) ? $qData['classification'] : 1) . "," . $qData['oid'] . ",$mType,$mDuration,800,450,$uDate)"; print "[$query]"; - // $res = mysql_query($query); $res = $db->query($query); if (! $res) { echo "Encoding Failed!\n"; @@ -176,19 +96,22 @@ */ mail($qData['firstname'] . " " . $qData['lastname'] . " <" . $qData['email'] . ">", "Media Encoded", $message, $headers); - system("/bin/mv \"/usr/web/uploads/" . $qData['file'] . "\" /usr/home/tuve/encoded"); + system("/bin/mv \"/media/incoming/" . $qData['file'] . "\" /media/orig"); + } } system("/bin/rm /tmp/cron2.php.lock"); -function doExit($errorStr, $vid_id) +function doExit($errorStr, $vid_id, $error_code = 0) { global $db; /* Update The videos_pending Table */ - $query = "UPDATE videos_pending SET encoded = 2 WHERE vid = $vid_id"; - // mysql_query($query); + $query = "UPDATE videos_pending SET encoded = 2, error_code = " . $error_code . ", error_msg = \"" . $errorStr . "\" WHERE vid = $vid_id"; $db->query($query); + print("Error: $errorStr\n"); + + exit(0); } ?>