[FFmpeg]php下用ffmpeg扩展实现视频转换截图_极酷播放器官方网站

PHP转换视频格式这个问题,找了一下午的ffmpeg-php扩展的安装与使用方法,都是千篇一律转载的。下面是我整理的步骤,希望能帮助大家这个问题。

http://ffmpeg-php.sourceforge.net/

下载 http://download.csdn.net/detail/man_quan/6550315

1.下载ffmpeg-php扩展包和ffmpeg.exe(刚开始我以为不需要这个,本地windows测试缺一不可),解压后有以下文件

   avcodec-51.dll

    avformat-51.dll

    avutil-49.dll

    php_ffmpeg.dll

    pthreadGC2.dll

2. 将四个文件拷贝到windows/system32目录下

    avcodec-51.dll, avformat-51.dll, avutil-49.dll, pthreadGC2.dll

3.将php_ffmpeg.dll拷贝到php的ext目录下。

4. 然后需要到apache/bin文件下找到php.ini文件下允许使用dll文件加入extension=php_ffmpeg.dll 并确保这三个都是开启状态    extension=php_gd2.dll, extension=php_gettext.dll

   extension=php_gd2.dll

   extension=php_gettext.dll

   extension=php_ffmpeg.dll

5.重启apache,输出phpinfo();方法查看环境配置,如看到以下信息则说明扩展安装成功。

6.测试,新建test.php输入以下代码

 

<?php

extension_loaded(‘ffmpeg’);

 

$ffmpegInstance = new ffmpeg_movie(‘D:\Program Files\APMServ5.2.6\www\htdocs\test.mpg’);

echo “getDuration: ” . $ffmpegInstance->getDuration().”<br>” .

“getFrameCount: ” . $ffmpegInstance->getFrameCount().”<br>” .

“getFrameRate: ” . $ffmpegInstance->getFrameRate().”<br>” .

“getFilename: ” . $ffmpegInstance->getFilename().”<br>”  

//获取参数的方法还有很多,这里举例以上几个

访问test.php文件,如果有输出

getDuration: 163.639007568

getFrameCount: 2455

getFrameRate: 15

getFilename: F:\www\ppt.wmv

到这里测试配置的环境成功,

7.下一步截取视频图片

  $ff_frame = $ffmpegInstance->getFrame(20);//截取视频第20帧的图像

  $gd_image = $ff_frame->toGDImage(); 

  $img=$_SERVER[‘DOCUMENT_ROOT’].”/test2.jpg”;//要生成图片的绝对路径     

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

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

  这样也可以

  exec (“ffmpeg -i test.avi -y -f image2 -ss 8  test.jpg”);//在8秒处截取图片

8.这一步才是主要的,视频格式转换

  exec(“f:/www/ffmpeg.exe -i  f:/www/test.wmv  f:/www/test2.flv”);

  第一个文件路径是转换工具路径(就是ffmpeg.exe的路径)

  第二个是现有视频文件路径

  第三个是生成的视频文件路径

  这就是最简单的格式转换,还可以设置尺寸、码率等其他参数这里不再赘述。

  完整的一个处理文件

  1. <?php
  2.     extension_loaded(‘ffmpeg’);
  3.     $ffmpegInstance = new ffmpeg_movie(‘f:\www\ppt.wmv’);
  4.     echo “getDuration: ” . $ffmpegInstance->getDuration().”<br>” .
  5.     “getFrameCount: ” . $ffmpegInstance->getFrameCount().”<br>” .
  6.     “getFrameRate: ” . $ffmpegInstance->getFrameRate().”<br>” .
  7.     “getFilename: ” . $ffmpegInstance->getFilename().”<br>”  ;
  8.     exec(“f:/www/ffmpeg.exe -i  f:/www/test.wmv  f:/www/test2.flv”);
  9.     exec (“ffmpeg -i  f:/www/test2.flv  -y -f image2 -ss 8  test.jpg”);
    //CuPlayer.com提示在8秒处截取图片
  10. ?>

 

原创博文,转载请注明!

来源URL:http://www.cuplayer.com/player/PlayerCode/FFmpeg/2014/0725/1476.html