This article introduces a plug-in that uses ffmpeg-php to convert video formats to flv format, so that we can use this plug-in to convert videos in many formats.
The following is a reference class, the platform uses windows.
The code is as follows 代码如下 | 复制代码 |
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); }
}
| |
Copy code |
|
define("ROOT_DIR",dirname(__FILE__));
class EcodeFlv {
var $fromFile; //Uploaded file
var $toFilePath; // Save file path
var $toPicPath; //Save picture path
var $mpeg; //Path of ffmpeg program file
var $mencode; //Path of mencode program file
var $cmdToFile; //Convert file command
var $cmdToPic; //Convert picture command
var $toFileName; //Converted file name
var $mpegComm; //ffmpeg.exe Conversion command
var $mencodeComm; //command of mencode.exe
var $mpegType;
var $mencodeType;
var $midi; //path to mdi.exevar $cmdMidi; //mdi.exe command
//Initialization class
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",
);
} //Check file typefunction 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;
}
}
}//Set file, picture size">Picture size
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;
}//Start conversion
function toEcode() {
set_time_limit( 0);
exec($this->cmdToFile,$flvStatus)
exec($this->cmdToPic,$picStatus);
exec($this->cmdMidi,$ mStatus);
}}
http://www.bkjia.com/PHPjc/444712.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/444712.htmlTechArticleThis article introduces a plug-in that uses ffmpeg-php to convert video formats to flv format, so that we can convert videos in many formats You can use this plug-in to achieve format conversion. The following is a reference...