Tcl/Tk Front-End for free mpeg player from

mtvcontrol is an interface to the somewhat free audio/video mpeg player available from (so far only tested against the Solaris XIL version It allows basic pause and play, positioning in the file via the scrollbar, and some options. Audio does not cut off - this is only the case if you use the demo of MpegTV's (non-free) GUI.

mtvcontrol is currently the best free option I know of for a general Unix/Linux MPEG player capable of simultaneous audio and video.


Getting it

First, you have to have the wish interpreter for Tcl/Tk 8.0 or higher installed.

Second, you have to download mtv from MpegTV. You'll only really need the mtvp program, which is the part that can be used for free if you are non-commercial/educational.

Third, you'll need to download mtvcontrol from me.

Fourth, you'll have to edit the first three lines of mtvcontrol to reflect the location of your wish interpreter, and also mtvp.

And if you want to, you can register for email updates.

Using it

The simplest thing to do is "mtvcontrol filename", which views the file you give it. here.

The options are available from both the interface and the command line; they are described in the builtin help, accessible with "mtvcontrol -help":

This application is a front-end to the free mpeg player from
They offer a free mpeg player with no interface, and a for-profit control
application.  It plays only MPEG-1, not MPEG-2.  This application was
tested on MpegTV version
Because of limitations in the public interface to the mpeg player, not all
desired features can be fully implemented.  Some features can only be
accessed at startup (rather than interactively), such as volume and balance
(but /usr/openwin/bin/audiocontrol can be used to control audio interactively
during playback, and can be used to control headphones/speaker output).

Know bugs:
If you attempt to use the slider before a movie has been played from the
beginning, things will freeze up.
The -samewin option is very buggy.

The following command-line options are supported:
  -buffer N     The ammount of memory to use for buffer space;  default
                is 40960.  Small numbers make for better interactive
                response (e.g. pause or the slider), but rougher
                performance.  Larger numbers increase the lag of the
                control panel, but smooth the playback.  Shouldn't be
                smaller than 4096.
  -framerate N.n The number of frames per second for playback.  The default
                is zero which means to play at the rate encoded in the video
                if any, or as fast as possible otherwise.  Non-zero values
                range from 1.0 to 1000.0.  Standard frame rates are 29.97
                or 30.0 frames per second.
  -install      use a private colormap for mtvcontrol
                (this may be useful with the -samewin option)
  -samewin      attempt to display the video in the same window as
		the control panel.  If it can't find enough colors, it
		will use a private colormap, but you won't be able to
		see the correct colors, because mtvcontrol won't
		know about the new colormap.  Recommend using -install
		and -mincolors 240 to get correct color behaviour.
		This may also lead to a crash if additional mpegs are
		loaded interactively.  Also, there is no way to obtain
		the true size of the video output if this option is
		used (it will be scaled up or down to fit, see -width
		and -height).
  -width N      
  -height N     Set the width and height of the video window -- this only
                applies if the -samewin option is used, otherwise the
                video size depends on the source file (but can be changed
  -zoom         Make the video window twice as big as its default size.
		This option does not apply if -samewin is used.
  -loop         When the end of the video is reached jump to the beginning
		(stopping at the end is the default).
  -mincolors N  The minimum colors to use, N is from 16 to 256.  If it can't
                get this many colors, a private colormap will be used.
  -maxcolors N  The maximum colors to use, N is from 16 to 256.  Use this
                to prevent a private colormap from being used (but it
                will look lousy)
  -truecolor    try to use full color (this would be the default if you
                are using a full color frame buffer)
  -8bit         force 8bit color output (this is the default for most
                Sun workstations)
  -gray         use only levels of gray, no color.  This will always need
		128 colors available, regardless of mincolors and maxcolors
  -gamma N.n    gamma correction, larger numbers are brighter.  default is 1.4
  -novideo      turn off video display (presumably you'll leave on audio)
  -noaudio      turn off audio display (presumably you'll leave on video)
  -stereo       use both audio tracks (default)
  -left         use only the left audio track (on both speakers)
  -right        use only the right audio track (on both speakers)
  -balance N.n  0.0 is full left, 0.5 is centered, and 1.0 is full right
  -volume N.n   0.0 is softest, 1.0 is loudest

Copyright  2000 by Thomas A. Fine

Here's an example using the options "-samewin -gray":

It's klunky!

Yes, it is indeed klunky. Kludgy even. This is because of the limitations in my method of using MpegTV's software. Most settings can't be changed without restarting their player. So any particular bug or missing feature you run into is probably not fixable. Here's some of the problems:

Send bug reports to me by clicking here.

About mtvcontrol

The mpeg player sold by consists of two main programs, mtv which provides the Graphical User Interface, and mtvp, which does the actual decoding of the MPEG audio and video. They support many platforms, including Solaris.

The player itself (mtvp) is freeware for non-commercial use (see their website for more details), and can be downloaded and used forever without any annoying registration messages. It plays both audio and video (only MPEG1), which for some platforms is long overdue. But without the interface program (mtv) you can just play and watch, and that's it -- no pause, no scrolling, no feedback. And the interface program costs money.

So I found a program called nmpeg which works with mtvp (and allegedly other players), which allows control of playback by piping the MPEG file to standard input of mtvp. Unfortunately it was pretty limited, and it required PerlTk which I didn't have installed. So I made this. It works in the same way, controlling playback by stopping and starting the input it is sending to mtvp. Because of buffering, there is always a little bit of a delay between the user input, and the response. I've managed to reduce this to a minimum by reading the mtvp documentation, and added a few features, but it's still fairly clumsy.

A better way

The actual mtv interface that drives mtvp in the for-profit version doesn't use this method of communication. The work I've done investigating this better method is described on another page, as well as discussions of the legality of both versions.
Tom Fine's Home Send Me Email