# Avidemux

Avidemux is a free and open-source software application for non-linear video editing and transcoding multimedia files. The developers intend it as "a simple tool for simple video processing tasks" and to allow users "to do elementary things in a very straightforward way". 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 original GTK port has not been maintained and is now discontinued.
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 (called "Filters" by Avidemux) 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 (an action known as multiplexing or "muxing") or extract audio streams from video files (an action known as "demuxing").
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 (.SUB), SubStation Alpha (.SSA), Advanced SubStation Alpha (.ASS) and SubRip (.SRT).

### 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 various audio and video formats, such as MPEG-4 ASP.
The primary (though not the only) Avidemux programmer uses the nickname 'Mean' on the Avidemux forum.

### Multithreading

Multithreading has been implemented in the following areas of Avidemux (some partially through libavcodec):
* Encoding
** MPEG-1 and MPEG-2 (using libavcodec)
** MPEG-4 Part 2 SP/ASP (using libavcodec or Xvid)
*** Earlier versions of Xvid are not compatible with this feature.
** H.264/MPEG-4 Part 10 AVC (using x264)
** H.265/HEVC (using x265)
* Decoding
** MPEG-1 and MPEG-2 (using libavcodec)
** MPEG-4 Part 2 SP/ASP (using libavcodec)

### Supported formats

Avidemux supports following file formats:
Multimedia container formats :
| Name | File extension | As input | As output |
| Audio Video Interleave | .AVI | Yes | Yes |
| Advanced Systems Format | .ASF, .WMV and .WMA | Yes | No |
| Flash Video | .FLV | Yes | Yes |
| Matroska | .MKV | Yes | Yes |
| MPEG elementary stream | — | Yes | No |
| MPEG program stream | .MPG and .MPEG | Yes | Yes |
| MPEG transport stream | .TS | Yes | Yes |
| MPEG-4 Part 14 | .MP4 | Yes | Yes |
| NuppelVideo | .NUV | Yes | No |
| OGM | .OGM | Yes | Yes |
| QuickTime | .MOV | Yes | No |
| 3GP | .3GP | Yes | No |
| DVD-Video | .VOB | Yes | Yes |
| WebM | .WebM | Yes | Yes |
Video formats :
| Name | As input | As output |
| AV1 | Yes | No |
| Cinepak | Yes | No |
| DV | Yes | Yes |
| FFV1 | Yes | Yes |
| H.263 | Yes | Yes |
| H.264/MPEG-4 Part 10 AVC | Yes | Yes |
| H.265/HEVC | Yes | Yes |
| HuffYUV | Yes | Yes |
| MPEG-1 | Yes | Yes |
| MPEG-2 | Yes | Yes |
| MPEG-4 Part 2 | Yes | Yes |
| Motion JPEG | Yes | Yes |
| MSMPEG-4 v2 | Yes | No |
| Raw video – RGB | Yes | No |
| Raw video – YV12 | Yes | Yes |
| Snow | No | Yes |
| Sorenson Video 3 (SVQ3) | Yes | Yes |
| VC-1 | Yes | No |
| VP3 | Yes | No |
| VP6 | Yes | No |
| VP8 | Yes | No |
| VP9 | Yes | Yes |
| Windows Media Video 8 | Yes | No |
| Y800 | Yes | Yes |
Audio formats :
| Name | As input | As output |
| Adaptive Multi-Rate – Narrow Band (AMR-NB) | Yes | No |
| Advanced Audio Coding (AAC) | Yes | Yes |
| AC-3 | Yes | Yes |
| DTS | Yes | No |
| Linear pulse-code modulation (LPCM) | No | Yes |
| MP2 | Yes | Yes |
| MP3 | Yes | Yes |
| Opus | Yes | Yes |
| Pulse-code modulation (PCM) | No | Yes |
| Vorbis | Yes | Yes |
| TrueHD | Yes | No |
Image formats :
| Name | File extension | As input | As output |
| Windows bitmap | .BMP | Yes | Yes Single frame only |
| JPEG | .JPG and .JPEG | Yes | Yes |
| PNG | .PNG | Yes | Yes Single frame only |