用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 相关文章推荐
Adodb的十个实例(清晰版)
Dec 31 PHP
php中cookie的作用域
Mar 27 PHP
提高define性能的php扩展hidef的安装和使用
Jun 14 PHP
php利用腾讯ip分享计划获取地理位置示例分享
Jan 20 PHP
PHP中__FILE__、dirname与basename用法实例分析
Dec 01 PHP
php常量详细解析
Oct 27 PHP
PHP图像识别技术原理与实现
Oct 27 PHP
用PHP的socket实现客户端到服务端的通信实例详解
Feb 04 PHP
PHP折半(二分)查找算法实例分析
May 12 PHP
php PDO属性设置与操作方法分析
Dec 27 PHP
php和redis实现秒杀活动的流程
Jul 17 PHP
php使用event扩展的io复用测试的示例
Oct 20 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
将CMYK颜色值和RGB颜色相互转换的PHP代码
2014/07/28 PHP
php单态设计模式(单例模式)实例
2014/11/18 PHP
PHP程序中的文件锁、互斥锁、读写锁使用技巧解析
2016/03/21 PHP
php中json_encode不兼容JSON_UNESCAPED_UNICODE的解决方案
2016/05/31 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
鼠标右击事件代码(asp.net后台)
2011/01/27 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
JavaScript中数据结构与算法(四):串(BF)
2015/06/19 Javascript
node.js+express制作网页计算器
2016/01/17 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
微信小程序 地图map详解及简单实例
2017/01/10 Javascript
如何写好你的JavaScript【推荐】
2017/03/02 Javascript
Vue.js 2.0和Cordova开发webApp环境搭建方法
2018/02/26 Javascript
JS实现求字符串中出现最多次数的字符和次数示例
2019/07/05 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
在Vue 中获取下拉框的文本及选项值操作
2020/08/13 Javascript
[01:23:59]2018DOTA2亚洲邀请赛 4.1 小组赛 B组 VP vs Secret
2018/04/03 DOTA
跟老齐学Python之编写类之四再论继承
2014/10/11 Python
对python中的高效迭代器函数详解
2018/10/18 Python
对Python中Iterator和Iterable的区别详解
2018/10/18 Python
python socket 聊天室实例代码详解
2019/11/14 Python
基于python实现学生信息管理系统
2019/11/22 Python
数组越界问题
2015/10/21 面试题
金士达面试非笔试
2012/03/14 面试题
大四学生毕业自荐信
2013/11/07 职场文书
酒店总经理助理职责
2014/02/12 职场文书
自荐信如何制作?
2014/02/21 职场文书
产品质量承诺书范文
2014/03/27 职场文书
通知函的格式
2015/04/27 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书
python的变量和简单数字类型详解
2021/09/15 Python
windows11怎么查看wifi密码? win11查看wifi密码的技巧
2021/11/21 数码科技
Pandas 数据编码的十种方法
2022/04/20 Python