Processing で 3D ビジュアライゼーションを作成しています。アニメーションをプログラムとして表示するには、各フレームの描画に時間がかかることが予想されるため、ビデオとしてエクスポートしたいと考えています。
これは可能ですか?それについて行く最善の方法は何ですか?
Processing で 3D ビジュアライゼーションを作成しています。アニメーションをプログラムとして表示するには、各フレームの描画に時間がかかることが予想されるため、ビデオとしてエクスポートしたいと考えています。
これは可能ですか?それについて行く最善の方法は何ですか?
処理ライブラリのビデオ エクスポートを使用すると、処理から mp4 を直接エクスポートできます。ただし、システムにffmpegをインストールする必要があります。
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 ) へのパスを調整する必要があります。saveFrame のみを使用し、外部バイナリを呼び出してビデオを生成するため、Processing のバージョンに依存しない必要があります。楽しみ ;)
ここにある GSVideo ライブラリは、Processing 2.0 でこれを支援します。上記のようなオブジェクトを持つクラス「GSMovieMaker」があります。