如何将30,000张图像组合成定时拍摄电影?


69

我已拍摄了30,000张静止图像,希望将它们组合成定时拍摄电影。我曾经尝试过QuickTime Pro,TimeLapse 3和Windows Movie Maker,但是由于图像如此之大,每个程序都失败了(我尝试了SUPER©,但也无法正常工作...?)。似乎所有这些程序在数千张图片后都会崩溃。

我拥有的图像都是.JPG格式,分辨率为1280x800,我正在寻找一个程序,可以将这些图像以某种无损格式(原始/未压缩的AVI可以)放入延时拍摄影片中。进一步编辑。有没有人有任何想法,或者有没有尝试过类似的尝试并使用相似数量的图片?


您是否尝试过Adobe Premiere或Final Cut Pro之类的工具?
Mahmoud Hossam

您是否尝试过使用像HuffYUV这样的无损视频编解码器?
Hydaral 2011年

jpeg有损,因此您已经失去了质量,无法恢复。
ctrl-alt-delor

Answers:


54

Avidemux可以从一堆图像中创建电影。http://fixounet.free.fr/avidemux/

您也可以使用mencoder,但是使用所有命令行选项'n all会更难使用。我一直在用这个:

mencoder mf://*.jpg -mf fps=xxx:type=jpg -ovc x264 -x264encopts bitrate=yyyy:threads=2 -o outputfile.mkv

我用

xxx = 25 and 
yyy = 1200

产生的视频很好。通过插入以下内容为电影添加音乐:

-oac copy -audiofile audiofile.mp3

2
Avidemux摇滚!快速插入33.000张图像。快速保存到未压缩的AVI-它会自动分成4GB AVI块。但是它们都可以玩!
Swift Swift

2
为Avidemux +1,我已经使用MeGUI进行了大量的视频编辑,甚至都不知道有这么好的选择!
突破

2
mencoder输出avi,与输出文件名无关。有一些选项可以输出其他格式,但是代码不能很好地工作。推荐的方法是输出h.264-in-avi,然后重新复用。只需使用ffmpeg即可。(请参见Shenal Silva的答案)
彼得·科德斯

mencoder的维护/可用性比2011年少。MPV中的等效者:mpv mf://*.jpg --mf-fps=25 --ovc libx264 --ovcopts=bitrate=1200:threads=2 -o outputfile.mkv
Sam Brightman

Avidemux仅在VLC中返回,抱怨“ VLC不支持音频或视频格式“ PNG”。不幸的是,您无法解决此问题。”
Vallentin

39

使用FFmpeg

这将根据一系列png图像(名为img001.png,img002.png,img003.png等)创建视频幻灯片(使用视频编解码器libx264)。

每个图像的持续时间为5秒,请根据您的选择更改变量。

ffmpeg -f image2 -r 1/5 -i img%03d.png -c:v libx264 -pix_fmt yuv420p out.mp4

如果您的图像有四个数字,请使用%04d,等等。如果您的图像不具有此模式,则可以至少在Linux和OS X上使用外壳程序glob:

ffmpeg -f image2 -pattern_type glob -i 'time-lapse-files/*.JPG' …

您还可以通过-r在输入后指定另一个来更改输出帧速率。


8
只是警告的提示:不要以为可以绕过ffmpeg的printf语法,而只能使用* .jpg或其他更复杂的模式。实际上,它将用第一个覆盖每个图像文件!我自己尝试过。
基督教徒

我也在努力与此。事实证明您可以执行此操作,但需要设置全局样式标志。ffmpeg -pattern_type glob -i'time-lapse-files / *。JPG'time-lapse.mp4
arno_v 2013年

2
您可以使用-framerateimage2输入格式。我建议不要设置与输入fps不同的输出fps,除非您实际上希望ffmpeg删除或复制帧。(除非输出到ffmpeg支持可变帧率的mkv之类的容器。)是的,刚刚经过测试,您确实通过x264获得了额外的dup帧,因此只需设置输入的FPS,但是放置-r还是-framerate-i .../stuff
BEEFORE

2
我也建议ffmpeg。我在这里写过
dSebastien 2015年

cat *.jpg | ffmpeg -framerate 60 -f image2pipe -i - ~/output.mp4如果您没有-pattern_type glob
空位,

12

如果您进行一些基本的计算,您将发现如果尝试使电影保持未压缩状态,则可能内存不足。

每帧为1,024,000像素。每个像素32位,即32,768,000位(4,096,000字节或3.9 MB)。

如果我们将其乘以30,000帧,则需要117187.5 MB(114.45 GB)的内存来一次将整个电影保存在内存中-难怪QuickTime Pro会失败。

您可以尝试降低分辨率,但仍然可能失败。

您将需要将电影分成较小的块,然后将整个内容缝合在一起。我希望有一些应用程序可以在不将整个影片加载到内存的情况下执行此操作。最后的电影也将不得不压缩-再次,因为它将在硬盘驱动器上占用114 GB。一部电影长20分钟(每秒25帧)时,一部电影毕竟只占用一张DVD。


