Avidemux

Avidemux is a free open-source program designed for multi-purpose video editing and processing. Downloads, documentation, and other features can be found at avidemux.org. It is written in C/C++, using the GTK+ graphics toolkit, and therefore is truly a platform independent, universal video processing program. It is available for almost all distributions of Linux that are capable of compiling C/C++, GTK+ and the SpiderMonkey ECMAScript scripting engine. The program can be run in 64bit operating systems that are non-Windows and non-Macintosh based.

Comparison
Some people think of Avidemux as VirtualDub (or VirtualDubMod) for Linux, and it is generally reputed by many Linux and Windows users alike to be the closest thing available. While it cannot do everything that VirtualDub can, Avidemux can do many things that its Windows counterpart cannot. In the recent version, Avidemux boasts such features as support for OGM and MP4 files natively, direct read input for various types of MPEGs, and many other video formats and containers. It offers MPEG editing and requantization. It also has built-in subtitle handling. Avidemux primarily uses its GUI to perform tasks. This means that it is capable of doing many things that non-GUI users would otherwise have to do using command line tools such as MEncoder or Transcode. In the very latest SVN developer's versions, multi-threading has been implemented for use some of the video codec encoding.

Features
The straightforward user interface is designed for convenience and speed with simple operations. Features include WYSIWYG cutting, appending, filters and re-encoding into various formats. Some of the filters were ported from MPlayer and Avisynth. Avidemux can also mux and demux audio streams into and out of video files, either through re-encoding or using a direct copy mode.

An integral and important part of the design of the program is its project system, which uses the SpiderMonkey ECMAScript scripting engine. Whole projects with all options, configurations, selections, and preferences can be saved into a project file. Like VirtualDub's vcf scripting capabilities, Avidemux has advanced scripting available for it both in its GUI and command line modes. It also supports a non-project system just like VirtualDub, where you can simply create all your configurations and save the video directly without making a project file.

A project queue system has been recently added to the program and is currently being expanded upon. Avidemux has built-in subtitle processing, both for Optical Character Recognition (OCR) to soft subtitle formats (sub and srt) and various hard subtitle VobSub capabilities. While it is primarily a GUI program, Avidemux can also be run from and through the command line (which can also be used for batch processing and debugging). The very latest feature additions include the mp4 container support and various degrees of multi-threading.

Multithreading
The most recent developers version of Avidemux, available in the SVN repositories, has begun implementing multithreading. Not all of Avidemux has been multithreaded yet, but more is under development. The feature is available for activation within the GUI, though the more style and view tweaking is scheduled before an official release. Multi-threading can be turned on or off depending on preference.

Multithreading has been implemented in the following areas of Avidemux (some partially through lavcodec):
 * Encoding
 * H.264 (using x264)
 * MPEG-1, MPEG-2 (using libavcodec)
 * MPEG-4 (SP/ASP, using libavcodec MPEG-4 or XviD)
 * XviD requires the latest version from the CVS
 * Decoding
 * MPEG-1, MPEG-2 (using libavcodec)
 * MPEG-4 (SP/ASP, using libavcodec)

Supported Input Formats
File formats:
 * AVI, OpenDML
 * MPEG
 * NuppelVideo
 * Images (BMP, JPEG, PNG)
 * OGM
 * QuickTime, MP4, 3GPP

Video codecs:
 * DV
 * FFV1
 * H.263
 * H.264
 * HuffYUV
 * MPEG-1, MPEG-2
 * MPEG-4 Simple Profile/Advanced Simple Profile (Supported FourCCs: DIVX, DX50, XVID, FMP4, M4S2)
 * MJPEG
 * MSMPEG-4 v. 2 (FourCC DIV3)
 * Raw RGB
 * SVQ3
 * VP3
 * WMV 2

Audio codecs:
 * AAC
 * AC3
 * AMR narrow band
 * LPCM WAV
 * MP3, MP2
 * Ogg Vorbis
 * PCM WAV
 * WMA

Supported Output Formats
File formats:
 * AVI (single or dual audio tracks)
 * Images (BMP, JPEG)
 * MPEG (VCD/SVCD/DVD compatible & separate)
 * OGM
 * MP4

Video codecs:
 * FFV1
 * H.263
 * H.264 (using x264)
 * HuffYUV
 * MPEG-1, MPEG-2
 * MPEG-4 (SP/Advanced Simple Profile, using FFmpeg MPEG-4 or XviD)
 * MJPEG

Audio codecs:
 * AAC
 * AC3
 * LPCM WAV
 * MP3, MP2
 * Ogg Vorbis
 * PCM WAV