2016-07-04 70 views
-1

大家好,FFMPEG發揮疊加視頻

我掙扎小時以上的視頻(疊加)將圖像,並直接在Web瀏覽器中播放輸出(我已經安裝在服務器上的FFMPEG)。這裏是我有:

$output = shell_exec($command);     
$image = '/image.png';   
$video = '/videoin.mp4';  
$saved_video_path= "";  
$i = "'";  
$command = '/usr/local/bin/ffmpeg -i ' . $video . ' -i ' . $image . ' -filter_complex "[0:v][1:v] overlay=10:10:enable=' . $i . 'between(t,5,10)' . $i . '" '.$saved_video_path;    
echo "$output";  

我真的很感謝你的幫助!

克里斯

+0

對雙引號視頻標籤放在一邊,這個代碼是否產生可播放的文件? (即:如果你把'$ output'放到服務器或硬盤上) –

+0

任何進度......? –

+1

再次感謝VC.One。工作正常 – Chris

回答

0

我沒有我的服務器上安裝FFmpeg的,所以我無法證實這個解決方案工作。
(它適用於基於PHP的imgvideo標籤,但未涉及FFmpeg的測試)。

echo '<video width="640" height="480" controls><source src="'.$output.'" type="video/mp4"></video>'; 

所以,你的代碼應該是這樣的:

$output = shell_exec($command); 
$image = '/image.png'; 
$video = '/videoin.mp4'; 
$saved_video_path= ""; 
$i = "'"; 
$command = '/usr/local/bin/ffmpeg -i ' . $video . ' -i ' . $image . ' -filter_complex "[0:v][1:v] overlay=10:10:enable=' . $i . 'between(t,5,10)' . $i . '" '.$saved_video_path; 

//echo "$output"; 
echo '<video width="640" height="480" controls><source src="'.$output.'" type="video/mp4"></video>'; 

一些注意事項

  • 嘗試使用:$output = shell_exec('.$command.');

  • 你應該逃生filter_complex雙引號:

例如...

$command = '/usr/local/bin/ffmpeg -i ' . $video . ' -i ' . $image . ' -filter_complex \"[0:v][1:v] overlay=10:10:enable=' . $i . 'between(t,5,10)' . $i . '\"' . $saved_video_path; 
  • 嘗試使用ffmpeg的路徑只有$command = '"/usr/local/bin/ffmpeg" -i
+0

嗨VC One,非常感謝,它工作正常。 – Chris