好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

ffmpeg-php将视频格式转为flv格式实现代码 - php高级

ffmpeg-php将视频格式转为flv格式实现代码

本文章介绍了一个插件利用ffmpeg-php将视频格式转为flv格式,这样很多格式的视频我们都可以利用这个插件来实现格式转换,以下是一个参考类,平台使用windows,代码如下:

define( "ROOT_DIR" ,dirname( __FILE__ ));  class  EcodeFlv {  var   $fromFile ;    //上传来的文件   var   $toFilePath ;   //保存文件路径   var   $toPicPath ;   //保存图片路径   var   $mpeg ;  //ffmpeg程序文件的路径   var   $mencode ;  //mencode程序文件的路径   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:serverphpextrasmagic" ;  $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;  } //开源代码phpfensi测试数据     //开始转换   function  toEcode() {  set_time_limit(0);  exec ( $this ->cmdToFile, $flvStatus )  exec ( $this ->cmdToPic, $picStatus );  exec ( $this ->cmdMidi, $mStatus );  }    } 

查看更多关于ffmpeg-php将视频格式转为flv格式实现代码 - php高级的详细内容...

  阅读:39次