[an error occurred while processing this directive]
Introduction
This page focuses on creating MPEG-1 movies (video only) using NERSC and
LBNL UNIX computers. The resultant movies can be played using any MPEG-1
player or on a web page. This page describes what you need to
consider before you makeyou make your movie;
some
methods for creating a movie; and some advanced tips
for the more adventuresome user. Note: The example movies shown in this
page do not reflect the normal quality of output from the graphics &
visualization packages used. We picked the worst way to create the images
and movies to illustrate what you should not do.
Creating a movie is at least a two step process. First you need to create
the individual frames that will comprise your movie. You then need to combine
these images to create a movie that you and others can play back on a computer.
Almost all computer-generated movie formats use a compression algorithm.
Compression is necessary because of size constraints (size of image times
the number of the images to make a movie (30 frames per second) equals
hundreds to thousands of megabytes). The MPEG-1 standard is one movie format
that supports a very good compression scheme. Others possible formats are
Apple's
QuickTime, and Microsoft's
AVI.
This page focuses on MPEG because most platforms support MPEG-1 players
and there are lots of plug-ins available for web browsers.
When you decide to make your movie, be prepared to spend more time on
creating the movie than you first thought or you would like to. Movie making
is an art. There is no cookbook that will tell you exactly what you need
to do to create your perfect movie. Factors that contribute to the problem
is that the final movie size may be the most important factor to one user,
another user is more interested in the highest-quality image, and yet another
is interested in portability.
If you are interested in learning more about video and various standards
like MPEG, check out the web and books and magazines on video, it's creation,
and deployment. Click here to
go to the official web site of the Movie Picture Experts Group (MPEG).
Making MPEG Movies
Things to consider before
you make the images for your movie:
-
It is best to create the images in the correct size to begin with. Most
movie creation programs do a poor job of changing size, especially the
PC programs we tried. If you need to modify the size, do it before you
create the movie, using tools such as imscale ('module load imtools').
NOTE:
Many movie making methods expect the image size in x
and y to be in multiples of 16. If not, depending on the version of mpeg_encode
and mediaconvert, they will either resize the images, core dump,
or complain and not create the movie.
-
Most of the encoding programs expect the files to be numbered sequentially
(e.g., mpeg_encode and many PC programs). A correct numbering sequence
is: file0000.jpg, file0001.jpg, ..., file1000.jpg. An incorrect sequence
is: file1, ..., file10, ..., file100 (because using the wildcard symbol
(*) will not sort them correctly).
-
Even though the various MPEG encoders can generate movies with various
frame sizes, not all viewers can handle them. For example, we had problems
viewing the movie on a PC with a 1037x541 movie. We have been successful
with movies of 640x480 or 320x240.
-
Keep your frames uncluttered, especially if you are creating a movie with
small frames (e.g. 320 x 240 movie).
-
Start with a good image. Any compression scheme will degrade the quality
of the original.
-
Before creating all your frames, you might want to try making a sample
movie from a few frames. This is important because your time-step between
frames may be too great, and when played back this creates a jittery movie.
Also, while the individual frames may look great, motion can add visual
artifacts that are both confusing and distracting.
-
Don't create your frames using the GIF file format. GIF compresses the
color information to 256 colors. MPEG does not have this restriction. Use
JPEG, TIFF, PNM, or another file format that the mpeg encoder supports.
Also, do not use an image file format that does a lossy-compression on
the image.
Creating Movies
SGI tools: available on escher.nersc.gov and LBNL SGI's.
Visualization Packages that provide MPEG generators.
Unix tools: available on escher.nersc.gov and LBNL sytems mounting
the Software Farm.
Try out the different programs to see which one creates the movie quality and size you want.
Here are two sample movies that show how the two encoders worked with small bouncing balls with their default settings for
compression.
In this case, mediaconvert did a better job than mpeg_encode but
created a larger file (490K versus 90K).
mpeg_encode did a better job when the balls were made a little larger and the colors were de-saturated.
Movie 1, notice the balls are not distorted.
Movie 2, the balls are distorted.
With both encoders you can play with changing the compression scheme by modifying the number of I, P, and B frames.
The definition of these frame types are detailed at the Berkeley site mentioned
in the previous paragraph or any article on MPEG.
Basically, the more B and P frames you specify, the more compression.
Displaying Movies
SGI tools: available on escher.nersc.gov and LBNL SGI's.
movieplayer displays
MPEG-1, QT, AVI movies.
Other tools: available on escher.nersc.gov and LBNL sytems mounting
the Software Farm.
mpeg_play
displays MPEG-1 movies on a Unix system.
Advanced Tips
-
Depending on what you want to do with your movie, you might want to play
with the Bit Rate found on the "Video Output Parameters" sub-menu of
mediaconvert)
or the "BIT RATE" line in the mpeg_encode parameter file. You can
decrease the size of your movie file if you lower the bit rate. This might
be important if you are playing this movie across the network.
-
Sometimes you cannot create your images without jagged edges or small dropouts
in the frames.
mediaconvert has the ability to do some image processing
(smoothing) on the individual tool images before the movie is made. You
access this capability by selecting video parameters from the main menu
and then selecting the "MPEG-1 Settings Panel". "Prefiltering" has three
options: None for no smoothing (Sample
Movie), Medium does some smoothing, and Maximum does the most smoothing
(Sample
Movie). Check out the smoothing flags to see which one works best on
your frames. Note: Smoothing will increase the size of your movie file.
-
Mediaconvert lets you specify the frame rate of the movie. Remember
that film is 24 frames/second, while video is 29.97 frames/second. If you
start with a 30 fps movie and you have the Frame rate is set to 24, you
will get an MPEG-1 movie with fewer frames. mediaconvert is preserving
the duration of the movie (important in non-computer generated movies)
and converting from 30 to 24 fps. Thus, a movie with less frames.
-
Sometimes you need to concatenate two or more images into one frame. Useful
tools for doing this are Imtools and pbmplus.
Useful tools for image manipulation
-
Imtools is a suite of very useful tools from SDSC (available on
NERSC escher.nersc.gov).
imconv is useful to converting from one image file format to
another.
imscale is good for changing the size of the image and changing
the image format.
imstoryboard is useful to change the size, image format, and
add margins.
An example of how to use imconv to convert from a TIFF file to
a JPEG file:
module load imtools
imconv 0000.tif 0000.jpg
-
On NERSC (escher.nersc.gov) and LBNL machines you can convert your CGM
movie file (called gmeta in this example) into JPEG files all at once by
doing
module load ncar
ncgm2jpeg gmeta
-
xv is very useful for displaying an image, converting a single image's
format, and for checking on the dimensions of x and y. (Available on NERSC
and LBNL machines, module load xv is needed in some).
-
Another useful suite of tools that have similar capabilities are the pbmplus
tools (module load pbmplus on escher.nersc.gov and module load graphics/pbm
on LBNL).
-
If you want to analyze your movie (frames, size, compression, etc.) there
are two useful tools. mpeg_stat (module load mpeg_play) gives the
most information about your MPEG-1 movie. SGI's dminfo gives more
summary information for MPEG-1 and other movie formats.
NERSC User Training on MPEG generation:
link to a presentation.
[an error occurred while processing this directive]