ffmpeg-php安装与使用

(1)简单调用demo,在单独的文件使用,不包含类,不指定名字空间

<?php

//按指定帧生成缩略图

if(extension_loaded('ffmpeg')){//判断ffmpeg是否载入    

$mov = new ffmpeg_movie('D:\robot.avi');//视频的路径    

$ff_frame = $mov->getFrame(2);    

$gd_image = $ff_frame->toGDImage();    

$img=$_SERVER['DOCUMENT_ROOT']."/test.jpg";//要生成图片的绝对路径    

imagejpeg($gd_image, $img);//创建jpg图像    

imagedestroy($gd_image);//销毁一图像

}else{    

  echo "ffmpeg没有载入";

}

?>
注意:将ffmpeg_movie('D:\robot.avi');中的路径替换成你视频的路径,你发现在你PHP文件的同目录下生成了一个test.jpg,说明创建成功。


(2) 在名字空间和其它类中使用

If you want to access another namespace, which includes the global namespace (which includes PHP classes, interfaces, as well as any custom defined global items), you have two choices.

  1. Access it using it's full namespace (which is \ for global) & class name:

    $obj = new \ffmpeg_movie;
    $obj = new \DateTime;
    
  2. Reference the external class using use:

    use ffmpeg_movie;
    use DateTime as AwesomeDateTimeClass;
    
    $obj = new ffmpeg_movie;
    $obj = new AwesomeDateTimeClass;
    

(3) 缩放图片尺寸

       if(extension_loaded('ffmpeg')){
            //var_dump(realpath($sourceFileUrl)); exit();
            //如果目标目录不存在,将创建目录
            $this->createFolder(dirname($targetFileUrl));
            
            $mov = new \ffmpeg_movie(realpath($sourceFileUrl));
            $ff_frame = $mov->getFrame($frameNum);        
            $gd_image = $ff_frame->toGDImage();        
            //$targetFilePath=$_SERVER['DOCUMENT_ROOT']."/test.jpg";    //要生成图片的绝对路径
            //$targetFilePath = dirname($targetFileUrl) . "/test.jpg";
            imagejpeg($gd_image, $targetFileUrl, 80); //创建jpg图像
            
            if ((!empty($newWidth)) && (!empty($newHeight))){
                header('Content-type: image/jpeg');
                list($width, $height) = getimagesize($targetFileUrl);                
                $source = imagecreatefromjpeg($targetFileUrl);
                $newImg = ImageCreateTrueColor($newWidth, $newHeight);
                
                imagecopyresized($newImg, $source, 0, 0, 0, 0, $newWidth, $newHeight, $width, $height);
                imagejpeg($newImg);
            }        
            imagedestroy($gd_image);    //销毁图像        
        }



1.下载ffmpeg

http://download.csdn.net/detail/xmlife/8608487

2. 解压ffmpeg

3. 将除了php_ffmpeg.dll文件,其它拷贝到windows\system32文件夹

4. extension=php_gd2.dll
    extension=php_gettext.dll
    extension=php_ffmpeg.dll

 

5. 重新启动wamp后使用phpinfo()函数看到一下信息配置:

ffmpeg support (ffmpeg-php)enabled
ffmpeg-php version0.5.2.1
libavcodec versionLavc51.43.0
libavformat versionLavf51.12.2
ffmpeg-php gd supportenabled

 

DirectiveLocal ValueMaster Value
ffmpeg.allow_persistent00


 以上就表明ffmpeg在php环境中配置成功了。

 

6. 下面我们建立一个php的页面来测试是不是可以使用ffmpeg的一些函数功能。建立testvideo.php文件

 代码如下:

<?php

extension_loaded('ffmpeg');

$ffmpegInstance = new ffmpeg_movie('C:\wamp\www\top10.mp4');
echo "getDuration: " . $ffmpegInstance->getDuration()."<br>" .
"getFrameCount: " . $ffmpegInstance->getFrameCount()."<br>" .
"getFrameRate: " . $ffmpegInstance->getFrameRate()."<br>" .
"getFilename: " . $ffmpegInstance->getFilename()."<br>" .
"getComment: " . $ffmpegInstance->getComment()."<br>" .
"getTitle: " . $ffmpegInstance->getTitle()."<br>" .
"getAuthor: " . $ffmpegInstance->getAuthor()."<br>" .
"getCopyright: " . $ffmpegInstance->getCopyright()."<br>" .
"getArtist: " . $ffmpegInstance->getArtist()."<br>" .
"getGenre: " . $ffmpegInstance->getGenre()."<br>" .
"getTrackNumber: " . $ffmpegInstance->getTrackNumber()."<br>" .
"getYear: " . $ffmpegInstance->getYear()."<br>" .
"getFrameHeight: " . $ffmpegInstance->getFrameHeight()."<br>" .
"getFrameWidth: " . $ffmpegInstance->getFrameWidth()."<br>" .
"getPixelFormat: " . $ffmpegInstance->getPixelFormat()."<br>" .
"getBitRate: " . $ffmpegInstance->getBitRate()."<br>" .
"getVideoBitRate: " . $ffmpegInstance->getVideoBitRate()."<br>" .
"getAudioBitRate: " . $ffmpegInstance->getAudioBitRate()."<br>" .
"getAudioSampleRate: " . $ffmpegInstance->getAudioSampleRate()."<br>" .
"getVideoCodec: " . $ffmpegInstance->getVideoCodec()."<br>" .
"getAudioCodec: " . $ffmpegInstance->getAudioCodec()."<br>" .
"getAudioChannels: " . $ffmpegInstance->getAudioChannels()."<br>" .
"hasAudio: " . $ffmpegInstance->hasAudio();

 7.执行后如果拿到视频的一些信息如下就表示环境配置成功了,那我们就可以开始开发我们的视频转换了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值