用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 SQLite类
May 07 PHP
smarty中先strip_tags过滤html标签后truncate截取文章运用
Oct 25 PHP
php object转数组示例
Jan 15 PHP
jQuery+PHP+ajax实现微博加载更多内容列表功能
Jun 27 PHP
ThinkPHP的SAE开发相关注意事项详解
Oct 09 PHP
PHP实现的统计数据功能详解
Dec 06 PHP
php字符集转换
Jan 23 PHP
thinkphp关于简单的权限判定方法
Apr 03 PHP
php workerman定时任务的实现代码
Dec 23 PHP
通过PHP设置BugFree获取邮箱通知
Apr 25 PHP
yii2的restful api路由实例详解
May 14 PHP
PHPExcel实现的读取多工作表操作示例
Apr 14 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
用PHP实现多服务器共享SESSION数据的方法
2007/03/16 PHP
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
CheckBoxList多选样式jquery、C#获取选择项
2013/09/06 Javascript
20个实用的JavaScript技巧分享
2014/11/28 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
JavaScript使用shift方法移除素组第一个元素实例分析
2015/04/06 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
Vue关于数据绑定出错解决办法
2017/05/15 Javascript
bootstrap table使用入门基本用法
2017/05/24 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
微信小程序云开发之使用云数据库
2019/05/17 Javascript
jQuery+ajax实现批量删除功能完整示例
2019/06/06 jQuery
vue中选中多个选项并且改变选中的样式的实例代码
2020/09/16 Javascript
Python splitlines使用技巧
2008/09/06 Python
Python ORM框架SQLAlchemy学习笔记之数据查询实例
2014/06/10 Python
编写Python小程序来统计测试脚本的关键字
2016/03/12 Python
利用python批量修改word文件名的方法示例
2017/10/17 Python
python监控键盘输入实例代码
2018/02/09 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
英国现代绅士品牌:Hackett
2017/12/17 全球购物
小米旗下精品生活电商平台:小米有品
2018/12/18 全球购物
德国最大的网上足球商店:11teamsports
2019/09/11 全球购物
List、Map、Set三个接口,存取元素时,各有什么特点?
2015/09/27 面试题
介绍Ibatis的核心类
2013/11/18 面试题
建筑人员岗位职责
2013/12/25 职场文书
行政文秘岗位职责范本
2014/02/10 职场文书
销售主管竞聘书
2014/03/31 职场文书
工作鉴定评语
2014/05/04 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
清明节寄语2015
2015/03/23 职场文书
给校长的建议书作文400字
2015/09/14 职场文书