2011-09-25 62 views
1

我有一个动态存档(我的ftp空间上的文件夹),其中是从网络摄像头加载的图像。现在,我想创建一个简单的幻灯片或视频与这些图像,每次用户想看它。 没有任何转换选项或其他....我需要从相机拍摄的图像构建一个siple timelapse。如何从PHP中的图片创建动态视频/幻灯片

我刚刚尝试这个http://www.maani.us/xml_slideshow/它工作正常(我可以用PHP构建一个swf脚本的动态XML配置文件),但我不能设置时间过渡小于1秒...并且不是免费的...

任何简单的解决方案? (也是JavaScript,如果它是更好的...) Thanx!

+0

尝试搜索术语“JPEG MPEG转换器”,然后添加“PHP”的名词了。 – Cups

+0

一些幻灯片效果在下面的链接https://github.com/letungit90/ffmpeg_memo – Makio

回答

0

是最好的方式,我发现:简单快捷

<HTML> 
<HEAD> 
<TITLE>Video</TITLE> 
</HEAD> 
<BODY BGCOLOR="#000000"> 
<img name="foto"> 
<SCRIPT LANGUAGE="JavaScript"> 
var Pic = new Array(); 

Pic[0] = '/images/image1.jpg' 
Pic[1] = '/images/image2.jpg' 
Pic[2] = '/images/image3.jpg' 
//this part in real code is replaced with a PHP script that print image location dinamically 

var t; 
var j = 0; 
var p = Pic.length; 
var preLoad = new Array(); 
for (i = 0; i < p; i++) { 
preLoad[i] = new Image(); 
preLoad[i].src = Pic[i]; 
} 
//all images are loaded on client 
index = 0; 
function update(){ 
if (preLoad[index]!= null){ 
document.images['foto'].src = preLoad[index].src; 
index++; 
setTimeout(update, 1000); 
} 

} 
update(); 

</script> 

</BODY> 
</HTML> 
0

PHP是一个纯粹的字符串操作语言

你不能在PHP中创建一个幻灯片。这是服务器端语言。

+0

在回答前请阅读整个问题...请... – Lork

+0

请写明智的标题/标签。 –

2

如果你想最终的结果是一个视频文件,您可以做一些类似于我将Google Streetview全景图系列转换为immersive time-lapse video时所做的操作。

这一切都完成在服务器上使用PHP & ffmpeg。以下是从original source中减去的一些示例代码。

ffmpeg的命令:

$makeMovieFfmpeg = "ffmpeg -r 4 -f image2 -i dir/%d.jpg -s 800x600 -r 15 -s 800x600 -b 1500kbs myvideo.avi 2>&1"; 

说明:

-r 4 //input framerate of 4fps 
-f image2 //invoke the image2 file demuxer since we're working with a series of images 
-i //location of image files with applied pattern where %d represents numeric sequence 
-s //input image size 
-r //output framerate of 15fps 
-s //output video size 
-b //set the bitrate 
2>&1 //redirects stderr to stdout in order to make output available to PHP 

执行命令:

print_r (exec($makeMovieFfmpeg,$ret,$err)); 
0

ffmpeg的是你的最佳解决方案。 https://www.ffmpeg.org/download.html

快速的方法来创建图像幻灯片运行以下命令

ffmpeg -framerate 20 \ 
-loop 1 -t 0.5 -i 1.jpg \ 
-loop 1 -t 0.5 -i 2.jpg \ 
-loop 1 -t 0.5 -i 3.jpg \ 
-loop 1 -t 0.5 -i 4.jpg \ 
-c:v libx264 \ 
-filter_complex " \ 
[1:v][0:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b1v]; \ 
[2:v][1:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b2v]; \ 
[3:v][2:v]blend=all_expr='A*(if(gte(T,0.5),1,T/0.5))+B*(1-(if(gte(T,0.5),1,T/0.5)))'[b3v]; \ 
[0:v][b1v][1:v][b2v][2:v][b3v][3:v]concat=n=7:v=1:a=0,format=yuv420p[v]" -map "[v]" out.mp4 

它会创建一个混合效果的幻灯片。

您可以检查以下备忘录等效果https://github.com/letungit90/ffmpeg_memo