10033 Rate this article:
No rating


Dain Cilke
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
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.)

Please login or register to post comments.