如何用php將任何格式視頻轉為flv_PHP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:解讀常用PHP函數功能中文對照表
      PHP函式索引967個函式 共有967個函式 Abs:取得絕對值。 Acos:取得反余弦值。 ada_afetch:取得資料庫的傳回列。 ada_autocommit:開關自動更動功能。 ada_close:關閉AdabasD連結。 ada_commit:更動AdabasD資料庫。 ada_connect:連結至AdabasD資料庫。 ada_exec

      <?
      define("ROOT_DIR",dirname(__FILE__));
      class EcodeFlv {
        var $fromFile;   //上傳來的文件
        var $toFilePath;  //保存文件路徑
        var $toPicPath;  //保存圖片路徑
        var $mpeg; //ffmpeg.exe文件的路徑
        var $mencode; //mencode.exe文件的路徑
        var $cmdToFile; //轉換文件命令
        var $cmdToPic;  //轉換圖片命令
        var $toFileName; //轉換后的文件名
        var $mpegComm; //ffmpeg.exe的轉換命令
        var $mencodeComm; //mencode.exe的命令
        var $mpegType; 
        var $mencodeType;
        var $midi; //mdi.exe的路徑
        var $cmdMidi; //mdi.exe的命令
      //初始化類
        function EcodeFlv($fromFile,$toFilePath,$toPicPath,$mpeg,$mencode,$midi) {
         $this->mpegComm = false;
         $this->mencodeComm = false;
         $this->fromFile = $fromFile;
         $this->toFilePath = $toFilePath;
         $this->toPicPath = ROOT_DIR."/".$toPicPath;
         $this->mpeg = ROOT_DIR.$mpeg;
         $this->mencode = ROOT_DIR.$mencode;
         $this->midi = ROOT_DIR.$midi;
         $this->mpegType=array (
             "audio/x-mpeg"=>".mp3",
             "video/mpeg"=>".mpeg",
             "video/3gpp"=>".3gp",
             "video/x-ms-asf"=>".asf",
             "video/x-msvideo"=>".avi"
         );
         $this->mencodeType = array(
             "application/vnd.rn-realmedia"=>".rm",
             "audio/x-pn-realaudio"=>".rmvb",
             "audio/x-ms-wmv"=>".wmv",
         );
        }
       
      //檢查文件類型
       
        function checkType() {
          if(function_exists(mime_content_type)){
           return false;
          }else{
           //$contentType = mime_content_type($this->fromFile);
           $exe = "D:\server\php\extras\magic";
           $handel = new finfo(FILEINFO_MIME, $exe); 
           $contentType =  $handel->file($this->fromFile); 
          }
          foreach($this->mpegType as $index=>$key){
           if($contentType == $index){
            $name = md5(date("Ymd").tiime());
            $this->toFileName = $name;
            $this->$mpegComm = true;
            return true;
           }
          }
          foreach($this->mencodeType as $index=>$key){
            if($contentType == $index){
            $name = md5(date("Ymd").time());
            $this->toFileName = $name;
            $this->mencodeComm = true;
            return true;
               }else{
             return false;
            }
          }
        }
       
      //設置文件,圖片大小
        function setSize($flvSize,$picSize) {
          $flvWidth = $flvSize[0];
          $flvHeight = $flvSize[1];
          $picWidth = $picSize[0];
          $picHeight = $picSize[1];
          $picName = $this->toPicPath.$this->toFileName.".jpg";
          $flvName = $this->toFilePath.$this->toFileName.".flv";
          $toMdi = ROOT_DIR."/".$flvName;
          $size = $picWidth."x".$picHeight;
          if($this->mpegComm){
            $this->cmdToFile= "$this->mpeg -i $this->fromFile -y -ab 56 -ar 22050 -b 500 -r 15 -s $flvWith*$flvHeight $flvName";
          }
          elseif($this->mencodeComm){
            $this->cmdToFile = "$this->mencode $this->fromFile  -vf scale=$flvWidth:$flvHeight -ffourcc FLV1 -of lavf -ovc lavc -lavcopts vcodec=flv:vbitrate=70:acodec=mp3:abitrate=56:dia=-1 -ofps 25 -srate 22050 -oac mp3lame -o $flvName";
          }
          $this->cmdToPic = "$this->mpeg -i $toMdi -y -f image2 -ss 8 -t 0.003 -s $size $picName";
          $this->cmdMidi = "$this->midi $toMdi /k";
          echo $this->cmdToPic;
        }
       
      //開始轉換
        function toEcode() {
          set_time_limit(0);
          exec($this->cmdToFile,$flvStatus)
          exec($this->cmdToPic,$picStatus);
          exec($this->cmdMidi,$mStatus);
        }
       
       }
      ?>

      分享:PHP教程之入門需要掌握的幾種功能代碼
      經典循環例子 HTML HEAD TITLE經典循環例子/TITLE /HEAD BODY ? for($counter=1;$counter=6;$counter++)//循環6次 { print(Bcounteris$counter/BBR\n);//打印6次 } ? /BODY /HTML for的高級運用 HTML HEAD TITLEfor的高級運用/TITLE /HEAD BODY ? /* **打

      來源:模板無憂//所屬分類:PHP教程/更新時間:2010-01-09
      相關PHP教程