Avidemux


Avidemux is a free and open-source transcoding and video editing software, designed for easy-to-use and simple video editing and video processing.
It is written in C++ and uses Qt for its graphical user interface, and FFmpeg for its multimedia functions. Starting with version 2.4, Avidemux also offers a command-line interface, and since version 2.6, the GTK port is unmaintained and discontinued which was originally used.
Avidemux is developed for Linux, macOS, and Windows. Unofficial builds are also available for FreeBSD, NetBSD, and OpenBSD.

Features

Avidemux is capable of non-linear video editing, applying visual effects to video, and transcoding video into various formats. Some of the filters were ported from MPlayer and Avisynth. Avidemux can also insert audio streams into a video file or extract audio streams from video files.
An integral and important part of the design of the program is its project system, which uses the SpiderMonkey JavaScript 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 users can simply create all of their configurations and save the video directly without making a project file. A project queue system is also available.
Avidemux has built-in subtitle processing, both for optical character recognition of DVD subtitles and for rendering hard subtitles. Avidemux supports various subtitle formats, including MicroDVD, SubStation Alpha, Advanced SubStation Alpha and SubRip.

Components

Avidemux was written from scratch, but additional code from FFmpeg, MPlayer, Transcode and Avisynth has been used on occasion as well. Nonetheless it is a completely standalone program that does not require any other programs to read, decode, or encode other than itself. The built-in libavcodec library from the FFmpeg project is used for decoding and encoding of various audio and video formats such as MPEG-4 ASP. The primary Avidemux programmer uses the nickname 'Mean' on the Avidemux forum.

Multithreading

Multithreading has been implemented in the following areas of Avidemux :
Avidemux supports following file formats:
NameFile extensionAs inputAs output
Audio Video Interleave.AVI
Advanced Systems Format.ASF,.WMV and.WMA
Flash Video.FLV
Matroska.MKV
MPEG elementary stream
MPEG program stream.MPG and.MPEG
MPEG transport stream.TS
MPEG-4 Part 14.MP4
NuppelVideo.NUV
OGM.OGM
QuickTime.MOV
3GP.3GP
DVD-Video.VOB
WebM.WebM

NameAs inputAs output
Adaptive Multi-Rate – Narrow Band
Advanced Audio Coding
AC-3
DTS
Linear pulse code modulation
MP2
MP3
Pulse-code modulation
Vorbis