2016-07-04 69 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