Membuat Video simulasi dengan gnuplot dan libav:Avconv


Pengertian dan prinsip dasar

Maksud judul di atas adalah : animasi untuk plot hasil komputasi dengan komputer. Misalkan kamu ingin menganimasikan solusi numerik persamaan panas setiap time step.

Jika kamu pernah mendengar open source software untuk plotting bernama gnuplot, software ini merupakan aplikasi standard di kalangan saintifik dan akademisi bidang komputasi. Banyak secara pilihan fitur untuk visualisasi dengan aplikasi ini. Saya belum tahu apakah ada aplikasi lain yang interaktif untuk menggunakan software ini. Tapi gampangnya, kamu bisa tinggal membuat perintah dengan script command untuk plot sesuai yang diinginkan. Cek lebih lanjut di websitenya untuk pilihan visualisasi. Untuk keperluan saya pribadi, selama ini saya merasa cukup dengan gnuplot. Hanya 1 hal saja, karena base on script command, terkadang harus tahu command-nya dan mengerti apa yang command tersebut sebetulnya lakukan. Agar kamu bisa membuat data komputasi sesuai requirement dari perintah tersebut. Nah software ini, digunakan untuk membuat plot-plot graph hasil komputasi saja, outputnya berupa standar image extension biasa, seperti png, jpg, dkk. bisa juga eps (Encapsulated postcript) informasi gambar dimuat dalam rupa script.

Untuk animasi kamu bisa pakai tools lain yang prinsipnya adalah menyatukan susunan file gambar-gambar tadi menjadi sebuah video, dengan output misalnya mp3, avi, dsb.  Disini saya akan memakai libav atau avconv.

Saya klasifikasikan 3 prisip dasar dalam membuat video animasi hasil komputasi.

  1. Siapkan data plot yang tersusun dengan baik sesuai keperluan. Karena tujuannya adalah membuat animasi per time-step, jadi gampangnya setiap file mengandung data plot untuk setiap time step. Beri ordering penamaan yang bisa dengan mudah dibaca avconv nanti dengan perintah dalam bentuk iterasi integer. Misal, kasih nama : “output001.txt”, “output002.txt”, …”output%3d.txt”, …,dst. Pastinya file-file ini merupakan hasil output dari program yang dibuat yaah.
  2. Create image dengan gnuplot (pakai script command) dengan input file-file “txt” diatas. Untuk hal ini, kamu bisa siapkan satu file dengan extension “.gp” , “.gpi” atau “.plt” yang berisi semua perintah-perintah untuk memplot file-file txt tersebut menjadi file-file image. Misal, kamu sudah siap dengan “plot.gp”
  3. Generating koleksi images menjadi video. Pastikan parameter-parameter dalam command avconv, agar video yang dihasilkan nanti sesuai keinginan kita.

CONTOH:

Precond:

[@ prinsip 1] kamu sudah punya koleksi file-file bernama  “output001.txt”, “output002.txt”, …dst, dalam sebuah path directory.

Command process – nya:

gnuplot “plot.gp”

avconv [sequence perintah pengaturan parameter dan nilainya.]

avconv -r n -start_number 1 -i output%3d.png -b:v 1000k outputVideo.avi

Dimana:

  • -r , adalah ‘rate’ yang menerangkan kita ingin membuat video dengan n frame per second
  • -start_number, adalah start number untuk keterangan integer dalam gambar. Sesuai contoh, kita mulai dari 1.
  • -i output%3d.png , iterasi sesuai bilangan integer di akhiran nama file, untuk mengumpulkan file-file .png tersebut menjadi video
  • -b:v, untuk setting compatibility untuk MPEG-4 agar kompatibel untuk DivX5 . (ini cuma sebuah pengaturan yang spesifik yang biasa saya gunakan)
  • outputVideo.avi , nama output video nya.

Kira-kira hasilnya bisa seperti contoh video youtube di bawah ini.

,

Leave a Reply