用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 相关文章推荐
用函数读出数据表内容放入二维数组
Oct 09 PHP
PHP_MySQL教程-第一天
Mar 18 PHP
php下的权限算法的实现
Apr 28 PHP
PHP memcache扩展的三种安装方法
Apr 26 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
Jun 07 PHP
php引用计数器进行垃圾收集机制介绍
Sep 19 PHP
PHP输入输出流学习笔记
May 12 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析
Oct 11 PHP
php生成图片缩略图功能示例
Feb 22 PHP
thinkPHP5.0框架独立配置与动态配置方法
Mar 17 PHP
php实现记事本案例
Oct 20 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
source.php查看源文件
2006/12/09 PHP
php下HTTP Response中的Chunked编码实现方法
2008/11/19 PHP
php网上商城购物车设计代码分享
2012/02/15 PHP
编写安全 PHP应用程序的七个习惯深入分析
2013/06/08 PHP
Yii2下session跨域名共存的解决方案
2017/02/04 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
php 二维数组快速排序算法的实现代码
2017/10/17 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
兼容ie、firefox的图片自动缩放的css跟js代码分享
2013/08/12 Javascript
javascript删除字符串最后一个字符
2014/01/14 Javascript
javascript实现框架高度随内容改变的方法
2015/07/23 Javascript
浅析javascript的return语句
2015/12/15 Javascript
angularjs中ng-bind-html的用法总结
2017/05/23 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
详解如何构建Angular项目目录结构
2017/07/13 Javascript
Vue中封装input组件的实例详解
2017/10/17 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
vue-cli单页面预渲染seo-prerender-spa-plugin操作
2020/08/10 Javascript
python获取豆瓣电影简介代码分享
2014/01/16 Python
python实现简单的TCP代理服务器
2014/10/08 Python
详解在Python和IPython中使用Docker
2015/04/28 Python
pycharm安装和首次使用教程
2018/08/27 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
2019/02/22 Python
对python特殊函数 __call__()的使用详解
2019/07/02 Python
pycharm下配置pyqt5的教程(anaconda虚拟环境下+tensorflow)
2020/03/25 Python
python 实现简单的计算器(gui界面)
2020/11/11 Python
英文求职信结束语大全
2013/10/26 职场文书
管事部库房保管员岗位职责
2014/02/21 职场文书
大学生就业自荐书
2014/06/16 职场文书
学生逃课万能检讨书2000字
2015/02/17 职场文书
销售人员管理制度
2015/08/06 职场文书
OpenCV3.3+Python3.6实现图片高斯模糊
2021/05/18 Python
Windows 11要来了?微软文档揭示Win11太阳谷 / Win10有两个不同版本
2021/11/21 数码科技
Z-Order加速Hudi大规模数据集方案分析
2022/03/31 Servers
通过feDisplacementMap和feImage实现水波特效
2022/04/24 HTML / CSS