2015-11-04 40 views
3

我正在使用ffmpeg命令爲視頻加水印。 它做的工作,但我需要檢測它是否成功執行或不。 我的命令:我想知道如何在執行ffmpeg命令時獲取成功或失敗消息

$mark = "ffmpeg -i ".$inputvideo." -i logo.png -filter_complex ". '"overlay=x=(main_w-overlay_w):y=(main_h-overlay_h)"'." ".uniqid()."html56.mp4"; 

對於輸出,我用類似:

$x = exec($mark); 
print_r($x); 

,但我沒有得到任何東西代替$x打印。 經過一番搜索,我發現這個語句exec命令

string exec (string $command [, array &$output [, int &$return_var ]]) 
$s=exec($mark,$var); 

是$ var是我回報變種。

現在,當我打印$var我得到一個空的數組。 請建議我失蹤的地方。

回答

3

串EXEC(字符串$命令[,陣列& $輸出[摘要& $ return_var]])

當你$s = exec($mark, $var);$var對應於$output裏面是空的,因爲ffmpeg的信息輸出到sderr因爲stdout可能用於實際數據輸出。

如果你想獲得的所有前面的可選參數返回代碼必須指定即使您沒有使用這些:

$s = exec($mark, $output, $var)

如果您需要實際的輸出可以重定向到stderrstdout因爲你沒有在命令的末尾放置一個2>&1或者使用PHP的proc_open()來執行它。

相關問題