用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 相关文章推荐
备份mysql数据库的php代码(一个表一个文件)
May 28 PHP
让php处理图片变得简单 基于gb库的图片处理类附实例代码下载
May 17 PHP
PHP防CC攻击实现代码
Dec 29 PHP
关于Iframe如何跨域访问Cookie和Session的解决方法
Apr 15 PHP
深入掌握include_once与require_once的区别
Jun 17 PHP
php cURL和Rolling cURL并发方式比较
Oct 30 PHP
PHP英文字母大小写转换函数小结
May 03 PHP
PHP生成图片验证码、点击切换实例
Jun 25 PHP
php解析url并得到url中的参数及获取url参数的四种方式
Oct 26 PHP
PHP抓取远程图片(含不带后缀的)教程详解
Oct 21 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
May 02 PHP
phpQuery解析HTML乱码问题(补充官网未列出的乱码解决方案)
Apr 01 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
thinkphp获取栏目和文章当前位置的方法
2014/10/29 PHP
jQuery News Ticker 基于jQuery的即时新闻行情展示插件
2011/11/05 Javascript
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
js读写(删除)Cookie实例详解
2013/04/17 Javascript
jQuery中RadioButtonList的功能及用法实例介绍
2013/08/23 Javascript
Jquery倒计时源码分享
2014/05/16 Javascript
Jquery中request和request.form和request.querystring的区别
2015/11/26 Javascript
微信小程序 支付功能(前端)的实现
2017/05/24 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
ES6函数实现排它两种写法解析
2020/05/13 Javascript
python 控制语句
2011/11/03 Python
python操作MySQL数据库具体方法
2013/10/28 Python
python实现简单socket程序在两台电脑之间传输消息的方法
2015/03/13 Python
编写Python脚本来获取Google搜索结果的示例
2015/05/04 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
Python实现的求解最小公倍数算法示例
2018/05/03 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
超简单使用Python换脸实例
2019/03/27 Python
Django后端接收嵌套Json数据及解析详解
2019/07/17 Python
python 图片二值化处理(处理后为纯黑白的图片)
2019/11/01 Python
Pygame的程序开始示例代码
2020/05/07 Python
CSS3制作漂亮的照片墙的实现代码
2016/06/08 HTML / CSS
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
葡萄牙鞋子品牌:Fair
2016/12/10 全球购物
Web Service面试题:如何搭建Axis2的开发环境
2012/06/20 面试题
小学防溺水制度
2014/01/29 职场文书
高中毕业生的个人自我评价
2014/02/21 职场文书
无传销社区工作方案
2014/05/13 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
春秋淹城导游词
2015/02/11 职场文书
2015年父亲节寄语
2015/03/23 职场文书
生产车间管理制度
2015/08/04 职场文书
手写实现JS中的new
2021/11/07 Javascript