[FFmpeg]用ffmpeg-php做视频换(源代码)
[FFmpeg]用ffmpeg-php做视频换(源代码)ffmpeg安装包,php装ffmpeg
FLV 是FLASH VIDEO的简称,FLV流媒体格式是随着Flash MX的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入Flash后,使 导出的SWF文件体积庞大,不能在网络上很好的使用等缺点。
现在的网站应用中,经常会用到flv的流媒体,而需要上传的视频格式可能是各种各样的,如avi,mpeg。
本文章介绍了通过php调用ffmpeg和mencode两个软件,将多种格式视频转为flv格式。
详细使用请参考:ffmpeg-php
Ffmpeg快速命令使用
MEncoder的基础用法
以下是一个参考类,平台使用windows。
- <?
- define("ROOT_DIR",dirname(__FILE__));
- class EcodeFlv {
- var $fromFile; //CuPlayer.com上传来的文件
- var $toFilePath; //CuPlayer.com保存文件路径
- var $toPicPath; //CuPlayer.com保存图片路径
- var $mpeg; //CuPlayer.comffmpeg程序文件的路径
- var $mencode; //mencode程序文件的路径
- var $cmdToFile; //CuPlayer.com转换文件命令
- var $cmdToPic; //CuPlayer.com转换图片命令
- var $toFileName; //CuPlayer.com转换后的文件名
- var $mpegComm; //ffmpeg.exe的转换命令
- var $mencodeComm; //mencode.exe的命令
- var $mpegType;
- var $mencodeType;
- var $midi; //mdi.exe的路径
- var $cmdMidi; //mdi.exe的命令
- //CuPlayer.com初始化类
- 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",
- );
- } //CuPlayer.com检查文件类型
- 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;
- }
- }
- }
- //CuPlayer.com设置文件,图片大小
- 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;
- }
- //CuPlayer.com开始转换
- function toEcode() {
- set_time_limit(0);
- exec($this->cmdToFile,$flvStatus);
- exec($this->cmdToPic,$picStatus);
- exec($this->cmdMidi,$mStatus);
- }
- }
热门文章推荐
- [FFmpeg]ffmpeg各类参数说明与使用示例
- [FFmpeg]ffmpeg命令参数详解(帮助说明)强大所有参数
- [ffmpeg]FFmpeg参数命令及用法整理(很全面详细)
- [FFmpeg]图文介绍windows下实现编译ffmpeg工程的详细步骤
- [ffmpeg]ffmpeg使用参数的中文说明
- [ffmpeg]如何使用ffmpeg下载分段并加密的m3u8视频流
- [FFmpeg]php下用ffmpeg扩展实现视频转换截图
- [FFmpeg]ffmpeg支持的格式全解析
请稍候...