2012-09-24 90 views

回答

8

如果你不使用处理2.0你可以用制片人库草图导出为一个视频(制片人将在刀具转换的处理2.0,但它并没有工作)。

其他选项是使用saveFrame()方法,在你的draw()函数

Here你可以找到如何使用制片人

here的saveFrame()方法

的文档的例子
+2

'saveFrame()'绝对是要走的路。您可以将这些框架堆叠到Quicktime Pro中,如果您有它,它具有很好的开放式图像序列功能,然后导出到QuickTime,或者您可以尝试使用ffmpeg将它们缝合在一起。 http://ffmpeg.org/ – ericsoco

+0

我在一个月前有过同样的问题,我也使用了saveFrame()+ Quicktime技术 –

+0

是的,这对我很好。 'saveFrame()'与ffmpeg结合使用。 – alnorth29

1

的GSVideo库here与这有助于处理2.0。有一个类“GSMovieMaker”与对象很像上面描述的。

+0

应当指出的是,GSVideo取决于GStreamer的,这是许多现代的Linux发行版常见,但不能在Windows或OS X. –

1

研究一个星期我一直在使用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(); 
    } 
    } 

当然,你需要调整的文件的路径和ffmpeg的二进制文件(https://www.ffmpeg.org/download.html)组成。它应该独立于Processing版本,因为它只使用saveFrame并调用外部二进制文件来生成视频。享受;)