2011-05-05 96 views
8

我有使用差异创建视频文件的场景。资产如图像,音频文件。使用PHP创建视频文件

我想要做的是,从特定文件夹中查找音频文件并将其设置为背景音乐,并从特定文件夹中提取图像并逐个显示这些图像。

所以基本上我有图像和音频文件,我想使用PHP使用这些资产创建视频文件。

任何人都可以为此建议启动点吗?已经完成了从视频捕捉图像并使用Ffmpeg转换视频,所以我想到了Ffmpeg,但我认为它不允许创建视频。

+1

你需要创建幻灯片,或真的是打算作为视频帧输入图像? – mario 2011-05-05 03:31:12

+0

作为一个视频帧..我最终的输出应该是一个视频文件说flv或mp4。随着背景音乐中的音频和图像逐一显示出来...... – Avinash 2011-05-05 03:35:03

+0

“一个接一个”是指每个图像应该可见几秒钟? (合约为视频帧的1/25秒。) – mario 2011-05-05 03:41:08

回答

17

ffmpeg 允许您从静止图像创建视频。

例如,创建一个具有10fps的帧速率的视频,从图像001.JPG .... 999.jpg:

ffmpeg -r 10 -b 1800 -i %03d.jpg test1800.mp4 

可以混流流(音频和视频)像(添加相关对于码率编解码器选项等)

ffmpeg -i video.mp4 -i audio.wav -map 1.1 -map 2.1 output.mp4 

我不打算进入更详细,因为ffmpeg的是一种痛苦(参数版本之间不兼容的方式改变,这取决于它是如何被编译),并找到一个对你有好处的速率/压缩/分辨率设置是反复试验。

+0

任何其他替代解决方案? – Avinash 2011-05-05 03:50:51

+0

第一条命令不会创建视频幻灯片,它创建了一个视频文件,但只有最后一个图像来自文件夹。所以没有视频播放,因为它只有一个图像显示。:( – Avinash 2011-05-10 11:59:19

+0

您将需要具有以上指定的文件名称; 001.jpg至999.jpg – 2011-05-12 00:02:56

4

菲尔的解决方案是正确的方法。通过在ffmpeg上记录自己需要做的事情(这很麻烦,我不能责怪他不想做你的功课),然后从php内部调用它。

Cursory googling显示php包装(例如http://ffmpeg-php.sourceforge.net/)。如果没有最新的/足够完整的,坚持从PHP发布所需的shell命令。

apt-get install php5 ffmpeg 

我使用这个PHP函数:

3
ImageMagick convert -delay 100 -quality 75 photo1.jpg photo2.jpg movie.mpg 

或者

http://dvd-slideshow.sourceforge.net/wiki/Main_Page 
+0

imagemagick创建一个视频,但有没有任何选项,我可以添加过渡到图像,如淡入,淡出等..... – Avinash 2011-05-17 07:08:25

5

Ubuntu下你需要PHP5,FFMPEG和获得的ffmpeg二进制,这可以容易实现从一个gif图像和一个mp3文件生成mp4视频,源图像和输出视频文件均为720x576像素:

function mix_video($audio_file, $img_file, $video_file) { 
    $mix = "ffmpeg -loop_input -i " . $img_file . " -i " . $audio_file . " -vcodec mpeg4 -s 720x576 -b 10k -r 1 -acodec copy -shortest " . $video_file; 
    exec($mix); 
} 

实例的使用:

$audio_file = "/path/to/mp3-file"; 
$img_file = "/path/to/img-file"; 
$video_file = "/path/to/video-file"; 

mix_video($audio_file, $img_file, $video_file); 
+0

fmpeg版本2.7.6-0ubuntu0.15.10.1 Copyright(c)2000- 2016使用gcc 5.2.1(Ubuntu 5.2.1-22ubuntu2)20151010 构建的FFmpeg开发者 给出了输出:无法识别的选项'loop_input'。 – Lisitso 2016-02-19 13:12:35