2013-04-12 37 views
0

我想在Windows 7 x64上直接使用ffmpeg作爲命令行,我嘗試添加擴展名,但不幸的是它沒有用於某些未知的原因,但可執行文件完美工作,我正在使用exec命令,唯一的問題是不能用直接行,我必須創建一個文件。蝙蝠運行程序。這是我的疑問。在php中使用ffmpeg exe文件

$a = exec('\b.bat'); 
if ($a) 
     { 

     echo "Success"."\n"; 
     print $a; 
    }else { 

     echo "No good"."\n"; 
     print $a; 

     } 

b.bat

ffmpeg -i video.flv -an -ss 00:00:16 -an -r 1 -vframes 1 -y %a.jpg 

已經嘗試了幾種方案,但僅是工作用的一個。蝙蝠

$a = exec('\windows/system32/ffmpeg.exe ffmpeg -i video.flv -an -ss 00:00:16 -an -r 1 -vframes 1 -y %a.jpg'); 
+1

嘗試使用完整路徑而不是「\ windows/system32 ...」 類似於:「C:/ windows/system32 ...」 – sikander

+0

特別是將它放在Windows/system32下時,您應該檢查你的PHP用戶。 – h2ooooooo

回答

0

請務必包括完整路徑.bat文件,並確保包括完整的路徑在.bat文件到ffmpeg.exe。

+0

問題是我不想跑直。蝙蝠 把完整的目錄,並沒有工作 – Offboard

+0

我相信你誤解了我的解決方案。您必須在代碼中包含批處理文件的完整路徑,並且必須在批處理文件中包含ffmpeg的完整路徑。問題是運行腳本時PATH通常不能正確設置。 – Tony

0

嗯,我也正致力於此ffmpeg文件進行轉換我的電影和東西我的想法是讓人們免費觀看反正這裏的電影是什麼,我用它來將我的電影,有一個注意,當ffmpeg.exe不在比電影相同的文件夾,那麼你將需要給出一個完整的路徑或使用../上去的文件夾和/到一個文件夾,例如:

$input_path= $_FILES["file"]["tmp_name"]; 
$output_result= "movies/" . basename($_FILES["file"]["name"]).".flv"; 
exec("FFMPEG.EXE -i '$input_path' -s 900x400 -r 29.97 -b 1024k -ar 22050 -ab 50k -ac 1 '$output_result'"); 

有我使用的規模和rateframe爲以及比特率和聲音質量,所以我的輸入和輸出我給了他們一個變量,基本上你可以使用的命令只是給這些變量$ input和$ output一個值。請注意,目前我幾乎沒有完成這個想法,因爲我們使用微軟窗口,結果可能因版本不同而不同,您可能不得不使用該命令管理員模式我希望這可以幫助你,我的電子郵件是[email protected],如果有什麼讓我知道的人。