用php将任何格式视频转为flv的代码


Posted in PHP onSeptember 03, 2009
<? 
define("ROOT_DIR",dirname(__FILE__)); 
class EcodeFlv { 
var $fromFile; //上传来的文件 
var $toFilePath; //保存文件路径 
var $toPicPath; //保存图片路径 
var $mpeg; //ffmpeg.exe文件的路径 
var $mencode; //mencode.exe文件的路径 
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:\server\php\extras\magic"; 
$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); 
} 
} 
?>
PHP 相关文章推荐
php 多线程上下文中安全写文件实现代码
Dec 28 PHP
解决phpmyadmin中缺少mysqli扩展问题的方法
May 06 PHP
php使用异或实现的加密解密实例
Sep 04 PHP
CI配置多数据库访问的方法
Mar 28 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 PHP
php入门教程之Zend Studio设置与开发实例
Sep 09 PHP
详解php中空字符串和0之间的关系
Oct 23 PHP
PHP实现的XML操作类【XML Library】
Dec 29 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
yii2 url重写并隐藏index.php方法
Dec 10 PHP
Laravel如何自定义command命令浅析
Mar 23 PHP
PHP中用Trait封装单例模式的实现
Dec 18 PHP
ajax php 实现写入数据库
Sep 02 #PHP
php 正则表达式小结
Aug 31 #PHP
自动把纯文本转换成Web页面的php代码
Aug 27 #PHP
PHP高级OOP技术演示
Aug 27 #PHP
php 获取可变函数参数的函数
Aug 26 #PHP
php download.php实现代码 跳转到下载文件(response.redirect)
Aug 26 #PHP
php 文件夹删除、php清除缓存程序
Aug 25 #PHP
You might like
探讨Smarty中如何获取数组的长度以及smarty调用php函数的详解
2013/06/20 PHP
PHP Class&amp;Object -- PHP 自排序二叉树的深入解析
2013/06/25 PHP
thinkphp常见路径用法分析
2014/12/02 PHP
Zend Framework教程之Zend_Db_Table用法详解
2016/03/21 PHP
thinkPHP5.0框架验证码调用及点击图片刷新简单实现方法
2018/09/07 PHP
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
jQuery判断一个元素是否可见的方法
2015/06/05 Javascript
jQuery菜单插件用法实例
2015/07/25 Javascript
jQuery实现的fixedMenu下拉菜单效果代码
2015/08/24 Javascript
10个JavaScript中易犯小错误
2016/02/14 Javascript
JS中的eval 为什么加括号
2016/04/13 Javascript
javascript的document中的动态添加标签实现方法
2016/10/24 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
对angularJs中ng-style动态改变样式的实例讲解
2018/09/30 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
[54:02]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 IG vs VGJ.T
2018/04/03 DOTA
Python数据类型详解(三)元祖:tuple
2016/05/08 Python
Python的for和break循环结构中使用else语句的技巧
2016/05/24 Python
Django实现的自定义访问日志模块示例
2017/06/23 Python
浅谈使用Python变量时要避免的3个错误
2017/10/30 Python
Python2.7实现多进程下开发多线程示例
2019/05/31 Python
Python使用MyQR制作专属动态彩色二维码功能
2019/06/04 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
在linux系统下安装python librtmp包的实现方法
2019/07/22 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
Python-Flask:动态创建表的示例详解
2019/11/22 Python
Python读写操作csv和excle文件代码实例
2020/03/16 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
pyqt5 textEdit、lineEdit操作的示例代码
2020/08/12 Python
商场父亲节活动方案
2014/08/27 职场文书
法制演讲稿
2014/09/10 职场文书
先进班组事迹材料
2014/12/25 职场文书
《钓鱼的启示》教学反思
2016/02/18 职场文书
JavaCV实现照片马赛克效果
2022/01/22 Java/Android
JS封装cavans多种滤镜组件
2022/02/15 Javascript