A WRITE_VIDEO example
The routines
QUERY_VIDEO,
READ_VIDEO and
WRITE_VIDEO, introduced in IDL 8.2.3, act as procedural wrappers around the
IDLffVideoRead and
IDLffVideoWrite classes. These routines are intended to provide a simplified interface for working with video data, analogous to the
QUERY_IMAGE,
READ_IMAGE and
WRITE_IMAGE routines for working with images. They should also evoke the look and feel of
XINTERANIMATE and the old MPEG routines (MPEG_OPEN, MPEG_PUT, etc.).
Here's a simple example of making a movie with WRITE_VIDEO.
Start by initializing a video file with a call to WRITE_VIDEO, returning a handle:
outfile = 'write_video_ex.avi'
video_dims = [640, 512]
write_video, outfile, handle=h, video_dimensions=video_dims, video_fps=24
The handle
h is used as a reference to the open file.
Next, display a contour plot:
c = contour(dist(40), c_value=indgen(6)*5, rgb_table=72, $
/fill, planar=0, dimensions=video_dims, $
title='IDL 8.2.3 WRITE_VIDEO Example')
Now rotate the contour plot 181 times and take a screen grab on each iteration. Write the grab to the video file opened above, using the handle as a reference.
for i=0, 180 do begin
c.rotate, 2, /zaxis
sgrab = c.copywindow()
write_video, outfile, sgrab, handle=h
endfor
Although the handle is specified, the
outfile parameter is still needed in the call to WRITE_VIDEO.
Last, close the video file:
write_video, /close, handle=h
The file
write_video_ex.avi should be written to your current IDL directory.
The movie is best viewed on repeat in your favorite movie player. (Be careful, though, it's hypnotic.)