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高级的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did30254