2012/05/17

The Labs.Com Video Lab
Last update 2002/02/28

The Labs - Design & Functionality For The Net

Open-Source Video Resources for UNIX

  1. Introduction
  2. Resources
  3. AVI
  4. MPEG & MJPEG
  5. Web Video (Streaming)
  6. DVD
  7. Other Platforms
Video Lab
1. Introduction
More and more video approaches for UNIX (Linux, FreeBSD) become available, and also more codecs become available.

In the long run something like AdobePremiere-like GNU based Video-editing system which uses GIMP-plugins to render fadings or effects (see film.gimp.org).

It has to be admitted that SGI provides since years for high-end top-level video-capture and video-editing systems, unfortunatly few can afford to buy.

Note: The movie "Titanic" was rendered on Alpha-based machines running Linux, but models were created on NT and SGI-machines.

Video Lab
2. Resources

Codecs

 
Video4Linux
Primary site
Video4Linux 2 (V4L2)
Experimental API and specifications
ProjectMayo: DivX
Opensource video-codec (MPEG4 based)
OpenStream by Indrema.Com
New open source architecture for full-featured video and multimedia on Linux
LinuxTV.Org
Linux DVD site
NuppelVideo (RTJPEG)
Video for slow CPUs (200MHz) with MMX based on RTJPEG
The MJPEG/Linux Square
MPEG 1/2, MJPEG and editting / basic DVCR functionality

Streamers / Encoders

 
GStreamer
Open-source streaming media framework (mp3, MPEG-1 and -2, AC3, Ogg Vorbis, JPEG, RTJPEG, WAV, AU, V4L etc)
FFMpeg - Multi codec streaming
MPEG, ASF, AVI, WAV, SWF, Realmedia/Realaudio, PGM, PPM, JPEG, AC3, Raw MJPEG, MPEG video
Fame: MPEG Encoder
Provides MPEG "software-only" encoder with MMX, and network capability (no sound)
The MJPEG/Linux Square
MPEG 1/2, MJPEG and editting / basic DVCR functionality
MJPEG: Marvel & Rainbow Runner
Working
QuickTime for Linux
Library to read/write QT movies
IomageBuz & Linux
iomage-buz no longer produced

Misc. Applications

 
Simple DirectMedia Layer (SDL)
The API documentation
FXTV (FreeBSD X TV)
Bt848 with MPEG streaming (IYUV & PPM)
BTTV Linux
Video-grabber support for various cards (bt848 chip-based)
SunSite: Linux Video Apps
Misc video tools (mostly outdated)

Viewers

 
Xine
Video player: mpeg, avi, and other formats
XMMS
Actually a mp3 player but with a plugin also displaying MPEG and AVI videos (FreeBSD-users: check /usr/ports/graphics/xmms-*)
XANIM
Good video-view for X11, supports many formats

Right now (March 2002) there are only semi-professional video-recording or video-editing software available for UNIX (Linux, FreeBSD). Especially Brooktree (Bt848/878) based cards are unstable and unreliable (independent of OS and mainboards). Motion JPEG (Zoran) based video-capture cards seem more stable.

Theory

 
Lurker's Guide To Video
Lot of infos on video
The Pixel Rosetta Stone: Packings and Colorspaces
Very good overview of pixel packaging
Video I/O on Linux: Lessons Learned from SGI
Background info

How To Video Record

 
Linux Box as Digital VCR: A success Story
Useful hints

Video Lab
3. AVI

AVI support under UNIX is quite rare, but here some references:
Linux AVI FileLibrary
AVI Library for Linux, supported formats: IndeoV3.2,4.1, MPEG-4v1,2, DivX, Cinepak Video, ATI VCR-2, I263, MJPEG, MS-ADPCM, PCM, AC3, IMA ADPCM, MPEG Layer-1,2,3, MSN Audio, GSM 6.1 Audio
JPEG to AVI
Works with XANIM, but not on WIN95
PPM to AVI
No sound support, but works on WIN95
AVI FAQ
Very good resource, keep checking it
FourCC (AVI)
Overview of all the codecs
OpenDML AVI Format
PDF: MJPEG extension defined for AVI

FreeBSD

 Install /usr/ports/graphics/avifile which makes also aviplay which plays the famous DiVX;-) files too.

Video Lab
4. MPEG & MJPEG

MPEG (Moving Picture Experts Group) and MJPEG (Motion JPEG) are not the same, even the sound alike.

