ffmpeg-php将视频格式转为flv格式实现代码
本文章介绍了一个插件利用ffmpeg-php将视频格式转为flv格式,这样很多格式的视频我们都可以利用这个插件来实现格式转换,以下是一个参考类,平台使用windows,代码如下:
<?php 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; } //开始转换 function toEcode() { set_time_limit(0); exec($this->cmdToFile, $flvStatus) exec($this->cmdToPic, $picStatus); exec($this->cmdMidi, $mStatus); } }
本文地址:http://www.phprm.com/develop/fs4991.html
转载随意,但请附上文章地址:-)