3
AFAIK,世界上没有视频编辑程序可以在解析/保存之前将所有未压缩的剪辑完全存储在内存中。
突破

@Breakthrough〜但是如何将其合成为压缩的剪辑?
jcolebrand

@Breakthrough-可能是正确的,但是OP想要一部未压缩的电影。
ChrisF 2011年

2
@ddrachenstern和@ChrisF-立即存储和长期存储之间有所不同。没有视频编辑程序可以将未压缩视频数据的整个长度存储在内存中。即使在预览中滚动时,它也会从存储在硬盘中的各种媒体源中重新创建数据(对于缓存而言可能还要更多)。除此之外,当您最终“渲染”项目时,您将获得完整的视频输出(通常是流)。完整的视频输出然后可以原样保存(例如,未压缩/ RAW),或流式传输到编码器。
突破

1
抱歉,当我发表第一个评论时,我只是想指出问题并不在于缺乏记忆。我的意思是,尽管程序可能会将一些未压缩的视频数据存储在内存中(例如用于预览),但它永远不会存储整个视频流(同样,由于您在答案中发现的问题)。这只是这些程序的制作方式,因此这不应该成为问题。对不起,任何误解!
突破

11

是的,我知道该线程已经使用了一年多。我已经使用了两年多了,它在处理超过10,000张图片时效果很好:

1080p @ 24fps,无声音

ls -1v | grep JPG > files.txt
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=21600000 -o windowsill_flowers_7.avi -mf type=jpeg:fps=24 mf://@files.txt -vf scale=1920:1080

4k @ 90fps,无声音

ls -1v | grep JPG > files.txt
mencoder -nosound -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=21600000 -o windowsill_flowers_7.avi -mf type=jpeg:fps=90 mf://@files.txt -vf scale=3840:2160

不过,在获得YouTube认可的功能之前,我不得不摆弄很多编解码器。您可以在以下位置找到使用第二块的示例:http : //www.youtube.com/watch?v=4G_aaPG2QWk


11

试试PhotoLapse ; 它的综述了上Lifehacker.com 这里

在此处输入图片说明


1
这是一个视频,展示了该工具的运行情况:vimeo.com/1226517
Darokthar,2011年

我有错字了。我已经尝试过Photolapse,但是在渲染过程中失败了。如果我降低到10.000张图像,它将完成AVI文件-但该文件无用,无法播放。
Swift Swift

@Swift我知道您需要文件的原始大小。在创建timelapse avi之前,我总是使用Irfanview批量降采样。希望您找到所需的解决方案!
JYelton 2011年

指向Photolapse的链接显示了明确的死神迹象。
Timothy Lee Russell

@Timothy更新了链接。
JYelton

8

我使用Google的Picasa。我认为这也是一个很好的照片组织者。这是怎么回事。

1)文件>将文件夹添加到Picasa ...>将文件夹与照片一起添加。

2)右键点击左侧“文件夹”菜单中添加的文件夹,然后>选择所有图片

3)从顶部菜单>创建>视频>来自选择...

4)现在,您在视频制作器中>视频选项卡>过渡样式>时间间隔

5)您可以加载音轨,更改尺寸(我通常使用1024x768),在“幻灯片”标签中添加带有文本的幻灯片...

6)Video Maker>视频选项卡>创建视频。您也可以使用Google帐户登录,也可以从此处将其上传到youtube。

返回库中,您可以右键单击视频>在磁盘中找到以查看视频的保存位置。使用Picasa的另一个好处是,您可以选择所有图片,然后转到顶部菜单“图片”>“批量编辑”>“我很幸运”。它将同时校正所有照片的对比度和颜色。

在创建视频之前,您可以使用http://motiontimelapser.co.nr/ Disclamer 来增加延时效果。Disclamer:我是作者。


使用GoPro连拍模式拍摄的约2500张图像对我来说效果很好。如果您已经使用Picasa,请查看此解决方案。
lonstar

Picasa已开始放牧。
Timothy Lee Russell

5

不久前,当我尝试在本地hackerspace上进行一次创建thon间隔拍摄时,我遇到了类似的问题。我运行OS X,所以不确定在Windows上使用它的可行性,但是我使用了MEncoder。

这是我在终端中使用的命令:

mencoder mf://*.jpg -mf w=800:h=600:fps=5:type=jpg -ovc copy -oac copy -o buildmadison.avi

这有两个问题:

  1. 它是AVI。
  2. 它所做的就是将图像一起压缩成单个文件,而无需压缩。当然,它的速度非常快,而且确实有效!

之后,我通过另一个实用程序将其转换为中途体面的格式。

MEncoder是MPlayer项目的一部分,位于以下位置:http : //www.mplayerhq.hu/


4

我看到这个线程有点陈旧,但是我发现MakeAVI是最适合我的程序!

