用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做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
PHP 图片水印类代码
Aug 27 PHP
Zend Framework页面缓存实例
Jun 25 PHP
destoon调用discuz论坛中带图片帖子的实现方法
Aug 21 PHP
Yii框架form表单用法实例
Dec 04 PHP
简要剖析PHP的Yii框架的组件化机制的基本知识
Mar 17 PHP
PHP中的Trait 特性及作用
Apr 03 PHP
php创建图像具体步骤
Mar 13 PHP
thinkPHP5框架分页样式类完整示例
Sep 01 PHP
PHP面向对象程序设计继承用法简单示例
Dec 28 PHP
在laravel中实现将查询的对象转换为多维数组的函数
Oct 21 PHP
laravel使用redis队列实例讲解
Mar 23 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
从C/C++迁移到PHP——判断字符类型的函数
2006/10/09 PHP
PHP中文分词的简单实现代码分享
2011/07/17 PHP
PHP漏洞全解(详细介绍)
2012/11/13 PHP
基于PHP+Ajax实现表单验证的详解
2013/06/25 PHP
php接口数据加密、解密、验证签名
2015/03/12 PHP
PHP实现基于文本的摩斯电码生成器
2016/01/11 PHP
详解json在php中的应用
2018/09/30 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
简单的代码实现jquery定时器
2013/11/17 Javascript
JS获取当前使用的浏览器名字以及版本号实现方法
2016/08/19 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
AngularJS实现网站换肤实例
2021/02/19 Javascript
详解Javascript百度地图接口开发文档中的类和方法
2017/02/07 Javascript
JS实现直接运行html代码的方法
2017/03/13 Javascript
使用Dropzone.js上传的示例代码
2017/10/10 Javascript
微信小程序实现星级评分和展示
2018/07/05 Javascript
layui文件上传控件带更改后数据传值的方法
2019/09/23 Javascript
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
Vue优化:常见会导致内存泄漏问题及优化详解
2020/08/04 Javascript
详解Python中内置的NotImplemented类型的用法
2015/03/31 Python
详解Python3中的Sequence type的使用
2015/08/01 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
python的mysql数据库建立表与插入数据操作示例
2019/09/30 Python
浅析python 定时拆分备份 nginx 日志的方法
2020/04/27 Python
基于注解实现 SpringBoot 接口防刷的方法
2021/03/02 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
应届毕业生求职信范文分享
2013/12/26 职场文书
《我的信念》教学反思
2014/02/15 职场文书
市场营销管理毕业生自荐信
2014/03/03 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
导游词之珠海轮廓
2019/10/25 职场文书
Redis持久化与主从复制的实践
2021/04/27 Redis
Python实现信息轰炸工具(再也不怕说不过别人了)
2021/06/11 Python
MySQL连接控制插件介绍
2021/09/25 MySQL
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers