2011-08-30 348 views
1

我已經在我的服務器上安裝了ffmpeg,並且它可以通過我的終端正常工作。我能夠成功地將文件轉換爲webm格式,所以我確信安裝很好。我也確定我的機器上只安裝了一個ffmpeg安裝。PHP的exec()不執行FFmpeg命令

當我嘗試通過PHP的exec()通過PHP轉換文件時出現問題。當我運行相同的命令時,我跑到終端,沒有任何反應。我查看了周圍的計算器和網絡的其他部分,以獲得一些幫助。我試過這個,看看輸出:

exec($cmd, $out, $rv); 
echo "output is:\n".implode("\n", $out)."\n exit code:$rv\n"; 

的輸出是: 「輸出是:退出代碼:127」

我使用的命令格式如下:

ffmpeg -i "sample.mov" -vcodec libvpx -r 30 -b "644k" -acodec libvorbis -ab 128000 -ar "44100" -ac 2 -s "352x198" "sample.webm" 

我試過用FFmpeg的完整路徑替換「ffmpeg」,但那沒有奏效。

爲什麼腳本不能正確運行命令並轉換文件?

謝謝!

+2

這是「¿Porqué?」 (兩個字); -P –

+0

facepalm。謝謝,我忘了:p – tundoopani

+0

可能重複的http://stackoverflow.com/questions/4828083/ffmpeg-php-error-code-127 –

回答

1

我有類似的問題,從螞蟻目標執行從PHP。我不能從ant命令獲得整個輸出,只有前幾行,並且ant目標沒有執行。換句話說就是部分執行。

使用波紋管命令我已經設法運行它,但命令的輸出被附加到log_file.log。

$commandString = 'you_command_here >> log_file.log 2>&1 &'; 
$command = exec($commandString); 

希望這會對你有用。

3

錯誤代碼127表示無法找到可執行文件(ffmpeg)。嘗試指定整個路徑(你可以在你的終端中找到which ffmpeg),或者比較你的php腳本和終端中的PATH環境變量的值。

+1

「我嘗試用FFmpeg的完整路徑替換」ffmpeg「,但那不起作用。」 – tundoopani