四川时时彩开奖走势图
·您當前的位置:首頁 > 技術教程 > FFmpeg技術 >

[FFmpeg]php下用ffmpeg擴展實現視頻轉換截圖

時間:2014-07-25 13:44酷播
[FFmpeg]php下用ffmpeg擴展實現視頻轉換截圖

PHP轉換視頻格式這個問題,找了一下午的ffmpeg-php擴展的安裝與使用方法,都是千篇一律轉載的。
下面是我整理的步驟,希望能幫助大家這個問題。

下載 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.  
  3.     extension_loaded('ffmpeg'); 
  4.  
  5.     $ffmpegInstance = new ffmpeg_movie('f:\www\ppt.wmv'); 
  6.  
  7.     echo "getDuration: " . $ffmpegInstance->getDuration()."<br>" . 
  8.  
  9.     "getFrameCount: " . $ffmpegInstance->getFrameCount()."<br>" . 
  10.  
  11.     "getFrameRate: " . $ffmpegInstance->getFrameRate()."<br>" . 
  12.  
  13.     "getFilename: " . $ffmpegInstance->getFilename()."<br>"  ; 
  14.  
  15.     exec("f:/www/ffmpeg.exe -i  f:/www/test.wmv  f:/www/test2.flv"); 
  16.  
  17.     exec ("ffmpeg -i  f:/www/test2.flv  -y -f image2 -ss 8  test.jpg");
    //CuPlayer.com提示在8秒處截取圖片 
  18.  
  19. ?> 

原創博文,轉載請注明!

熱門文章推薦

請稍候...

保利威視云平臺-輕松實現點播直播視頻應用

酷播云數據統計分析跨平臺播放器

四川时时彩开奖走势图 什么买卖稳赚不赔 股票涨跌原因的本质 二分快3稳赚计划 彩票合买网 股票融资融券是什么意思啊 新疆时时开奖结果一 北京pk赛车官网 广东快乐十分开奖软件 魔兽官方对战平台赚钱 一个黑客告诉你网赌