MPEG is a standard of how to store frames, with predictive frames and vectors from which later frames can be calculated, and the whole things gets quite complicate, you find the detailed infos at MPEG.Org. In general there are following standards:

MPEG-11.5Mbit/s
MPEG-21.5Mbit/s - 200Mbit/s
MPEG-410Kbit/s - 100Kbit/s

It has to be noted, that the actual frame data compression can be in different format, MPEG just defines the way the data is stored. Often also the YUV data compression is displayed by three numbers

  • 4:4:4 (4Y,4U,4V) for each pixels Y,U,V is stored
  • 4:2:2 (4Y,2U,2V) for each pixels Y, but U V only for each second pixel
  • 4:2:0 (4Y,U,V) for each pixel Y, but U or V (alternate) for each second pixel
  • 4:1:1 (4Y,U,V) for each pixel Y, for each 4th pixel U & V

MJPEG compresses each frame using JPEG compression with a certain quality, the advantage is that MJPEG allows frame exact cutting, whereas MPEG cutting require overhead to cut frame exact.

MPEG & MJPEG Resources for UNIX:
FXTV (FreeBSD X TV)
Bt848 with MPEG streaming (IYUV & PPM)
Linux Motion Video
Experimental MJPEG package
MPEG.Org
The best resource center with players
FFMpeg - Multi codec streaming
MPEG, ASF, AVI, WAV, SWF, Realmedia/Realaudio, PGM, PPM, JPEG, AC3, Raw MJPEG, MPEG video

One thing has to be noted, if you record MJPEG you lose data as it's not true RGB 24Bit colors, but JPEG compression used for every frame.

Mark Podlipec (XAnim) different MJPEG implementations: Quicktime's MJPEG-A(MJPA) and MJPEG-B(MJPB) formats are different than AVI's "MJPG" format. Although MJPA and MJPG are similiar. Possibly different field orders in some instances. Quicktime and AVI's JPEG codec are interchangable(essentially just JFIF).

Video Lab
5. Web Video (Streaming)

Some people believe MJPEG for the web, it has some advantages, but unless there is more software & tools I doubt its success for the web-use. Always keep an eye on Progressive Networks (Real.Com) has done and still does a good job with highly compressed audio & video for 8kb/s upto 1Mb/s rate.

The final video you may like to share on the web, then several approaches are possible (ordered by our own experience):

  1. RealVideo: Real.Com: best compression from 8kb/s upto 1Mb/s, one file several transfer rates supported (5.0 or later). Video conversion-tool support on UNIX (Linux, IRIX) available by February 1999 finally.
  2. Shockwave: Flash: Flash Plugin (Linux), authoring tools only for Win/MAC (not Linux yet).
  3. MPEG: MPEG.Org: good codec, but not very known, good support of creation tools for UNIX-based systems, also MPEG players available.
  4. Animated GIF: GIFMerge: animated GIFs, rather cheap approach, but for blinking light it's sufficient, good for complex script-based animations.
  5. Animated GIF: GIMP: supports animated GIFs using layers, best approach for complex but hand-made animations.
  6. Java Applet: Java: using a java-applet to animate pictures or show a video, in short: instable, immense memory overhead, slow.

As soon there are hardware & software we at The Labs will provide a video toolbox called Raw Video Studio, like Raw Sound Studio has been for audio.

FFMpeg - Multi codec streaming
MPEG, ASF, AVI, WAV, SWF, Realmedia/Realaudio, PGM, PPM, JPEG, AC3, Raw MJPEG, MPEG video
Xiphophorus
multimedia open-source effort
StreamingServer.Org
Open-source streaming server
Linux QuickTime Player
Very promising

Video Lab
6. DVD

DVD are encrypted and so far no sources are available to crack them. It has to be mentioned that on Win95/98 are tools available to read out DVD's and write them back as MPEG-4.
linux-dvd/
Linux DVD
DeCSS.Com
Decrypting DVDs
DVD Lab
Our own section

Video Lab
7. Other Platforms

AVI FAQ
Very good resource, keep checking it
FourCC (AVI)
Overview of all the codecs
QuickTime File-Format
Apple's quicktime, no UNIX support (no sources available, only API revealed)

                                                                                                                                   

Sound Lab HomepageSitemap

Hipocrisy of the finest: "I agree that no single company can create all the hardware and software. Openness is central because it's the foundation of choice."
-- Steve Balmer (Microsoft) blaming Apple regarding iPhone, February 18, 2009

Last update 2002/02/28

All Rights Reserved - (C) 1997 - 2009 by The Labs.Com

Top of Page

The Labs.Com