Newer
Older
tuve_scripts / cron2.php
@Christopher W. Olsen Christopher W. Olsen on 24 Mar 2019 4 KB Sync
<?
  /*
  (C) 2008 Christopher Olsen <cwolsen@domainatlantic.com>

  $Id$
  */
  ini_set('include_path',"/home/tuve/include/");
  include("site.inc");

  if (file_exists("/tmp/cron2.php.lock"))
    exit(0);

  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);

  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');

   $movie = new ffmpeg_movie("/usr/web/uploads/$file");
 
   $oW = $movie->getFrameWidth();
   $oH = $movie->getFrameHeight();
   $oLen = $movie->getDuration(); 

   print("W: $oW H: $oH");

   if (($oW == 0) || ($oH == 0)) {
     $mType = 2;
     $encode = "/usr/local/bin/ffmpeg -loop_input -i \"/usr/home/reddawg/UbixCube.gif\" -i \"/usr/web/uploads/$file\" -ar 44100 -ac 2 -ab 128k -t $oLen -r 0.5 -f flv -y \"/media/streams/$file.flv\"";
     print("[$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 ";
       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 ";
       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/$file\" -an $pad_str $vidParams -f flv -s " . $nW . "x" . $nH . " -pass 1 -passlogfile /tmp/pass_monkey -y \"/media/tmp/$file.flv\"";
     print("[$encode]");
     $res = system($encode,&$retVal);
     if ($retVal == 1)
       doExit($encode,$vid);
     $encode = "/usr/local/bin/ffmpeg -i \"/usr/web/uploads/$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/$file.flv\"";
     print("[$encode]");
     $res = system($encode,&$retVal);
     if ($retVal == 1)
       doExit($encode,$vid);
     print($res);
     system("rm -fr /tmp/pass_monkey*");
     }
   system("/bin/mv \"/media/tmp/$file.flv\" \"/media/streams/$file.flv\"");
   system("/usr/sbin/chown tuve:www \"/media/streams/$file.flv\"");

   /* Move The File To The Mirrors */
   system("/usr/bin/scp \"/media/streams/$file.flv\" www@utopia.ubixonline.com:.");
   system("/usr/bin/scp \"/media/streams/$file.flv\" tuploads@tuve.ubixonline.com:.");

   /* Update The videos_pending Table */
   $query = "UPDATE videos_pending SET encoded = 1 WHERE vid = $vid";
   mysql_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(\"$artist\",\"$title\",\"$genre\",\"$file.flv\",$rid,$cid,$oid,$mType,$oLen,400,300,$uDate)";
   print "[$query]";
   $res = mysql_query($query);
   if (!$res) {
     echo "Encoding Failed!\n";
     $eStatus = "Failed";
     }
   else
     $eStatus = "Successful";

   $headers  = 'MIME-Version: 1.0' . "\r\n";
   $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
   $headers .= 'From: TUve Support <tuve@tuve.tv>' . "\r\n";

   $message = "New Video Encoded: $artist - $title<BR><BR>Your video is now ready for viewing.<BR>Sincerely,<BR>The TUve Staff<BR>\n";
   mail("Christopher Olsen <cwolsen@domainatlantic.com>","Media Encoding $eStatus",$message,$headers);

   $fname = mysql_result($result,0,'firstname');
   $lname = mysql_result($result,0,'lastname');
   $email = mysql_result($result,0,'email');
   mail("$fname $lname <$email>","Media Encoded",$message,$headers);

   system("/bin/mv \"/usr/web/uploads/$file\" /media/encoded");
   }
  system("/bin/rm /tmp/cron2.php.lock");

function doExit($errorStr,$vid_id) {
  /* Update The videos_pending Table */
  $query = "UPDATE videos_pending SET encoded = 2 WHERE vid = $vid_id";
  mysql_query($query);
  print("Error: $errorStr\n");
  exit(0);
  }
?>