Processing 如何将处理草图导出为视频?
我正在处理中创建一个三维可视化。我预计,绘制每一帧所需的时间将比将动画显示为程序所需的时间更长,因此我希望将其导出为视频Processing 如何将处理草图导出为视频?,processing,Processing,我正在处理中创建一个三维可视化。我预计,绘制每一帧所需的时间将比将动画显示为程序所需的时间更长,因此我希望将其导出为视频 这可能吗?最好的方法是什么?如果您不使用Processing 2.0,可以使用MovieMaker库将草图导出为视频(在Processing 2.0中,MovieMaker将在一个工具中转换,但它还不能工作) 另一个选项是在draw()函数中使用saveFrame()方法 您可以找到如何使用MovieMaker的示例 GSVideo库的saveFrame()方法的文档在Pro
这可能吗?最好的方法是什么?如果您不使用Processing 2.0,可以使用MovieMaker库将草图导出为视频(在Processing 2.0中,MovieMaker将在一个工具中转换,但它还不能工作) 另一个选项是在draw()函数中使用saveFrame()方法 您可以找到如何使用MovieMaker的示例
GSVideo库的saveFrame()方法的文档在Processing 2.0中有助于实现这一点。有一个类“GSMovieMaker”,其对象与上面描述的非常相似。亲爱的,你可以使用Randel Shofer制作的程序,你只需修改8,10行代码就可以在你的程序中使用它(如果你有更多的时间,你可以不用修改源代码) 程序(Jar.)链接:
描述:该库允许从处理中直接导出mp4。不过,它需要您在系统上安装。经过一周的研究,我用ffmprg二进制文件编写了非常简单的代码:
if(frameCount<628){
saveFrame("temp/anim_#####.png");
}else if(frameCount == 628){
println("Saving file!");
processBuilder = new ProcessBuilder("G:/.../ffmpg/bin/ffmpeg.exe", "-r", "60", "-i",
"C:/.../temp/anim_%05d.png", "-c:v", "libx264",
"-r", "30", "-pix_fmt", "yuv420p", "C:/.../test.mp4");
try {
process = processBuilder.start();
} catch (Exception e) {
e.printStackTrace();
}
}
if(frameCountsaveFrame()
绝对是一个不错的选择。你可以将这些帧堆积到Quicktime Pro<7.6中,如果你有它的话,它有一个很好的开放图像序列功能,然后导出到Quicktime,或者你可以尝试用ffmpeg将它们缝合在一起。一个月前我也遇到过同样的问题,我使用了saveFrame()+Quicktime技术是的,这对我很有效。saveFrame()
与ffmpeg结合使用。当使用saveFrame()
时,我没有得到所有的帧,结果滞后了很多。有人知道我能做什么吗?@JordanBelf使用saveFrame()时,低帧率是正常的(取决于草图的大小,但有时可以达到1fps或更低)但您应该拥有所有帧exportedIt应该注意的是,GSVideo依赖于gstreamer,这在许多现代Linux发行版上很常见,但在Windows或OS X上并不常见。确认这一点在P3+Mac OS X上非常有效。