2015-05-04 218 views
1

我試圖運行此命令,做在CLI無法執行exec命令(PHP /窗/的ffmpeg)

ffmpeg -i tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 output1.flv 

的工作,我能只通過ffmpeg -version PHP運行。

地點
$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -version"); 

tmp1.flv文件:

C:\wamp\www\tmp1.flv 

當我跑步時$res = exec("chdir") =>C:\wamp\www\

我如何通過PHP運行此

ffmpeg -i tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 output1.flv 

我想:

$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 output1.flv", $output, $return_var); 
$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i C:\\wamp\\www\\tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 C:\\wamp\\www\\output1.flv", $output, $return_var); 
$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i C:\wamp\www\tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 C:\wamp\www\output1.flv", $output, $return_var); 
$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i \"C:\wamp\www\tmp1.flv\" -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 \"C:\wamp\www\output1.flv\"", $output, $return_var); 
$res = exec("C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i 'C:\wamp\www\tmp1.flv' -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 'C:\wamp\www\output1.flv'", $output, $return_var); 
... 

echo $resecho $output給什麼,echo $return_var給出1

+++ UPDATE +++

了一個小的進步得益於this post,它確實給我講述了文件輸出和信息,但還是可以不運行整個命令。

$cmd = 'C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe ffmpeg -i tmp1.flv 2>&1'; 

exec($cmd, $output, $value); 

var_dump($output); 
var_dump($value); 
var_dump($cmd) 

+++更新2 +++

echo exec('whoami') =>nt authority\system

+0

「來獲得執行的命令的輸出,一定要設置並使用輸出參數。」 ...... http://php.net/manual/en/function.exec.php – dbinns66

+0

有你檢查執行腳本的用戶是否具有對輸出目錄的寫權限? – steven

+0

@ dbinns66謝謝,我添加了它並更新了我的問題。 – whitesiroi

回答

2

ffmpegffmpeg.exe之後 - 這就是爲什麼它沒有工作。

$cmd = 'C:\\wamp\\www\\ffmpeg\\bin\\ffmpeg.exe -i tmp1.flv -c:a copy -vf drawbox=:x=0:y=0:color=invert:t=2 output2.flv 2>&1'; 
exec($cmd, $output)