用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程序实现支持页面后退的两种方法
Jun 30 PHP
使用VisualStudio开发php的图文设置方法
Aug 21 PHP
PHP用strstr()函数阻止垃圾评论(通过判断a标记)
Sep 28 PHP
php判断是否为json格式的方法
Mar 04 PHP
PHP实现删除非站内外部链接实例代码
Jun 17 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
支持中文的PHP按字符串长度分割成数组代码
May 17 PHP
10款实用的PHP开源工具
Oct 23 PHP
PHP基于单例模式编写PDO类的方法
Sep 13 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
laravel使用Faker数据填充的实现方法
Apr 12 PHP
ThinkPHP5 框架引入 Go AOP,PHP AOP编程项目详解
May 12 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
关于手调机和数调机的选择
2021/03/02 无线电
php开启安全模式后禁用的函数集合
2011/06/26 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
PHP的Yii框架中过滤器相关的使用总结
2016/03/29 PHP
php读取torrent种子文件内容的方法(测试可用)
2016/05/03 PHP
thinkPHP5.0框架引入Traits功能实例分析
2017/03/18 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
jquery $.ajax入门应用一
2008/11/19 Javascript
JavaScript 申明函数的三种方法 每个函数就是一个对象(一)
2009/12/04 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
JavaScript第一篇之实现按钮全选、功能
2016/08/21 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
微信小程序 弹幕功能简单实例
2017/02/14 Javascript
微信小程序之绑定点击事件实例详解
2017/07/07 Javascript
jQuery上传插件webupload使用方法
2017/08/01 jQuery
hammer.js实现图片手势放大效果
2017/08/29 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
vue.js的双向数据绑定Object.defineProperty方法的神奇之处
2019/01/18 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
2019/08/20 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
2019/09/03 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
Python实现短网址ShortUrl的Hash运算实例讲解
2015/08/10 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
2019/02/26 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
Django Admin中增加导出Excel功能过程解析
2019/09/04 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
python 负数取模运算实例
2020/06/03 Python
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
突破canvas语法限制 让他支持链式语法
2012/12/24 HTML / CSS
美国婴儿和儿童家具网上商店:ABaby.com
2018/07/02 全球购物
什么是serialVersionUID
2016/03/04 面试题
男方父母婚礼答谢词
2014/01/25 职场文书
关于是否需要写商业计划书
2014/02/07 职场文书
2014年清明节寄语
2014/04/03 职场文书
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
2021/04/27 Python