所有视频格式转换为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另请下载,

C#将视频文件转换为FLV格式

string tools = @"F:/Temp/FLVConventDemo/Tools/ffmpeg.exe"; string source = @"F:/Temp/FLVConventDemo/...
  • wangq_jx
  • wangq_jx
  • 2013年12月13日 15:24
  • 667

牛人写的把其他格式的文件转换成flv格式的文件,java版

在做视频相关的项目中需要把其它格式的文件转换成 flv 格式的文件,因 flv 文件体积小,且可以边下载边播放,很有优势,然后用播放器即可在web页面里播放,这个就是设计 flv 格式文件的生成问题,...
  • shenzhenNBA
  • shenzhenNBA
  • 2013年10月18日 15:12
  • 5982

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

一,前言     在给网页添加视频播放功能后,发现上传的视频有各种格式,那么就需要将他么转换成FLV,以很好的支持在线视频播放。 二,准备     工具包    http://pan.baidu...
  • u013075621
  • u013075621
  • 2013年12月08日 13:40
  • 1373

安装和使用ffmpeg转换视频为flv文件(windows和linux)

1、环境winxp-sp2下:从 http://ffdshow.faireal.net/mirror/ffmpeg/ 下载最新版本的 FFMpeg.exe直接用就行(须rar解压)。 以下的东西是为对...
  • TomyGuan
  • TomyGuan
  • 2007年08月14日 09:06
  • 3026

Java 实现视频转FLV,支持完成进度百分比

Java 实现视频转FLV,支持完成进度百分比
  • tanghui2qinghong
  • tanghui2qinghong
  • 2014年04月22日 13:40
  • 1448

如何将爱奇艺视频qsv格式转换为FLV格式

首先下载“爱奇艺视频QSV转换器”
  • daban1
  • daban1
  • 2016年12月08日 11:37
  • 402

C# 视频格式转换类

using System.Web; using System.Configuration; namespace DotNet.Utilities { public class VideoC...
  • zuoyefeng1990
  • zuoyefeng1990
  • 2017年04月18日 23:51
  • 571

最简单的基于FFMPEG的封装格式转换器(无编解码)

本文介绍一个基于FFMPEG的封装格式转换器。需要注意的是,本程序并不进行视音频的编码和解码工作。而是直接将视音频压缩码流从一种封装格式文件中获取出来然后打包成另外一种封装格式的文件。传统的转码程序工...
  • leixiaohua1020
  • leixiaohua1020
  • 2014年05月10日 00:25
  • 47799

linux下处理视频为flv格式

原贴:http://blog.csdn.net/crackcell/archive/2007/05/29/1629062.aspx      http://blog.csdn.net/octverve...
  • chinalinuxzend
  • chinalinuxzend
  • 2007年10月17日 00:29
  • 5778

hQsv2Flv 爱奇艺QSV转FLV工具

hQsv2Flv一款爱奇艺QSV转FLV的软件新鲜出炉 该软件不需要借助任何第三方软件就可实现QSV转化成FLV, 在爱奇艺视频桌面版V3.1.0.14及以下版本测试通过 该软件为试用软件, 试用版一...
  • u012352987
  • u012352987
  • 2014年02月23日 14:58
  • 2850
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:所有视频格式转换为flv
举报原因:
原因补充:

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