本文章介绍了一个插件利用ffmpeg-php将视频格式转为flv格式,这样很多格式的视频我们都可以利用这个插件来实现格式转换,以下是一个参考类,平台使用windows,代码如下:
-
define("ROOT_DIR",dirname(__FILE__));
-
class EcodeFlv {
-
var $fromFile;
-
var $toFilePath;
-
var $toPicPath;
-
var $mpeg;
-
var $mencode;
-
var $cmdToFile;
-
var $cmdToPic;
-
var $toFileName;
-
var $mpegComm;
-
var $mencodeComm;
-
var $mpegType;
-
var $mencodeType;
-
var $midi;
-
var $cmdMidi;
-
-
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{
-
-
$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);
-
}
-
-
}
-
(责任编辑:好模板) |