2011-10-28 72 views
4

我在PHP的shell_exec()中運行ffmpeg命令來轉換列表中的多個視頻。無論如何要檢測視頻轉換過程中是否發生錯誤(或至少驗證它是否完全完成轉換)?PHP檢測shell_exec()命令是否失敗

我不想停止轉換其他視頻,如果發生錯誤,只是記錄錯誤的能力。

<?php 
    shell_exec('ffmpeg -i downloads/flv/file1.flv -vcodec libvpx -acodec libvorbis downloads/webm/file1.webm'); 

    if(error) { 
    //run a command here to report the error (ie. MySQL or email) 
    } 
?> 
+0

'if(error)'???????? –

+0

您是否在尋找從ffmpeg返回的錯誤? – 2011-10-28 00:13:34

+0

@Dagon正確。 – floatleft

回答

10

捕捉退出代碼與其他系統調用函數一樣exec

exec('ffmpeg ...', $output, $return); 

if ($return != 0) { 
    // an error occurred 
} 

什麼像樣的效用將大於0的錯誤以外的代碼退出。

+0

或檢查是否($ return!= 1)。 1是錯誤,0是沒有錯誤退出代碼。您可以直接使用echo「$?」在Unix CLI中進行調試在執行你的命令後。 – nottinhill

+1

好吧,'0'的意思是「全部是綠色的」,而*除「0」以外的任何*都意味着「錯誤」。錯誤代碼比'1'多。我不知道'ffmpeg'特別是使用除了'0'和'1'之外的任何東西。 – deceze

-1
$return=shell_exec('ffmpeg ...'); 

if ($return) { //look at what it returns do what you will with the data 

}