Windows系統上FFMpeg-PHP的使用

這幾天作項目,其中一個需求是用戶上傳視頻文件到服務器,而後服務器自動截取該視頻的一幀做爲該視頻對應的縮略圖,服務器端語言採用php編寫,找了半天資料,發現ffmpeg-php能夠知足該需求,因此下面簡單介紹一下該擴展庫的配置和使用方法。php

測試服務器環境 WampServer Version 2.1,php5.3.5,ffmpeg-php 配置和使用步驟以下:apache

1. 下載 ffmpeg-php, ffmpeg-php-5.3-win32-all.zipapi

2. 將 php_ffmpeg.dll 放到 PHP 擴展目錄,(例如 E:\Program Files\wamp\bin\php\php5.3.5\ext)服務器

3. 將其餘的dll文件放到系統目錄,(例如 C:\Windows\System32)svn

4. 修改 php.ini,添加 extension=php_ffmpeg.dll 配置項,結果以下:測試


extension=php_gd2.dll
extension=php_gettext.dll
extension=php_ffmpeg.dll
ui

:Wamp 環境下要修改 apache 目錄中的 php.ini,(例如E:\Program Files\wamp\bin\apache\Apache2.2.17\bin\php.ini), 同時要啓用gd2 和 gettext 模塊)google

5. 從新啓動 apache 服務器spa

6.打印輸出 phpinfo,查看是否有以下輸出,如有,則說明 ffmpeg-php 模塊配置正確.net

ffmpeg

 

ffmpeg-php version 0.6.0-svn
ffmpeg-php built on Sep 8 2010 12:13:47
ffmpeg-php gd support enabled
ffmpeg libavcodec version Lavc52.87.4
ffmpeg libavformat version Lavf52.78.3
ffmpeg swscaler version SwS0.11.0

 

 

Directive Local Value Master Value
ffmpeg.allow_persistent 0 0
ffmpeg.show_warnings 0 0

7. 編寫測試代碼,示例代碼截取視頻的第二幀爲縮略圖

 
 1 public function testmp4()
 2 {
 3 if(extension_loaded('ffmpeg')){//判斷ffmpeg是否載入
 4 $mov = new ffmpeg_movie('E:\\Program Files\\wamp\\www\\BBShow\\test\\guangfa15s.mp4');//視頻的路徑
 5 dump($mov);
 6 $ff_frame = $mov->getFrame(2);
 7 $gd_image = $ff_frame->toGDImage();
 8 $img=$_SERVER['DOCUMENT_ROOT']."/test.jpg";//要生成圖片的絕對路徑
 9 imagejpeg($gd_image, $img);//建立jpg圖像
10 imagedestroy($gd_image);//銷燬一圖像
11 }else{
12 echo "ffmpeg沒有載入";
13 }
14 }

 

8. 運行測試代碼,便可在服務器端生成 jpg 格式的縮略圖

9. 有關 ffmpeg-php 的詳細使用說明,請參照官方API(http://ffmpeg-php.sourceforge.net/doc/api/)。

相關文章
相關標籤/搜索