Navigation :
Top/Movieの作成
Movieの作成
Movieの作成
一番シンプルな方法 †
figure(1);clf for i=1:nt h=surf(X,Y,Z); M(i) = getframe(gcf); end movie2avi(M,'movie')
もう少し本格的 †
AVIフォーマットのファイルは,version 6.0より利用できるようになりました.
例) ix_size_movie = 640; iy_size_movie = 480; for it=1:nt if it == 1 figure(1); clf; set(gcf,'position', ... [0 画面のたてサイズ-iy_size_movie ix_size_movie iy_size_movie]); axis manual axis([x_min x_max 0 y_max]) set(gca,'nextplot','replacechildren') ; set(0,'Units','Pixels') %単位をpixelに hsize = get(gcf,'Position'); end *** 書きたい図 ***; M(:,it) = getframe( gcf, [0 0 hsize(3) hsize(4)] ); end movie2avi( M, file_name );
movieは画面の左上からの領域を保存するので,"set(gcf,'Position',[x1 x2 y1 y2])"で場所を確定しないとちゃんと作れません.
movie2aviで作られるmovieは非圧縮なのでtmpgenc(http://www.tmpgenc.com/)でmpegにすると1/10〜1/30のサイズになります.
movieの保存 †
AVI形式 †
movie2avi(M,cname,'COMPRESSION','Cinepak','QUALITY',90)
- 'COMPRESSION'
- 'Indeo3' Microsoft形式(古い, Mediaplayer非対応)
- 'Indeo5' Microsoft形式(古い, Mediaplayer非対応)
- 'Cinepak'
- 'MSVC'
- 'none' 圧縮なし
- Default
- 'Indeo3' for MS-Windwos;
- 'none' for linux;
- 'fps'
- Default = 15;
- 'QUALITY'
- 50-100
- Default = 75;
mpegを直接作る †
つぎに直接MPEGファイルにする方法ですが、MATLABでは正式にはMPEG ファイルをサポートしていません。 Matlab centralにあるfreeのmpgread, mpgwriteを使用する.
使い方: mpgwrite †
mpgwrite(M,map,filename) 例) mpgwrite(M,jet,'example')
Tips †
- M(i)=getframeで記録したデータがmoive(M)でちゃんと再生されない場合
- レンダリングモードが違う場合がある.zbufferを使う場合,
set(gcf,'RendererMode','manual','Renderer','zbuffer')
- レンダリングモードが違う場合がある.zbufferを使う場合,