2014年3月8日

Octave 動畫製作

有時候我們會想利用 Octave 畫出某些對時間變化的動態模擬的圖形或是分佈圖
對於這方面 Octave 似乎沒有看到有什麼解決方法?
(或許是我孤陋寡聞,如果有請告訴我)

然而,動畫可以看成是一張張依序播放的靜態畫面
所以若是我們將隨時間(t) 變化的圖形輸出成一張張圖檔
再將其串起即可成為動態影像

Octave 程式寫成對時間t 的參數式:

for t = 1:0.1:3*pi
...
name = sprintf("./pic/wave-%04d.jpg", t);
print(name);

...
end
print(file_name) 輸出圖檔,檔名加上序號方便之後轉檔用
再利用 ffmpeg 將這堆圖檔轉成mp4

EX:
ffmpeg -r 10 -i wave-%04d.jpg -c:v libx264 -r 30 wave.mp4

範例: