所有视频格式转换为flv

原创 2012年03月26日 16:32:38

class EncodeFlv{
 
 private static $instance;
 
 private $config;
 
 private $ffmpeg,$mdi;
 
 private $strResult = array(),$runningResult = array();
 
 private $from,$to;
 
 private $cmd = array();
 
 public static function instance($from = '',$to = ''){
  if (!function_exists('exec')){
   die('视频转换需求函数被禁用');
  }
  if (!$from){
   die('未提供来源文件');
  }elseif(!is_file($from)){
   die('无效来源文件');
  }
  if (!$to){
   $filedir = dirname($from);
   $filename = basename($from,'.'.pathinfo($from,PATHINFO_EXTENSION));
   $to = $filedir.DIRECTORY_SEPARATOR.$filename.'.flv';
  }elseif('flv' != pathinfo($to,PATHINFO_EXTENSION)){
   $to .= '.flv';
  }
  if(is_file($to)){
   die('目标同名文件已存在');
  }
  
  self::$instance = new self;
  list(self::$instance->from,self::$instance->to) = array($from,$to);
  return self::$instance;
 }
 
 public function config(array $config){
  //var_dump($config);
  //echo is_file($config['ffmpeg']);
  if (isset($config['ffmpeg']) && is_file($config['ffmpeg'])){
   $this->ffmpeg = $config['ffmpeg'];
  }else{
   die('请传入正确的ffmpeg.exe工具路径');
  }
  if (isset($config['mdi']) && is_file($config['mdi'])){
   $this->mdi = $config['mdi'];
  }else{
   die('请传入正确的mdi.exe工具路径');
  }
  $this->config = $config;
  return $this;
 }
 
 public function encode($del = true){
  set_time_limit(0);
  
  if (!is_array($this->config)){
   $config = array(
    'ffmpeg'=>'exec'.DIRECTORY_SEPARATOR.'ffmpeg.exe',
    'mdi'=>'exec'.DIRECTORY_SEPARATOR.'flvmdi.exe'
   );
   $this->config($config);
  }
  
  $this->cmd['ffmpeg'] = $this->ffmpeg.' -i '.$this->from.' '.$this->to;
  $this->cmd['mdi'] = $this->mdi.' '.$this->to;
  
  $strResult[] = exec($this->cmd['ffmpeg'],$runningResul[]);
  if (!is_file($this->to)){
   die(var_dump($strResult,$runningResul));
  }
  $strResult[] = exec($this->cmd['mdi'],$runningResul[]);
  
  if ($del){
   @unlink($this->from);
  }
  
  return $this->to;
 }
}

 

用法:

$content = EncodeFlv::instance(源文件路径)->config(array(

'ffmpeg'=>ffmpeg.exe的路径,

'mdi'=>flvmdi.exe的路径

))->encode();

 

ffmpeg.exe和flvmdi.exe另请下载,

相关文章推荐

利用ffmpeg实现视频格式转换成flv,保证能成功运行

/** * 视频转换(转换为flv格式) * * 创建时间:2010-11-21 */ public class TestConvert { /** 输入文件路径属性 */ priva...

C# asp.net 视频格式转换成flv

  • 2017年11月08日 14:01
  • 11.67MB
  • 下载

视频格式转换flv

  • 2015年01月19日 14:35
  • 10.44MB
  • 下载

如何使用java代码进行视频格式的转换(FLV)

如何使用java代码进行视频格式的转换(FLV)

java调用ffmpeg转换视频格式为flv

原文地址:java调用ffmpeg转换视频格式为flv作者:笑看风云 注意:下面的程序是在Linux下运行的,如果在windows下rmvb转换成avi会出现问题,想成功需要下载下个drv43260...

asp.net 视频格式转换成flv格式

  • 2017年11月02日 13:55
  • 11.67MB
  • 下载

如何使用java代码进行视频格式的转换(FLV)

一,前言     在给网页添加视频播放功能后,发现上传的视频有各种格式,那么就需要将他么转换成FLV,以很好的支持在线视频播放。 二,准备     工具包    http://pan.baidu...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:所有视频格式转换为flv
举报原因:
原因补充:

(最多只允许输入30个字)