The MJPEG/Linux square - Old news
(External links open in a new window) | Page last
modified: May 21, 2000
These are older news updates:
- (September 16th, 2003 - by Bernhard)
There is now a a document describing how to compile the mjpegtools on a MAC running MacOS/X. You also find that document in the doc area
- (March 29th, 2003 - by Gernot)
The unified Iomega Buz, LML33 and Miro DC10+ driver page has been created by Ronald Bultje!
- (March 28th, 2003 - by Gernot)
mplex now has support for MPEG Z/Alpha, an unofficial extension to MPEG2 allowing the integration of transparency and depth with MPEG2 compressed video files.For more information, see
The MPEG Z/Alpha homepage
- (March 28th, 2003 - by Gernot)
Brett Kosinski writes the following:
Hi. I thought I'd put out my first announcement of a little Perl module
I've been working on. It's basically a wrapper for the YUV4MPEG stuff
found in mjpegtools, so one can write/prototype video filters in Perl.
You can find it here:
- (Feb 10th, 2003 - by Gernot)
Bernhard has written a page showing some screen captures taken with the Iomega Buz, to show your friends what the good side of such an MJPEG card is ;)
- (Jan 25th, 2003 - by Gernot)
Allen Soard has developed a bunch of extra yuvutils on his page! Among them is yuvmagick, a tool to interface with ImageMagick's utilities - Find them on http://wave.prohosting.com/espsw/
Note: The on 2nd of April 2005 we have tried to download the files. They were not downloadable
- (Dec 5th, 2002 - by Gernot)
Gilles Caulier has created scripts to create the X/S/VCD portofolio
disks. It's a backend of Mjpegtools and ImageMagick.
His script can be found with CVS on this sourceforge project :
You can find the files here :
- (Dec 2nd, 2002 - by Gernot)
PhotoVCD.sf.net hosts the following software:
This is an attempt to create a GUI mainly for mjpeg and vcdimager tools in order to create VCDs with photographs in high resolution. It has the help of openil, mjpegtools and vcdimager code. Now it is only Win32 code but next versions may be multiplatform.. Mail peel2k3 for more information !
- (May 6th, 2002 - Ronald speaking)
After a long development time, mjpegtools-1.6.0 was just released! Read the full
sourceforge or go straight ahead to the download
page to download it!
- (February 12th, 2002) (Ronald speaking)
The second beta of the MJPEGtools has been released. We're preparing for the
release of the final 1.6.0, so all testing is welcome! Download locations are
still the same as last month. The release can be downloaded here,
and release candidates of libmovtar, jpeg-mmx and quicktime4linux can be
- (January 5th, 2002) (Ronald speaking)
The first beta of MJPEGtools-1.6 is available for testing! Since the
release of 1.4.1, a lot of features hav been added. Among them are a 3:2
pulldown convertor, a denoiser and the ability to capture from any video4linux
device rather than only from zoran-based capture devices. A full list of changes
(but probably incomplete) can be found here.
MJPEGtools-1.6.0-beta1 can be downloaded here.
To compile the tarball, you might want to test the newest versions of
quicktime4linux, jpeg-mmx and libmovtar, all available for testing here.
- (November 3rd, 2001) (Gernot speaking)
I am still busy with my last year of studies, and still working on my MPEG player for IRIX, so you won't see too much code from me during the next time, either, sorry ... but I got something for you:
Matto Marjanovic has written down some of the arcane knowledge he has distilled over the
past couple of months --- the basic stuff that he thinks is crucial for
someone trying to do digital video to know. (Well, there's more, but
this is what he has got written down so far.) Not all of it is bullet-proof
just yet (and he doubts it ever can be), but it should be pretty accurate.
Check out http://www.mir.com/DMG/
- (September 22nd, 2001) (Gernot speaking)
remember that we had to clean up and remove our FTP server directory ?
I have now copied all the files into our WWW-directory, so if you are
looking for a file, you need to replace
Sorry for the mess !
- (July 19th, 2001) LVS (Linuxvideostudio) is now also available as CVS version, might not be stable.
But error reports are very welcome.
LVS at sourceforge CVS area.
You find the stable versions and doku at http://ronald.bitfreak.net
- (June 6th, 2001) (Ronald) After months of testing 1.4-pre-releases and even
more time of making 1.3beta-releases, we're proud to announce the release of
You can find the full release notes, changelog and more in the sourceforge file
- (May 12th, 2001) The latest pre-release of the MJPEG-tools 1.4 (mjpegtools-1.4pre2.tar.gz) is available at the ftp Server:
- (April 23th, 2001) (Ronald) The 4th beta of the MJPEG-tools 1.3 have been
added to the download area. This release is mainly intended to find bugs for the
final release of version 1.3. Next to that, there's also a slightly modified version of Quicktime4linux-1.3. See the release notes of both packages for more info.
- (April 22nd, 2001) (Gernot)
Serguei Miridonov has released a Zoran driver plug-in for the famous MainActor video editing software ! Way to go !
(check the news section on this page for more info...)
- (April 21st, 2001) (Gernot) Another release of the unified zoran-driver 0.8 thanks to all the hardworking MJPEG driver developers :-)
- (March 2nd, 2001) (Gernot) The MJPEG tools user list has been created !
(This list is also acting as an replacement for the Buz/Linux list, aka firstname.lastname@example.org). All former subscribers to the Buz/Linux list have been autosubscribed to this new list.
- (Feb 12th, 2001) (Gernot) Bernhard Praschinger
has contributed a
compressing MPEGs with the MJPEG tools - please check it out !
- (Feb 8th, 2001) (Andrew) The next release of the tools (3rd
beta) is ready. Still beta status due to a couple of desirable
features not yet implemented but definately ready for serious use.
Highlights of the release: MPEG2 encoding with support for creating
VCD and SVCcompliant stremas that can be burned to disk using vcdimager and played
on DVD/SVCD/VCD players.support, support for SB-live and similar
soundcards, support for the new unified driver, and support for
playing back/compressing MJPEG streams captured using xawtv rather
than MJPEG hardware encoders. The ChangeLog and release notes can be
accessed through the files page. See the "INSTALL" file in the
tarball for details of installation.
used for transcoding DTV and DVD streams to more compact MPEG formats
(e.g. SVCD or VCD) haved also been updated.
The HOWTO explaining how to do stuff from a beginners perspective
is still growing and should be finished soon. If you're unsure about
anything (or remember being puzzled by something) drop an email and we'll try to ensure an
appropriate entry gets written.
- (Jan 25th, 2001) (Gernot) A lot of discussion is going on on the
Marvel mailinglists - I like
that ! Bernhard Praschinger
has contributed with a small HOWTO for
compressing MPEGs with the MJPEG tools - please check it out !
- (Dec 27th, 2000) (Andrew) There's an
interim update for the beta2 release that should solve a crashing problem with K6-2, K6-3 and Pentium-MMX CPU's. Its not as thoroughly tested in other areas as I'd like so if you have a different CPU you may want to stick with the original release for the moment.
- (Dec 19th, 2000) (Andrew) A much improved
beta release with lots of new goodies is now available! The list
of improvements and enhancements includes: software only MJPEG
playback, movtar support, faster and better MPEG-1, MPEG-2 support,
VCD support, and variable bit-rate MPEG support.
- (Sep 18th, 2000) (Gernot) movtar_unify can now take arbitrary
JPEGs and put them into a movtar (which expects YUV 4:2:2 JPEG). In
this way you can now pack your MPEG-videos with mpegenc2 and a
bttvcard in Linux !
- The colors in the MMX JPEG YUV->RGB color conversion are (finally) right. jpeg-6b-mmx has now complete JPEG decompression acceleration in MMX.
- Gernot will extract libmovtar and jpeg-6b-mmx from the mjpeg_play-package and make them packages on their own.
- (Aug 22nd, 2000) (Gernot) I have added links to the different MJPEG driver homepages (see "Drivers" to the right).
- (Aug 22nd, 2000) (Gernot) I have uploaded a "corrected" version of quicktime-linux-1.2 - please download it over FTP (see link to the right).
I am aware that the colors in MMX decoding are wrong - I will either deactivate this code or recalculate the values - let's see which I do first ;)
The movtar support can be considered beta by now, it is not used very often yet, but I like to utilize it for misc. debugging purposes, since it is very easy to retrieve the JPEG file content from a movtar.
Yepp, now I will continue hacking again - if you have questions, feel free to mail me !
- (Aug 8th, 2000)Good
news. The MPEG encoder improvements have now reached the point where
its time for a beta release! Encoding is now at least 10 times as
fast and somewhat higher quality. Gernot is still slaving hard on
mjpeg stuff so this is only an initial beta based on a stable snapshot
of the mjpeg components. As such bugs and complaints should go to me (Andrew Stevens). A small
bonus is that audio capture / playback code should now work onn
cards/drivers that can't provide lots and lots of large buffers. If
you have capture problems where none existed before (or can now
capture reliably when before you had problems) let me know! A tarball
can be downloaded here.
- (July 12th, 2000)No, I did not get lost inthe mountains of
Austria ;) ! Andrew Stevens has joined me (welcome !), and he is now
working on the mpeg2enc system - and he is really good at that, belive
me ;) - I am currently working on libmovtar, which is a new library to
handle movtar files (my own MJPEG video format based on tar), it has
already read support for lavplay (see CVS), and will relatively soon
be equipped with write support and other useful tools. (Which Buz
veterans will recognize as new incarnations of the buz_tools' movtar_*
programs). v4l-conf and lavvideo was added to provide first
experimental support for V4L frame buffer windows.
- (June 22nd, 2000)Lots of things have been happening in this
project. As a personal change, I took the Linux
Audio/Video tools 1.2 by Rainer
Johanni, and added MMX accelerated software MJPEG playback to it
:) !You can check out the code in the mjpeg_play module as usual, but
you will have to add a link to your quicktime-1.1.9
directory, like this:
cd /usr/src/mjpeg_play; ln -s
Then you will need to
install the SDL library, version 1.1.x
(or 1.0 ? I can't remember %-) ), too. That should be about
it. Mail me if you have
problems. Oh yes, I forgot to mention: The colors look a little
"wrong", I have to recalculate some conversion parameters in the MMX
routine, will do that ASAP...
- (June 13th, 2000) I am proud to announce that the JPEG library now
has fully MMX accelerated code for playback. The example application
movtar_play is now able to play movtar MJPEG:s in
15bit/16bit/24bit/32bit color modes. (movtar_play can achieve 25
frames/second, which means 25 complete JPEG decompressions per second
(which is more CPU work than in MPEG), on my AMD K6-2 500 in 360x288,
16-bit mode). I will now stop the development for movtar_play, and
start to integrate the code into the lavtools to provide you
with fully fledged software playback support for all kind of MJPEG
formats like AVI-MJPEG or Quicktime-MJPEG ...
- (May 25th, 2000)I am mainly working on movtar_play (part of mjpeg_play, see below), but I am unable to make the MMX support in the modified libjpeg work correctly ... the code compiles fine, no problem about that, but each 8x8 block in the picture contains: a 50% "right" version, and 50% of a horizontal mirror image of the block:
Correct version of the picture (don't mind the colors, that's easy to fix)
MMX version of the picture (each litte 8x8 block contains mirror images)
Here on how to reproduce the error:
- Download the CVS code.
- Get one of the following movtars: t1 t2 (for more info on how to generate your own movtar videos, see The Buz/Linux page, especially the buz_tools. If you have a fast connection, I can provide you with movtars in MB-size...
- jidctfst.c contains the MMX optimized IDCT and the non-MMX version. Quite in the beginning of the source code, you can find a variable called MMXAvailable being checked for MMX support. if (MMXAvailable) gives you the MMX-code, but if you change it to if (!MMXAvailable) you get the non-MMX result.
- After you have verified that you can get both versions on demand, and you want to see my experiments: change the #undef TEST_ERRONEOUS to #define TEST_ERRONEOUS in jidctfst.c (and if (!MMXAvailable to call this code), and see for yourself - the result looks pretty much the same. That's why I have the strong suspicion that something goes wrong in the output stage of the MMX code.
- Some background information: The Assembler code was copied from Intels homepage on JPEG optimization for MMX, or rather its implementation in the Mozilla source code (althoguh I tried the original Intel version, too). The code was converted using intel2gas (see freshmeat for homepage), but a bug prevents to convert the whole C file, you have to extract the INTEL inline assembler to a little file and convert it there, and then put the result back into the main code. Still, one has to fix the constants (they have to be global !!), the input parameters ($quantptr becomes %0, etc.), and the comments (# -> //), but that's no big deal.
- I tried to convert jidctint.c too, it yielded the same wrong results.
- A thought: I have heard rumours that there are problems using the most upper MMX registers (mm4-mm7 ?) in Linux, if that's true (somebody that can confirm that ?), then it would be no wonder that it doesn't work, since the output stage combines results from lower registers with ones from upper registers.
- I will try to examine the problem with DDD, have to install it first. Any help (even if it's just brainstorming) is welcome - making the jpeglib run with MMX support would be a HUGE advance for the MJPEG development in Linux !
- May 21th, 2000 - Creation of a basic homepage. Welcome, folks ! The MJPEG/Linux is there to collect information on using MJPEG hardware of all kinds in Linux, and to encourage development of MJPEG applications by bringing together their authors in an information exchange, and, if neccessary, provide an "umbrella project" for small MJPEG application developments (like the buz_tools, or movtar_play).
- May 19th, 2000 - mjpeg_play has been checked in into the CVS tree . It's a little test application for, and that's the important thing, an experimental libjpeg with MMX support ! Please don't expect it to work yet, we are currently working heavily on it ...
- May 15th, 2000 - This project was created.
Page last modified: June 13th, 2000