ffmpeg-php 視頻格式轉換
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的路徑)
第二個是現有視頻文件路徑
第三個是生成的視頻文件路徑
這就是最簡單的格式轉換,還可以設置尺寸、碼率等其他參數這裏不再贅述。
完整的一個處理文件
<?php
extension_loaded('ffmpeg');
$ffmpegInstance = new ffmpeg_movie('f:\www\ppt.wmv');
echo "getDuration: " . $ffmpegInstance->getDuration()."<br>" .
"getFrameCount: " . $ffmpegInstance->getFrameCount()."<br>" .
"getFrameRate: " . $ffmpegInstance->getFrameRate()."<br>" .
"getFilename: " . $ffmpegInstance->getFilename()."<br>" ;
exec("f:/www/ffmpeg.exe -i f:/www/test.wmv f:/www/test2.flv");
exec ("ffmpeg -i f:/www/test2.flv -y -f image2 -ss 8 test.jpg");//在8秒處截取圖片
?>
/*
*$ffpath ffmpeg.exe的路徑,$srcpath 原視頻路徑 ,$respath 目標路徑
*/
function($ffpath,$srcpath,$respath){
extension_loaded('ffmpeg');
exec(" $ffpath -i $srcpath $respath ");
}
最後更新:2017-10-24 00:34:24