ムービーに作成する時系列データがあります。データは、2D(約500×10000)または3D(500×500×10000)とすることができる。 2Dデータの場合、ムービーフレームはplot
を使用した単純な線図で、3Dデータの場合はsurf
,imagesc
,contour
などを使用できます。次に、これらのフレームをMATLABで作成し、ffmpeg
を使用してビデオファイルを圧縮します。MATLABとffmpegを使用した高速ムービーの作成
すばやく行うには、すべての画像を表示しないようにしたり、データをディスクに保存したりしないで、処理中に再度読み取るようにします。通常、getframe
またはVideoWriter
を使用してMATLABでムービーを作成しますが、画面に表示しないようにすると難しくなります。隠しフィギュアでプロットし、.png
ファイルとしてディスクに保存してから、ffmpeg
(たとえばx265
エンコーダーを.mp4
と入力)を使用して圧縮してください。しかし、imagesc
の出力を私のiMacに保存するのは、初めて3.5秒、その後0.5秒でした。 ffmpeg
にそれらをもう一度読むように頼むだけで、ディスクに非常に多くのファイルを保存するのに十分な速さではないこともわかります。 1つはのようにデータをhardcopy
と示唆していますが、プロット方法(例:plot
,など)に関係なく動作するかどうか、最小限のディスクアクセスでデータをffmpeg
に転送する方法がわかりません。
これはthisと似ていますが、immovie
は遅すぎます。この投稿3は似ていますが、画像をディスクに書き込んでから読み込み(低IO)
この死んだ投稿を実際に掘ったとは信じられません。ニース!あなたの提案を実装しようとしましたが、それが動作するかどうかを確認しましたか? – hyiltiz