您可以在此处下载:http : //sourceforge.net/projects/makeavi/?source=dlp

  • 您所要做的就是下载它,然后在下载的文件夹(无需安装程序)中运行可执行文件。
  • 然后,要添加图片,只需按右上角的“添加文件”按钮,然后选择要编译的图片。
  • 导入图片后,您可以使用左侧中间的“向上”和“向下”来调整图片的顺序,以防图片不整齐。
  • 然后,要调整已编译图片的帧速率,可以将右下方的“播放帧速率”帧内的文本框更改为所需的帧速率。
  • 由于该程序仍处于beta(0.1.1)中,因此某些功能无法正常工作。按下“开始”按钮,然后指定所需的文件名。当询问您想要哪种压缩类型时,请选择所需的压缩类型,但“ Full Frames(Uncompressed)”对我不起作用。
  • 然后,在完成视频编译后,继续观看视频,看看效果如何。如果视频为空白(无长度),请尝试更改“压缩”选项。(这就是我尝试“全帧(未压缩)”时发生的情况)

我无法获得此处列出的任何其他方法来工作,而这个方法对我有用!希望这对你有用!:)


3

您是否尝试过VirtualDub

在virtualdub中打开图像时,它将要求加载整个序列。从那里-调整帧频,添加一些滤镜(裁剪,锐化),选择编码器,然后保存视频。

我建议您首先尝试使用较少数量的图像,如果对结果感到满意,请整批处理。

编辑:是一个简单的教程。您所要做的就是找到合适的无损编解码器,例如:MSU无损视频编解码器


2

``我们测试了Time-Lapse Tool软件,以从10万张图像中生成视频,它的工作原理很吸引人。可以从多个文件夹添加所有这些图像,这对于将DSLR中的照片按文件夹中的10k图像分组很有帮助。


1

只是为了好玩,这是另一种方式(不,我显然不是在尝试完善自己的过程。)事实证明,Windows上没有任何东西想要编辑我的其他答案产生的输出mencoder。这是使用ffmpeg的更易于编辑的版本:

1080p@90fps, no sound, IMG_00000.JPG - IMG_99999.JPG
    ffmpeg -r 90 -i IMG_%05d.JPG -vcodec libx264 -vpre medium -crf 22 -threads 0 -vf scale=1920:-1 -r 15 -metadata title="foo"

1

如果您使用的是Premiere Pro,只需将图像放在专用文件夹中,确保它们已按顺序编号并连续编号,然后在Premiere Pro中右键单击“项目”窗口,然后选择“导入”,选择第一个图像,然后选中“图像序列”复选框。它会自动将所有图像按称为thefirstimageName.jpg的顺序拉入,但带有图像“堆栈”图标。就是这样。将其拖动到一个序列中,然后将其渲染为1080p(导出->媒体),然后将导出导入为新的视频剪辑。我确实建议将其导出并重新导入为剪辑,因为众所周知,如果您对剪切和速度变化进行修补,Premiere Pro和Media Encoder会因高分辨率素材而崩溃,因此将高分辨率素材导出为1080p,在损害质量的同时恢复稳定性。


0

我以前必须做类似的事情。通过一次完成500帧,我可以在QuickTime Pro中成功地做到这一点。我会将它们另存为单独的电影,然后继续播放下一个。然后,我将所有500个帧段组合成最终的东西。


对于“专业”软件来说,这是一种a窃!
Swift

0

我也会投票给Virtualdub(实际上已经完成了该操作,不记得有那么多)。以后也很容易删除不需要的帧,等等。也许您可以尝试使用无损视频格式进行渲染和存储,例如camstudio编解码器。如果需要一段时间,...也许也可以使用Techsmith编解码器(TSCC),但是仅当您购买(或从杂志中获得了旧版本)Camtasia时,该方法才有效,因为它安装了编解码器的编码版本。它制作了非常小的视频。大概适合一段时间。


0

您可以使用的另一个程序是Time Lapse MovieMonkey

它确实非常快地制作了我的最新定时电影。而且我不必阅读说明。它简单直观,但具有足够的高级设置。而且是免费的。

作者说已经用50.000张图片进行了测试。


链接已失效。
Timothy Lee Russell

0

使用PicasaGoPro-studio可以获得非常好的效果。

我正忙着观看一段视频,以记录使用这些工具构建冲浪板的情况。我的个人资料上有一项正在进行的工作已发布到YouTube(搜索“ Surfbordbou”-每个帖子最多允许2个链接)

Picasa的电影制作工具非常易于使用,只需单击2下,您便可以延时拍摄一组选定的图片。


欢迎来到该网站。当您说您获得良好的结果时,这是否是与问题中相同的任务并且处理数量级的图像?这是关键点,您应该在答案中进行讨论。如果答案是肯定的,请描述它,您将获得一个成功的答案。如果不是,那么它是有用的信息,但对这个问题不是一个很好的答案。在这种情况下,请删除此答案,询问有关执行任务的新问题,然后使用解决方案回答您自己的问题。那将是另一个成功的组合。
fixer1234
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.