用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实时显示输出
Oct 02 PHP
PHP用GD库生成高质量的缩略图片
Mar 09 PHP
探讨:使用XMLSerialize 序列化与反序列化
Jun 08 PHP
PHP PDOStatement对象bindpram()、bindvalue()和bindcolumn之间的区别
Nov 20 PHP
分享ThinkPHP3.2中关联查询解决思路
Sep 20 PHP
PHP常用字符串操作函数实例总结(trim、nl2br、addcslashes、uudecode、md5等)
Jan 09 PHP
ECSHOP完美解决Deprecated: preg_replace()报错的问题
May 17 PHP
CI框架中$this-&gt;load-&gt;library()用法分析
May 18 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
Aug 07 PHP
PHP简单实现模拟登陆功能示例
Sep 15 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
PHP根据树的前序遍历和中序遍历构造树并输出后序遍历的方法
Nov 10 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入门的学习方法
2007/01/02 PHP
PHPExcel读取Excel文件的实现代码
2011/12/06 PHP
PHP利用header跳转失效的解决方法
2014/10/24 PHP
PHP5.3连接Oracle客户端及PDO_OCI模块的安装方法
2016/05/13 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
jQuery setTimeout传递字符串参数报错的解决方法
2014/06/09 Javascript
jquery实现实时改变网页字体大小、字体背景色和颜色的方法
2015/08/05 Javascript
javascript实现显示和隐藏div方法汇总
2015/08/14 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
2016/03/08 Javascript
js中字符串编码函数escape()、encodeURI()、encodeURIComponent()区别详解
2016/04/01 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
Layui组件Table绑定行点击事件和获取行数据的方法
2018/08/19 Javascript
微信小程序实现二维码签到考勤系统
2020/01/16 Javascript
bootstrap-table后端分页功能完整实例
2020/06/01 Javascript
详解JavaScript中new操作符的解析和实现
2020/09/04 Javascript
[01:28:24]NAVI vs VG Supermajor 败者组 BO3 第三场 6.5
2018/06/06 DOTA
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
python实现堆排序的实例讲解
2020/02/21 Python
PyCharm中Matplotlib绘图不能显示UI效果的问题解决
2020/03/12 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
通俗易懂了解Python装饰器原理
2020/09/17 Python
Python3.7安装PyQt5 运行配置Pycharm的详细教程
2020/10/15 Python
加拿大时尚少女服装品牌:Garage
2016/10/10 全球购物
苏格兰销售女装、男装和童装的连锁店:M&Co
2018/03/16 全球购物
2014年小学重阳节活动策划方案
2014/09/16 职场文书
党的群众路线教育实践活动个人整改方案
2014/10/25 职场文书
会计岗位职责
2015/02/03 职场文书
公证书
2019/04/17 职场文书
纯CSS实现酷炫的霓虹灯效果
2021/04/13 HTML / CSS
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python
一篇文章看懂MySQL主从复制与读写分离
2021/11/07 MySQL