我有一些時間序列數據,我想創建到電影中。數據可以是2D(約500x10000)或3D(500x500x10000)。對於2D數據,電影幀是使用plot
的簡單線圖,對於3D數據,我們可以使用surf
,imagesc
, contour
等。然後我們在MATLAB中使用這些幀創建視頻文件,然後使用ffmpeg
壓縮視頻文件。使用MATLAB和ffmpeg快速創建電影
要做到這一點,人們會嘗試不呈現所有的圖像顯示,也不會將數據保存到磁盤,然後在過程中再次讀取它。通常,人們會使用getframe
或VideoWriter
在MATLAB中創建電影,但如果試圖不將數字顯示在屏幕上,它們似乎很容易變得棘手。有些人甚至建議以隱藏圖形繪製圖形,然後將它們作爲圖像保存爲.png
文件,然後使用ffmpeg
(例如x265
編碼器將其壓縮到.mp4
)壓縮它們。但是,在我的iMac中保存imagesc
的輸出首次爲3.5秒,之後爲0.5秒。我還發現,將這麼多文件保存到磁盤時速度不夠快,只能要求ffmpeg
再次讀取它們。有人可能hardcopy
的數據爲this,但我不確定它是否工作,無論繪圖方法如何(例如,plot
,surf
等),以及如何以最少的磁盤訪問將數據傳輸到ffmpeg
。
這與this類似,但immovie
太慢。這篇文章3是類似的,但主張將圖像寫入磁盤然後讀取它們(慢IO)。
不能相信你實際上挖了這個幾乎死了的帖子。太好了!你有沒有嘗試實施你的建議,看看它是否有效? – hyiltiz