Mpv Ffmpeg

Posted onby

mpv is a media player based on MPlayer and the now unmaintained mplayer2. It supports a wide variety of video file formats, audio and video codecs, and subtitle types. A detailed (although admittedly incomplete) list of differences between mpv and the aforementioned players can be found here.


Afterwards, I only built the following from scratch: libvpx vo-aacenc-0.1.2 x264 yasm-1.2.0 ffmpeg. Then this command encoded with no problems (the audio was already in AAC, so I didn't recode it): ffmpeg -i -c:v libx264 -preset slow -crf 22 -c:a copy output.mp4. Mpv is a free (as in freedom) media player for the command line. It supports a wide variety of media file formats, audio and video codecs, and subtitle types. Releases can be found on the release list.

Install the mpv package or mpv-gitAUR for the development version.

This answer was written in 2009. Since 2013 a video format much better than H.264 is widely available, namely H.265 (better in that it compresses more for the same quality, or gives higher quality for the same size). Axiom An FFmpeg Interface for Windows.

Front ends

See List of applications/Multimedia#mpv-based.


mpv comes with good all-around defaults that should work well on computers with weaker/older video cards. However, if you have a computer with a more modern video card then mpv allows you to do a great deal of configuration to achieve better video quality (limited only by the power of your video card). To do this one only needs to create a few configuration files (they do not exist by default).

Note: Configuration files are read system-wide from /etc/mpv and per-user from ~/.config/mpv (unless the environment variableXDG_CONFIG_HOME is set), where per-user settings override system-wide settings, all of which are overridden by the command line. User specific configuration is suggested since it may require some trial and error.

To help you get started mpv provides sample configuration files with default settings. Copy them to use as a starting point:

mpv.conf contains the majority of mpv's settings, input.conf contains key bindings. Read through both of them to get an idea of how they work and what options are available.

General settings

Add the following settings to ~/.config/mpv/mpv.conf.

Subtitle configurations

Enable fuzzy searching:

Bold the subtitles to increase readability:

High quality configurations

This loads high quality OpenGL options when using vo=gpu as video output (default). Most users can run these without any problems, but they are not enabled by default to avoid causing problems for the few users who cannot run them:

The gpu-hq profile defaults to the spline36 scaling filter for mid quality and speed. For the best quality video output, the manual states that if your hardware can run it, ewa_lanczossharp is probably what you should use.

These last three options are a little more complicated. The first option makes it so that if audio and video go out of sync then instead of dropping video frames it will resample the audio (a slight change in audio pitch is often less noticeable than dropped frames). The mpv wiki has an in depth article on it titled Display Synchronization. The remaining two essentially make motion appear smoother on your display by changing the way that frames are shown so that the source framerate jives better with your display's refresh rate (not to be confused with SVP's technique which actually converts video to 60fps). The mpv wiki has an in depth article on it titled Interpolation though it is also commonly known as smoothmotion.

Note: If NVIDIA Optimus is being used, the line video-sync=display-resample may cause video to be sped up.

Beyond this there is still a lot you can do but things become more complicated, require more powerful video cards, and are in constant development. As a brief overview, it is possible to load special shaders that perform exotic scaling and sharpening techniques including some that actually use deep neural networks trained on images (for both real world and animated content). To learn more about this take a look around the mpv wiki, particularly the user shader's section.

There are also plenty of other options you may find desirable as well. It is worthwhile taking a look at mpv(1). It is also helpful to run mpv from the command line to check for error messages about the config.

Ffmpeg c# example

Custom profiles

In mpv.conf it is possible to create profiles which are essentially just 'groups of options' with which you can:

  • Quickly switch between different configurations without having to rewrite the file.
  • Create special profiles for special content.
  • nest profiles so that you can make more complicated profiles out of simpler ones.

Creating a profile is easy. The area at the top of mpv.conf is called the top level, any options you write there will kick into effect once mpv is started. However, once you define a profile by writing its name in brackets then every option you write below it (until you define a new profile) is considered part of that profile. Here is an example mpv.conf:

There are only two lines within the top level area and there are two separate profiles defined below it. When mpv starts it sees the first line, loads the options in myprofile2 (which means it loads the options in gpu-hq and log-file=~~/log) finally it loads ontop=yes and finishes starting up. Note, myprofile1 is never loaded because it is never called in the top level area.

Alternatively one could call mpv from the command line with:

and it would ignore all options except the ones for myprofile1.

Key bindings

Key bindings are fairly straightforward given the examples in /usr/share/doc/mpv/input.conf and the relevant section in the manual.

Add the following examples to ~/.config/mpv/input.conf:

For an attempt to reproduce MPC-HC key bindings in mpv, see [1].

Additional configuration files

In addition there are a few more configuration files and directories that can be created, among which:

  • ~/.config/mpv/script-opts/osc.conf manages the On Screen Controller.
  • ~/.config/mpv/scripts/script-name.lua for Lua scripts. See [2] for an example.

See for more.


mpv has a large variety of scripts that extend the functionality of the player. To this end, it has internal bindings for both Lua and JavaScript (added recently).

Scripts are typically installed by putting them in the ~/.config/mpv/scripts/ directory (you may have to create it first). After that they will be automatically loaded when mpv starts (this behavior can be altered with other mpv options). Some scripts come with their own installation and configuration instructions, so make sure to have a look. In addition some scripts are old, broken, and unmaintained.


JavaScript (ES5 via MuJS) has been supported as an mpv scripting language since 2014. Currently only a few scripts are available, but documentation exists for anyone interested in making their own.

To get started, drop a script with a .js extension in the mpv scripts directory, e.g.:

For more details, e.g. on using require to load CommonJS modules, see the documentation.

JavaScript support is available in the mpv package, as well as some AUR packages, e.g. mpv-fullAUR and mpv-full-gitAUR.


There are a lot of interesting Lua scripts for mpv. If you would like to make your own, the relevant documentation may be found here.


mpv-ytdlautoformat is a Lua script to auto change ytdl-format for Youtube and Twitch or the domains you desire, to 480p or the quality you desire.


mpv-stats (or simply stats) is a Lua script that outputs a lot of live statistics showing how well mpv is currently doing. It is very useful for making sure that your hardware can keep up with your configuration and for comparing different configurations. Since version v0.28.0, the script is built into mpv and can be toggled on or off with the i or I keys (by default).


mpv-webm (or simply webm) is a very easy to use Lua script that allows one to create WebM files while watching videos. It includes several features and does not have any extra dependencies (relies entirely on mpv).



The C plugin mpv-mpris allows other applications to integrate with mpv via the MPRIS protocol. For example, with mpv-mpris installed, kdeconnect can automatically pause video playback in mpv when a phone call arrives. Another example is buttons (playpause etc) on bluetooth audio-devices.

Install mpv-mprisAUR and follow the post-installation instructions displayed by Pacman.


Vapoursynth is an alternative to AviSynth that can be used on Linux and allows for Video manipulation via python scripts. Vapoursynths python scripts can be used as video filters for mpv.

To use vapoursynth filters you have to install the vapoursynth package (or vapoursynth-gitAUR) and compile mpv with the --enable-vapoursynth build flag.

This is easier to do by first installing Vapoursynth and then installing (or re-installing if it is already installed) mpv-gitAUR. The configure script for mpv-gitAUR will auto-detect Vapoursynth (as long as it has already been installed) and it will automatically compile mpv with support for Vapoursynth without having to manually change any configure options or anything (this makes it very easy to update mpv as well).

SVP 4 Linux (SmoothVideoProject)

SmoothVideoProject SVP is a program that is primarily known for converting video to 60fps. It is free [as in beer] and full featured for 64bit Linux (costs money for Windows and OS X and is incompatible with 32bit Linux).

It has three main features and each one can be disabled/enabled as one chooses (you are not forced to use motion interpolation).

  1. Motion interpolation (youtube video) - An algorithm that converts video to 60fps. This creates the somewhat controversial 'soap opera effect' that some people love and others hate. Unfortunately the algorithm is not perfect and it also introduces more than its share of weird artifacts. The algorithm can be tuned (via a slider) for either performance or quality. It also has some artifact reduction settings that interpolate actual frames with the generated frames reducing the noticeability of the artifacts. The framerate detection can be set to automatic or manual (manual seems to resolve performance issues for some users).
  2. Black bar lighting (youtube video) - If the image has an aspect ratio that produces black bars on your display then SVP will illuminate the black bars with 'lights' generated by the content on the screen. It has some amount of customization but the defaults are pretty close to optimal.
  3. LED ambient lighting control (youtube video) - Has the ability to control LED ambient lighting attached to your television.

Once you have mpv compiled with Vapoursynth support it is fairly easy to get SVP working with mpv. Simply install svpAUR, open the SVP program to let it assess your system performance (you may want to close other programs first so that it gets an accurate reading), and finally add the following mpv profile to your mpv.conf[3]:

Then, in order to use SVP you must have the SVP program running in the background before opening the file using mpv with that profile. Either do:

or set profile=svp in the top-level portion of the mpvconfiguration.

If you want to use hardware decoding then you must use a copy-back decoder since normal decoders are not compatible with Vapoursynth (choose a hwdec option that ends in -copy). For instance:

Either way, hardware decoding is discouraged by mpv developers and is not likely to make a significant difference in performance.

Tips and Tricks

Hardware video acceleration

See Hardware video acceleration.

Hardware accelerated video decoding is available via --hwdec=API option. For list of all supported APIs and other required options see relevant manual section.

For Wayland use --gpu-context=wayland option. For list of other available GPU APIs see manual.

Save position on quit

By default you can save the position and quit by pressing Shift+q. The shortcut can be changed by setting quit_watch_later in the key bindings configuration file.

To automatically save the current playback position on quit, start mpv with --save-position-on-quit, or add save-position-on-quit to the configuration file.

Volume is too low

Set volume-max=value in your configuration file to a reasonable amount, such as volume-max=150, which then allows you to increase your volume up to 150%, which is more than twice as loud. Increasing your volume too high will result in clipping artefacts. Additionally (or alternatively), you can utilize dynamic range compression with af=acompressor.

Volume normalization

This article or section needs expansion.

Reason: Add little more details about the available filters, see [4] for a comparison of loudnorm and dynaudnorm. (Discuss in Talk:Mpv#)

Different sources may have different or inconsistent loudness, so mpv users may need to configure automatic volume normalization. For example:

This binds the key n to cycle the audio filter settings (af) through the specified values:

  • loudnorm=I=-30: loudnorm setting with I=-30, soft volume, might be suitable for background music
  • loudnorm=I=-15: louder volume, might be good for the video currently in view
  • anull: reset audio filter to null, i.e., disable the audio filter
Note: Binding a key does not change the default audio filter. To change the default, add e.g. af=loudnorm=I=-30 to the main configuration file.

Audio filtering in mpv is provided by the FFmpeg backend. See Wikipedia:EBU R 128 and ffmpeg loudnorm filter for details.

See also upstream issues [5] and [6] which mention different options.

Play a DVD

mpv does not support DVD menus. To start the main stream with the longest title of a video DVD, use the command:

An optional title specifier is a number (starting at 0) which selects between separate video streams on the DVD:

DVDs which have been copied on to a local file system (by e.g. the dvdbackup tool) are accommodated by specifying the path to the local copy: --dvd-device=PATH.

See the following desktop file example for playing DVDs from a local file system:

By replacing the Exec line with

the mpv player will queue DVD title 0 to 9 in the playlist, which allows the user to play the titles consecutively or jump forward and backward in the DVD titles with the mpv GUI.

Install libdvdcss, to fix the error:

Quickly cycle between aspect ratios

You can cycle between aspect ratios using Shift+a.

Ignoring aspect ratio

You can ignore aspect ratio using --keepaspect=no. To make option permanent, add line keepaspect=no to configuration file.

Draw to the root window

Run mpv with --wid=0. mpv will draw to the window with a window ID of 0.

Always show application window

To show application window even for audio files when launching mpv from command line use --force-window option. To make option permament, add line force-window=yes to the configuration file.

Disable video output

To disable video output when launching from command line use --vid=no option, or its alias, --no-video.

Restoring old OSC

Since version 0.21.0, mpv has replaced the on-screen controls by a bottombar. In case you want on-screen controls back, you can edit the mpv configuration as described here.

Use as a browser plugin

With the help of mozpluggerAUR, mpv can be used in a supported browser to play video. See Browser plugins#MozPlugger for configuration details. This coupled with a user script such as ViewTube, allows you to use mpv in place of a site's integrated video player.

It may be needed to specify a valid user agent for HTTP streaming, e.g. user-agent='Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0'.

Browser plugins#Multimedia playback page shows other easy ways to watch videos.

Improving mpv as a music player with Lua scripts

The development of mpv's Lua scripts are documented in DOCS/man/lua.rstand examples are shown in TOOLS/luaof the mpv repository.This blog post introduces themusic.lua script,which shows how Lua scripts can be used to improve mpv as a music player. streaming over mpv

If youtube-dl is installed, mpv can directly open a Twitch livestream.

Alternatively, see Streamlink#Twitch.

Another alternative based on Livestreamer is this Lua script:

youtube-dl and choosing formats

The default --ytdl-format is bestvideo+bestaudio/best. For youtube videos that have 4K resolutions available, this may mean that your device will struggle to decode 4K VP9 encoded video in software even if the attached monitor is much lower resolution.

Setting the right youtube-dl format selectors can fix this easily though. In the following configuration example, only videos with a vertical resolution of 1080 pixels or less will be considered.

If you wish to avoid a certain codec altogether because you cannot hardware-decode it, you can add this to the format selector. For example, we can additionally choose to ignore VP9 as follows:

If you prefer best quality open codecs (VP9 and Opus), use:

youtube-dl audio with search

To find and stream audio from your terminal emulator with yta search terms put the following function in your .bashrc:

Creating a single screenshot

An example of creating a single screenshot, by using a start time (HH:MM:SS):

Screenshots will be saved in /path/to/screenshot.png.


General debugging

If you are having trouble with mpv's playback (or if it is flat out failing to run) then the first three things you should do are:

  1. Run mpv from the command line (the -v flag increases verbosity). If you are lucky there will be an error message there telling you what is wrong.
    $ mpv -v video.mkv
  2. Have mpv output a log file. The log file might be difficult to sift through but if something is broken you might see it there.
    $ mpv -v --log-file=./log video.mkv
  3. Run mpv without a configuration. If this runs well then the problem is somewhere in your configuration (perhaps your hardware cannot keep up with your settings).
    $ mpv --no-config video.mkv

If mpv runs but it just does not run well then a fourth thing that might be worth taking a look at is installing the mpv-stats script and using it to see exactly how it is performing.

Fix jerky playback and tearing

mpv defaults to using the OpenGL video output device setting on hardware that supports it. In cases such as trying to play video back on a 4K display using a Intel HD4XXX series card or similar, you will find video playback unreliable, jerky to the point of stopping entirely at times and with major tearing when using any OpenGL output setting. If you experience any of these issues, using the XV (Xorg only) video output device may help:

Note: This is the most compatible VO on X, but may be low-quality, and has issues with OSD and subtitle display.

It is possible to increase playback performance even more (especially on lower hardware), but this decreases the video quality dramatically in most cases.

The following options may be considered to increase the video playback performance:

Problems with window compositors

Window compositors such as KWin or Mutter can cause trouble for playback smoothness. In such cases, it may help to set x11-bypass-compositor=yes to make mpv also disable window compositing when playing in windowed mode (if supported by the compositor).

With KWin compositing and hardware decoding, you may also want to set x11-bypass-compositor=no to keep compositing enabled in fullscreen, since reanabling compositing after leaving fullscreen may introduce stutter for a period of time.

No volume bar, cannot change volume

Spin the mouse wheel over the volume icon.

GNOME Blank screen (Wayland)

mpv may not suspend GNOME's Power Saving Settings if using Wayland resulting in screen saver turning off the monitor during video playback. A workaround is to add gnome-session-inhibit to the beginning of the Exec= line in mpv.desktop.

Use mpv with a compositor

If you are using a compositor (e.g. in KDE Plasma 5) and find that composition is disabled (e.g. in Plasma this would make you unable to present windows or see window thumbnails in the default app switcher) when mpv is playing a video, try x11-bypass-compositor=no

Cursor theme not respected under GNOME Wayland

On Wayland, clients can display different cursor themes because there is not a unique configuration file for it. For the cursor theme, Qt apps usually accept the value that is set for the environment variableXCURSOR_THEME. However, in the specific case of mpv, the cursor theme that is displayed needs to be the one set in ~/.icons/default/index.theme. Since GNOME does not update this file when changing the cursor theme with GNOME Tweaks, you will have to do it manually. See Cursor themes#XDG specification for more information.

Retrieved from ''

A complete, cross-platform solution to record, convert and stream audio and video.

Converting video and audio has never been so easy.

April 8th, 2021, FFmpeg 4.4 'Rao'

FFmpeg 4.4 'Rao', a new major release, is now available! Some of the highlights:

  • AudioToolbox output device
  • MacCaption demuxer
  • PGX decoder
  • chromanr video filter
  • VDPAU accelerated HEVC 10/12bit decoding
  • ADPCM IMA Ubisoft APM encoder
  • Rayman 2 APM muxer
  • AV1 encoding support SVT-AV1
  • Cineform HD encoder
  • ADPCM Argonaut Games encoder
  • Argonaut Games ASF muxer
  • AV1 Low overhead bitstream format demuxer
  • RPZA video encoder
  • ADPCM IMA MOFLEX decoder
  • MobiClip FastAudio decoder
  • MobiClip video decoder
  • MOFLEX demuxer
  • MODS demuxer
  • PhotoCD decoder
  • MCA demuxer
  • AV1 decoder (Hardware acceleration used only)
  • SVS demuxer
  • Argonaut Games BRP demuxer
  • DAT demuxer
  • aax demuxer
  • IPU decoder, parser and demuxer
  • Intel QSV-accelerated AV1 decoding
  • Argonaut Games Video decoder
  • libwavpack encoder removed
  • ACE demuxer
  • AVS3 demuxer
  • AVS3 video decoder via libuavs3d
  • Cintel RAW decoder
  • VDPAU accelerated VP9 10/12bit decoding
  • afreqshift and aphaseshift filters
  • High Voltage Software ADPCM encoder
  • LEGO Racers ALP (.tun & .pcm) muxer
  • AV1 VAAPI decoder
  • adenorm filter
  • ADPCM IMA AMV encoder
  • AMV muxer
  • NVDEC AV1 hwaccel
  • DXVA2/D3D11VA hardware accelerated AV1 decoding
  • speechnorm filter
  • SpeedHQ encoder
  • asupercut filter
  • asubcut filter
  • Microsoft Paint (MSP) version 2 decoder
  • Microsoft Paint (MSP) demuxer
  • AV1 monochrome encoding support via libaom >= 2.0.1
  • asuperpass and asuperstop filter
  • shufflepixels filter
  • tmidequalizer filter
  • estdif filter
  • epx filter
  • Dolby E parser
  • shear filter
  • kirsch filter
  • colortemperature filter
  • colorcontrast filter
  • PFM encoder
  • colorcorrect filter
  • binka demuxer
  • XBM parser
  • xbm_pipe demuxer
  • colorize filter
  • CRI parser
  • aexciter audio filter
  • exposure video filter
  • monochrome video filter
  • setts bitstream filter
  • vif video filter
  • OpenEXR image encoder
  • Simbiosis IMX decoder
  • Simbiosis IMX demuxer
  • Digital Pictures SGA demuxer and decoders
  • TTML subtitle encoder and muxer
  • identity video filter
  • msad video filter
  • gophers protocol
  • RIST protocol via librist

We strongly recommend users, distributors, and system integrators to upgrade unless they use current git master.

June 15th, 2020, FFmpeg 4.3 '4:3'

FFmpeg 4.3 '4:3', a new major release, is now available! Some of the highlights:

  • v360 filter
  • Intel QSV-accelerated MJPEG decoding
  • Intel QSV-accelerated VP9 decoding
  • Support for TrueHD in mp4
  • Support AMD AMF encoder on Linux (via Vulkan)
  • IMM5 video decoder
  • ZeroMQ protocol
  • support Sipro ACELP.KELVIN decoding
  • streamhash muxer
  • sierpinski video source
  • scroll video filter
  • photosensitivity filter
  • anlms filter
  • arnndn filter
  • bilateral filter
  • maskedmin and maskedmax filters
  • VDPAU VP9 hwaccel
  • median filter
  • QSV-accelerated VP9 encoding
  • AV1 encoding support via librav1e
  • AV1 frame merge bitstream filter
  • AV1 Annex B demuxer
  • axcorrelate filter
  • mvdv decoder
  • mvha decoder
  • MPEG-H 3D Audio support in mp4
  • thistogram filter
  • freezeframes filter
  • Argonaut Games ADPCM decoder
  • Argonaut Games ASF demuxer
  • xfade video filter
  • xfade_opencl filter
  • afirsrc audio filter source
  • pad_opencl filter
  • Simon & Schuster Interactive ADPCM decoder
  • Real War KVAG demuxer
  • CDToons video decoder
  • siren audio decoder
  • Rayman 2 ADPCM decoder
  • Rayman 2 APM demuxer
  • cas video filter
  • High Voltage Software ADPCM decoder
  • LEGO Racers ALP (.tun & .pcm) demuxer
  • AMQP 0-9-1 protocol (RabbitMQ)
  • Vulkan support
  • avgblur_vulkan, overlay_vulkan, scale_vulkan and chromaber_vulkan filters
  • ADPCM IMA MTF decoder
  • FWSE demuxer
  • DERF DPCM decoder
  • DERF demuxer
  • CRI HCA decoder
  • CRI HCA demuxer
  • overlay_cuda filter
  • switch from AvxSynth to AviSynth+ on Linux
  • mv30 decoder
  • Expanded styling support for 3GPP Timed Text Subtitles (movtext)
  • WebP parser
  • tmedian filter
  • maskedthreshold filter
  • Support for muxing pcm and pgs in m2ts
  • Cunning Developments ADPCM decoder
  • asubboost filter
  • Pro Pinball Series Soundbank demuxer
  • pcm_rechunk bitstream filter
  • scdet filter
  • NotchLC decoder
  • gradients source video filter
  • MediaFoundation encoder wrapper
  • untile filter
  • Simon & Schuster Interactive ADPCM encoder
  • PFM decoder
  • dblur video filter
  • Real War KVAG muxer

We strongly recommend users, distributors, and system integrators to upgrade unless they use current git master.

October 5th, 2019, Bright Lights

FFmpeg has added a realtime bright flash removal filter to libavfilter.

Note that this filter is not FDA approved, nor are we medical professionals. Nor has this filter been tested with anyone who has photosensitive epilepsy. FFmpeg and its photosensitivity filter are not making any medical claims.

That said, this is a new video filter that may help photosensitive people watch tv, play video games or even be used with a VR headset to block out epiletic triggers such as filtered sunlight when they are outside. Or you could use it against those annoying white flashes on your tv screen. The filter fails on some input, such as the Incredibles 2 Screen Slaver scene. It is not perfect. If you have other clips that you want this filter to work better on, please report them to us on our trac.

See for yourself. Example was made with -vf photosensitivity=20:0.8

We are not professionals. Please use this in your medical studies to advance epilepsy research. If you decide to use this in a medical setting, or make a hardware hdmi input output realtime tv filter, or find another use for this, please let me know. This filter was a feature request of mine since 2013.

August 5th, 2019, FFmpeg 4.2 'Ada'

Mpv Ffmpeg

FFmpeg 4.2 'Ada', a new major release, is now available! Some of the highlights:

  • tpad filter
  • AV1 decoding support through libdav1d
  • dedot filter
  • chromashift and rgbashift filters
  • freezedetect filter
  • truehd_core bitstream filter
  • dhav demuxer
  • PCM-DVD encoder
  • GIF parser
  • vividas demuxer
  • hymt decoder
  • anlmdn filter
  • maskfun filter
  • hcom demuxer and decoder
  • ARBC decoder
  • libaribb24 based ARIB STD-B24 caption support (profiles A and C)
  • Support decoding of HEVC 4:4:4 content in nvdec and cuviddec
  • removed libndi-newtek
  • agm decoder
  • KUX demuxer
  • AV1 frame split bitstream filter
  • lscr decoder
  • lagfun filter
  • asoftclip filter
  • Support decoding of HEVC 4:4:4 content in vdpau
  • colorhold filter
  • xmedian filter
  • asr filter
  • showspatial multimedia filter
  • VP4 video decoder
  • IFV demuxer
  • derain filter
  • deesser filter
  • mov muxer writes tracks with unspecified language instead of English by default
  • added support for using clang to compile CUDA kernels

We strongly recommend users, distributors, and system integrators to upgrade unless they use current git master.

November 6th, 2018, FFmpeg 4.1 'al-Khwarizmi'

FFmpeg 4.1 'al-Khwarizmi', a new major release, is now available! Some of the highlights:

  • deblock filter
  • tmix filter
  • amplify filter
  • fftdnoiz filter
  • aderivative and aintegral audio filters
  • pal75bars and pal100bars video filter sources
  • mbedTLS based TLS support
  • adeclick and adeclip filters
  • libtensorflow backend for DNN based filters like srcnn
  • VC1 decoder is now bit-exact
  • ATRAC9 decoder
  • lensfun wrapper filter
  • colorconstancy filter
  • AVS2 video decoder via libdavs2
  • IMM4 video decoder
  • Brooktree ProSumer video decoder
  • MatchWare Screen Capture Codec decoder
  • WinCam Motion Video decoder
  • 1D LUT filter (lut1d)
  • RemotelyAnywhere Screen Capture decoder
  • cue and acue filters
  • Support for AV1 in MP4 and Matroska/WebM
  • transpose_npp filter
  • AVS2 video encoder via libxavs2
  • amultiply filter
  • Block-Matching 3d (bm3d) denoising filter
  • acrossover filter
  • ilbc decoder
  • audio denoiser as afftdn filter
  • AV1 parser
  • sinc audio filter source
  • chromahold filter
  • setparams filter
  • vibrance filter
  • S12M timecode decoding in h264
  • xstack filter
  • (a)graphmonitor filter
  • yadif_cuda filter

We strongly recommend users, distributors, and system integrators to upgrade unless they use current git master.

April 20th, 2018, FFmpeg 4.0 'Wu'

FFmpeg 4.0 'Wu', a new major release, is now available! Some of the highlights:

  • Bitstream filters for editing metadata in H.264, HEVC and MPEG-2 streams
  • Experimental MagicYUV encoder
  • TiVo ty/ty+ demuxer
  • Intel QSV-accelerated MJPEG encoding
  • native aptX and aptX HD encoder and decoder
  • NVIDIA NVDEC-accelerated H.264, HEVC, MJPEG, MPEG-1/2/4, VC1, VP8/9 hwaccel decoding
  • Intel QSV-accelerated overlay filter
  • mcompand audio filter
  • acontrast audio filter
  • OpenCL overlay filter
  • video mix filter
  • video normalize filter
  • audio lv2 wrapper filter
  • VAAPI MJPEG and VP8 decoding
  • AMD AMF H.264 and HEVC encoders
  • video fillborders filter
  • video setrange filter
  • support LibreSSL (via libtls)
  • Dropped support for building for Windows XP. The minimum supported Windows version is Windows Vista.
  • deconvolve video filter
  • entropy video filter
  • hilbert audio filter source
  • aiir audio filter
  • Removed the ffserver program
  • Removed the ffmenc and ffmdec muxer and demuxer
  • VideoToolbox HEVC encoder and hwaccel
  • VAAPI-accelerated ProcAmp (color balance), denoise and sharpness filters
  • Add android_camera indev
  • codec2 en/decoding via libcodec2
  • native SBC encoder and decoder
  • drmeter audio filter
  • hapqa_extract bitstream filter
  • filter_units bitstream filter
  • AV1 Support through libaom
  • E-AC-3 dependent frames support
  • bitstream filter for extracting E-AC-3 core
  • Haivision SRT protocol via libsrt
  • vfrdet filter

We strongly recommend users, distributors, and system integrators to upgrade unless they use current git master.

October 15th, 2017, FFmpeg 3.4 'Cantor'

FFmpeg 3.4 'Cantor', a new major release, is now available! Some of the highlights:

  • deflicker video filter
  • doubleweave video filter
  • lumakey video filter
  • pixscope video filter
  • oscilloscope video filter
  • update cuvid/nvenc headers to Video Codec SDK 8.0.14
  • afir audio filter
  • scale_cuda CUDA based video scale filter
  • librsvg support for svg rasterization
  • crossfeed audio filter
  • spec compliant VP9 muxing support in MP4
  • surround audio filter
  • sofalizer filter switched to libmysofa
  • Gremlin Digital Video demuxer and decoder
  • headphone audio filter
  • superequalizer audio filter
  • roberts video filter
  • additional frame format support for Interplay MVE movies
  • support for decoding through D3D11VA in ffmpeg
  • limiter video filter
  • libvmaf video filter
  • Dolby E decoder and SMPTE 337M demuxer
  • unpremultiply video filter
  • tlut2 video filter
  • floodfill video filter
  • pseudocolor video filter
  • raw G.726 muxer and demuxer, left- and right-justified
  • NewTek NDI input/output device
  • FITS demuxer and decoder
  • FITS muxer and encoder
  • despill video filter
  • haas audio filter
  • SUP/PGS subtitle muxer
  • convolve video filter
  • VP9 tile threading support
  • KMS screen grabber
  • CUDA thumbnail filter
  • V4L2 mem2mem HW assisted codecs
  • Rockchip MPP hardware decoding
  • vmafmotion video filter

We strongly recommend users, distributors, and system integrators to upgrade unless they use current git master.

April 13th, 2017, FFmpeg 3.3 'Hilbert'

FFmpeg 3.3 'Hilbert', a new major release, is now available! Some of the highlights:

  • Apple Pixlet decoder
  • NewTek SpeedHQ decoder
  • QDMC audio decoder
  • PSD (Photoshop Document) decoder
  • FM Screen Capture decoder
  • ScreenPressor decoder
  • XPM decoder
  • DNxHR decoder fixes for HQX and high resolution videos
  • ClearVideo decoder (partial)
  • 16.8 and 24.0 floating point PCM decoder
  • Intel QSV-accelerated VP8 video decoding
  • native Opus encoder
  • DNxHR 444 and HQX encoding
  • Quality improvements for the (M)JPEG encoder
  • VAAPI-accelerated MPEG-2 and VP8 encoding
  • premultiply video filter
  • abitscope multimedia filter
  • readeia608 filter
  • threshold filter
  • midequalizer filter
  • MPEG-7 Video Signature filter
  • add internal ebur128 library, remove external libebur128 dependency
  • Intel QSV video scaling and deinterlacing filters
  • Sample Dump eXchange demuxer
  • MIDI Sample Dump Standard demuxer
  • Scenarist Closed Captions demuxer and muxer
  • Support MOV with multiple sample description tables
  • Pro-MPEG CoP #3-R2 FEC protocol
  • Support for spherical videos
  • CrystalHD decoder moved to new decode API
  • configure now fails if autodetect-libraries are requested but not found
Ffmpeg convert to mp4

We strongly recommend users, distributors, and system integrators to upgrade unless they use current git master.

October 30th, 2016, Results: Summer Of Code 2016.

This has been a long time coming but we wanted to give a proper closure to our participation in this run of the program and it takes time. Sometimes it's just to get the final report for each project trimmed down, others, is finalizing whatever was still in progress when the program finished: final patches need to be merged, TODO lists stabilized, future plans agreed; you name it.

Without further ado, here's the silver-lining for each one of the projects we sought to complete during this Summer of Code season:

FFv1 (Mentor: Michael Niedermayer)

Stanislav Dolganov designed and implemented experimental support for motion estimation and compensation in the lossless FFV1 codec. The design and implementation is based on the snow video codec, which uses OBMC. Stanislav's work proved that significant compression gains can be achieved with inter frame compression. FFmpeg welcomes Stanislav to continue working beyond this proof of concept and bring its advances into the official FFV1 specification within the IETF.

Mpv Ffmpeg

Self test coverage (Mentor: Michael Niedermayer)

Petru Rares Sincraian added several self-tests to FFmpeg and successfully went through the in-some-cases tedious process of fine tuning tests parameters to avoid known and hard to avoid problems, like checksum mismatches due to rounding errors on the myriad of platforms we support. His work has improved the code coverage of our self tests considerably.

MPEG-4 ALS encoder implementation (Mentor: Thilo Borgmann)

Umair Khan updated and integrated the ALS encoder to fit in the current FFmpeg codebase. He also implemented a missing feature for the ALS decoder that enables floating-point sample decoding. FFmpeg support for MPEG-4 ALS has been improved significantly by Umair's work. We welcome him to keep maintaining his improvements and hope for great contributions to come.

Tee muxer improvements (Mentor: Marton Balint)

Ján Sebechlebský's generic goal was to improve the tee muxer so it tolerated blocking IO and allowed transparent error recovery. During the design phase it turned out that this functionality called for a separate muxer, so Ján spent his summer working on the so-called FIFO muxer, gradually fixing issues all over the codebase. He succeeded in his task, and the FIFO muxer is now part of the main repository, alongside several other improvements he made in the process.

TrueHD encoder (Mentor: Rostislav Pehlivanov)

Jai Luthra's objective was to update the out-of-tree and pretty much abandoned MLP (Meridian Lossless Packing) encoder for libavcodec and improve it to enable encoding to the TrueHD format. For the qualification period the encoder was updated such that it was usable and throughout the summer, successfully improved adding support for multi-channel audio and TrueHD encoding. Jai's code has been merged into the main repository now. While a few problems remain with respect to LFE channel and 32 bit sample handling, these are in the process of being fixed such that effort can be finally put in improving the encoder's speed and efficiency.

Ffmpeg C# Example

Motion interpolation filter (Mentor: Paul B Mahol)

Davinder Singh investigated existing motion estimation and interpolation approaches from the available literature and previous work by our own: Michael Niedermayer, and implemented filters based on this research. These filters allow motion interpolating frame rate conversion to be applied to a video, for example, to create a slow motion effect or change the frame rate while smoothly interpolating the video along the motion vectors. There's still work to be done to call these filters 'finished', which is rather hard all things considered, but we are looking optimistically at their future.

And that's it. We are happy with the results of the program and immensely thankful for the opportunity of working with such an amazing set of students. We can be a tough crowd but our mentors did an amazing job at hand holding our interns through their journey. Thanks also to Google for this wonderful program and to everyone that made room in their busy lives to help making GSoC2016 a success. See you in 2017!

September 24th, 2016, SDL1 support dropped.

Support for the SDL1 library has been dropped, due to it no longer being maintained (as of January, 2012) and it being superseded by the SDL2 library. As a result, the SDL1 output device has also been removed and replaced by an SDL2 implementation. Both the ffplay and opengl output devices have been updated to support SDL2.

August 9th, 2016, FFmpeg 3.1.2 'Laplace'

FFmpeg 3.1.2, a new point release from the 3.1 release branch, is now available! It fixes several bugs.

We recommend users, distributors, and system integrators, to upgrade unless they use current git master.

July 10th, 2016, ffserver program being dropped

After thorough deliberation, we're announcing that we're about to drop the ffserver program from the project starting with the next release. ffserver has been a problematic program to maintain due to its use of internal APIs, which complicated the recent cleanups to the libavformat library, and block further cleanups and improvements which are desired by API users and will be easier to maintain. Furthermore the program has been hard for users to deploy and run due to reliability issues, lack of knowledgable people to help and confusing configuration file syntax. Current users and members of the community are invited to write a replacement program to fill the same niche that ffserver did using the new APIs and to contact us so we may point users to test and contribute to its development.

July 1st, 2016, FFmpeg 3.1.1 'Laplace'

FFmpeg 3.1.1, a new point release from the 3.1 release branch, is now available! It mainly deals with a few ABI issues introduced in the previous release.

We strongly recommend users, distributors, and system integrators, especially those who experienced issues upgrading from 3.0, to upgrade unless they use current git master.

Mpv Media Player Windows

June 27th, 2016, FFmpeg 3.1 'Laplace'

FFmpeg 3.1 'Laplace', a new major release, is now available! Some of the highlights:

  • DXVA2-accelerated HEVC Main10 decoding
  • fieldhint filter
  • loop video filter and aloop audio filter
  • Bob Weaver deinterlacing filter
  • firequalizer filter
  • datascope filter
  • bench and abench filters
  • ciescope filter
  • protocol blacklisting API
  • MediaCodec H264 decoding
  • VC-2 HQ RTP payload format (draft v1) depacketizer and packetizer
  • VP9 RTP payload format (draft v2) packetizer
  • AudioToolbox audio decoders
  • AudioToolbox audio encoders
  • coreimage filter (GPU based image filtering on OSX)
  • libdcadec removed
  • bitstream filter for extracting DTS core
  • ADPCM IMA DAT4 decoder
  • musx demuxer
  • aix demuxer
  • remap filter
  • hash and framehash muxers
  • colorspace filter
  • hdcd filter
  • readvitc filter
  • VAAPI-accelerated format conversion and scaling
  • libnpp/CUDA-accelerated format conversion and scaling
  • Duck TrueMotion 2.0 Real Time decoder
  • Wideband Single-bit Data (WSD) demuxer
  • VAAPI-accelerated H.264/HEVC/MJPEG encoding
  • DTS Express (LBR) decoder
  • Generic OpenMAX IL encoder with support for Raspberry Pi
  • IFF ANIM demuxer & decoder
  • Direct Stream Transfer (DST) decoder
  • loudnorm filter
  • MTAF demuxer and decoder
  • MagicYUV decoder
  • OpenExr improvements (tile data and B44/B44A support)
  • BitJazz SheerVideo decoder
  • CUDA CUVID H264/HEVC decoder
  • 10-bit depth support in native utvideo decoder
  • libutvideo wrapper removed
  • YUY2 Lossless Codec decoder
  • VideoToolbox H.264 encoder

We strongly recommend users, distributors, and system integrators to upgrade unless they use current git master.

March 16th, 2016, Google Summer of Code

FFmpeg has been accepted as a Google Summer of Code open source organization. If you wish to participate as a student see our project ideas page. You can already get in contact with mentors and start working on qualification tasks as well as register at google and submit your project proposal draft. Good luck!

February 15th, 2016, FFmpeg 3.0 'Einstein'

FFmpeg 3.0 'Einstein', a new major release, is now available! Some of the highlights:

  • Over 30 new filters have been added
  • Many ASM optimizations
  • VP9 Hardware Acceleration (DXVA2 and VA-API)
  • Cineform HD decoder
  • New DCA decoder based on libdcadec with full support for DTS-HD extensions
  • As with all major releases expect major backward incompatible API/ABI changes
  • See the Changelog for a list of more updates

We strongly recommend users, distributors, and system integrators to upgrade unless they use current git master.

January 30, 2016, Removing support for two external AAC encoders

We have just removed support for VisualOn AAC encoder (libvo-aacenc) and libaacplus in FFmpeg master.

Even before marking our internal AAC encoder as stable, it was known that libvo-aacenc was of an inferior quality compared to our native one for most samples. However, the VisualOn encoder was used extensively by the Android Open Source Project, and we would like to have a tested-and-true stable option in our code base.

When first committed in 2011, libaacplus filled in the gap of encoding High Efficiency AAC formats (HE-AAC and HE-AACv2), which was not supported by any of the encoders in FFmpeg at that time.

The circumstances for both have changed. After the work spearheaded by Rostislav Pehlivanov and Claudio Freire, the now-stable FFmpeg native AAC encoder is ready to compete with much more mature encoders. The Fraunhofer FDK AAC Codec Library for Android was added in 2012 as the fourth supported external AAC encoder, and the one with the best quality and the most features supported, including HE-AAC and HE-AACv2.

Therefore, we have decided that it is time to remove libvo-aacenc and libaacplus. If you are currently using libvo-aacenc, prepare to transition to the native encoder (aac) when updating to the next version of FFmpeg. In most cases it is as simple as merely swapping the encoder name. If you are currently using libaacplus, start using FDK AAC (libfdk_aac) with an appropriate profile option to select the exact AAC profile that fits your needs. In both cases, you will enjoy an audible quality improvement and as well as fewer licensing headaches.


January 16, 2016, FFmpeg 2.8.5, 2.7.5, 2.6.7, 2.5.10

We have made several new point releases (2.8.5, 2.7.5, 2.6.7, 2.5.10). They fix various bugs, as well as CVE-2016-1897 and CVE-2016-1898. Please see the changelog for each release for more details.

We recommend users, distributors and system integrators to upgrade unless they use current git master.

December 5th, 2015, The native FFmpeg AAC encoder is now stable!

After seven years the native FFmpeg AAC encoder has had its experimental flag removed and declared as ready for general use. The encoder is transparent at 128kbps for most samples tested with artifacts only appearing in extreme cases. Subjective quality tests put the encoder to be of equal or greater quality than most of the other encoders available to the public.

Licensing has always been an issue with encoding AAC audio as most of the encoders have had a license making FFmpeg unredistributable if compiled with support for them. The fact that there now exists a fully open and truly free AAC encoder integrated directly within the project means a lot to those who wish to use accepted and widespread standards.

The majority of the work done to bring the encoder up to quality was started during this year's GSoC by developer Claudio Freire and Rostislav Pehlivanov. Both continued to work on the encoder with the latter joining as a developer and mainainer, working on other parts of the project as well. Also, thanks to Kamedo2 who does comparisons and tests, the original authors and all past and current contributors to the encoder. Users are suggested and encouraged to use the encoder and provide feedback or breakage reports through our bug tracker.

October 13th, 2015, Telepoint & MediaHub are now supporting our project

A big thank you note goes to our newest supporters: MediaHub and Telepoint. Both companies have donated a dedicated server with free of charge internet connectivity. Here is a little bit about them in their own words:

  • Telepoint is the biggest carrier-neutral data center in Bulgaria. Located in the heart of Sofia on a cross-road of many Bulgarian and International networks, the facility is a fully featured Tier 3 data center that provides flexible customer-oriented colocation solutions (ranging from a server to a private collocation hall) and a high level of security.

  • MediaHub Ltd. is a Bulgarian IPTV platform and services provider which uses FFmpeg heavily since it started operating a year ago. 'Donating to help keep FFmpeg online is our way of giving back to the community' .

Thanks Telepoint and MediaHub for their support!

September 29th, 2015, GSoC 2015 results

FFmpeg participated to the latest edition of the Google Summer of Code Project. FFmpeg got a total of 8 assigned projects, and 7 of them were successful.

We want to thank Google, the participating students, and especially the mentors who joined this effort. We're looking forward to participating in the next GSoC edition!

Below you can find a brief description of the final outcome of each single project.

Basic servers for network protocols, mentee: Stephan Holljes, mentor: Nicolas George

Stephan Holljes's project for this session of Google Summer of Code was to implement basic HTTP server features for libavformat, to complement the already present HTTP client and RTMP and RTSP server code.

The first part of the project was to make the HTTP code capable of accepting a single client; it was completed partly during the qualification period and partly during the first week of the summer. Thanks to this work, it is now possible to make a simple HTTP stream using the following commands:

The next part of the project was to extend the code to be able to accept several clients, simultaneously or consecutively. Since libavformat did not have an API for that kind of task, it was necessary to design one. This part was mostly completed before the midterm and applied shortly afterwards. Since the ffmpeg command-line tool is not ready to serve several clients, the test ground for that new API is an example program serving hard-coded content.

The last and most ambitious part of the project was to update ffserver to make use of the new API. It would prove that the API is usable to implement real HTTP servers, and expose the points where more control was needed. By the end of the summer, a first working patch series was undergoing code review.

Browsing content on the server, mentee: Mariusz Szczepańczyk, mentor: Lukasz Marek

Mariusz finished an API prepared by the FFmpeg community and implemented Samba directory listing as qualification task.

During the program he extended the API with the possibility to remove and rename files on remote servers. He completed the implementation of these features for file, Samba, SFTP, and FTP protocols.

At the end of the program, Mariusz provided a sketch of an implementation for HTTP directory listening.

Directshow digital video capture, mentee: Mate Sebok, mentor: Roger Pack

Mate was working on directshow input from digital video sources. He got working input from ATSC input sources, with specifiable tuner.

The code has not been committed, but a patch of it was sent to the ffmpeg-devel mailing list for future use.

The mentor plans on cleaning it up and committing it, at least for the ATSC side of things. Mate and the mentor are still working trying to finally figure out how to get DVB working.

Implementing full support for 3GPP Timed Text Subtitles, mentee: Niklesh Lalwani, mentor: Philip Langdale

Niklesh's project was to expand our support for 3GPP Timed Text subtitles. This is the native subtitle format for mp4 containers, and is interesting because it's usually the only subtitle format supported by the stock playback applications on iOS and Android devices.

ffmpeg already had basic support for these subtitles which ignored all formatting information - it just provided basic plain-text support.

Niklesh did work to add support on both the encode and decode side for text formatting capabilities, such as font size/colour and effects like bold/italics, highlighting, etc.

The main challenge here is that Timed Text handles formatting in a very different way from most common subtitle formats. It uses a binary encoding (based on mp4 boxes, naturally) and stores information separately from the text itself. This requires additional work to track which parts of the text formatting applies to, and explicitly dealing with overlapping formatting (which other formats support but Timed Text does not) so it requires breaking the overlapping sections into separate non-overlapping ones with different formatting.

Finally, Niklesh had to be careful about not trusting any size information in the subtitles - and that's no joke: the now infamous Android stagefright bug was in code for parsing Timed Text subtitles.

All of Niklesh's work is committed and was released in ffmpeg 2.8.

libswscale refactoring, mentee: Pedro Arthur, mentors: Michael Niedermayer, Ramiro Polla

Pedro Arthur has modularized the vertical and horizontal scalers. To do this he designed and implemented a generic filter framework and moved the existing scaler code into it. These changes now allow easily adding removing, splitting or merging processing steps. The implementation was benchmarked and several alternatives were tried to avoid speed loss.

He also added gamma corrected scaling support. An example to use gamma corrected scaling would be:

Pedro has done impressive work considering the short time available, and he is a FFmpeg committer now. He continues to contribute to FFmpeg, and has fixed some bugs in libswscale after GSoC has ended.

AAC Encoder Improvements, mentee: Rostislav Pehlivanov, mentor: Claudio Freire

Rostislav Pehlivanov has implemented PNS, TNS, I/S coding and main prediction on the native AAC encoder. Of all those extensions, only TNS was left in a less-than-usable state, but the implementation has been pushed (disabled) anyway since it's a good basis for further improvements.

PNS replaces noisy bands with a single scalefactor representing the energy of that band, gaining in coding efficiency considerably, and the quality improvements on low bitrates are impressive for such a simple feature.

TNS still needs some polishing, but has the potential to reduce coding artifacts by applying noise shaping in the temporal domain (something that is a source of annoying, notable distortion on low-entropy bands).

Intensity Stereo coding (I/S) can double coding efficiency by exploiting strong correlation between stereo channels, most effective on pop-style tracks that employ panned mixing. The technique is not as effective on classic X-Y recordings though.

Finally, main prediction improves coding efficiency by exploiting correlation among successive frames. While the gains have not been huge at this point, Rostislav has remained active even after the GSoC, and is polishing both TNS and main prediction, as well as looking for further improvements to make.

In the process, the MIPS port of the encoder was broken a few times, something he's also working to fix.

Animated Portable Network Graphics (APNG), mentee: Donny Yang, mentor: Paul B Mahol

Donny Yang implemented basic keyframe only APNG encoder as the qualification task. Later he wrote interframe compression via various blend modes. The current implementation tries all blend modes and picks one which takes the smallest amount of memory.

Special care was taken to make sure that the decoder plays correctly all files found in the wild and that the encoder produces files that can be played in browsers that support APNG.

During his work he was tasked to fix any encountered bug in the decoder due to the fact that it doesn't match APNG specifications. Thanks to this work, a long standing bug in the PNG decoder has been fixed.

For latter work he plans to continue working on the encoder, making it possible to select which blend modes will be used in the encoding process. This could speed up encoding of APNG files.

September 9th, 2015, FFmpeg 2.8

We published release 2.8 as new major version. It contains all features and bug fixes of the git master branch from September 8th. Please see the changelog for a list of the most important changes.

We recommend users, distributors and system integrators to upgrade unless they use current git master.

August 1st, 2015, A message from the FFmpeg project

Dear multimedia community,

The resignation of Michael Niedermayer as leader of FFmpeg yesterday has come by surprise. He has worked tirelessly on the FFmpeg project for many years and we must thank him for the work that he has done. We hope that in the future he will continue to contribute to the project. In the coming weeks, the FFmpeg project will be managed by the active contributors.

The last four years have not been easy for our multimedia community - both contributors and users. We should now look to the future, try to find solutions to these issues, and to have reconciliation between the forks, which have split the community for so long.

Unfortunately, much of the disagreement has taken place in inappropriate venues so far, which has made finding common ground and solutions difficult. We aim to discuss this in our communities online over the coming weeks, and in person at the VideoLAN Developer Days in Paris in September: a neutral venue for the entire open source multimedia community.

The FFmpeg project.

July 4th, 2015, FFmpeg needs a new host

UPDATE: We have received more than 7 offers for hosting and servers, thanks a lot to everyone!

After graciously hosting our projects (FFmpeg, MPlayer and rtmpdump) for 4 years, Arpi (our hoster) has informed us that we have to secure a new host somewhere else immediately.

If you want to host an open source project, please let us know, either on ffmpeg-devel mailing list or #ffmpeg-devel.

We use about 4TB of storage and at least 4TB of bandwidth / month for various mailing lists, trac, samples repo, svn, etc.

March 16, 2015, FFmpeg 2.6.1

We have made a new major release (2.6) and now one week afterward 2.6.1. It contains all features and bugfixes of the git master branch from the 6th March. Please see the Release Notes for a list of note-worthy changes.

We recommend users, distributors and system integrators to upgrade unless they use current git master.

March 4, 2015, Google Summer of Code

FFmpeg has been accepted as a Google Summer of Code Project. If you wish to participate as a student see our project ideas page. You can already get in contact with mentors and start working on qualification tasks. Registration at Google for students will open March 16th. Good luck!

March 1, 2015, Chemnitzer Linux-Tage

We happily announce that FFmpeg will be represented at Chemnitzer Linux-Tage (CLT) in Chemnitz, Germany. The event will take place on 21st and 22nd of March.

More information can be found here

We demonstrate usage of FFmpeg, answer your questions and listen to your problems and wishes. If you have media files that cannot be processed correctly with FFmpeg, be sure to have a sample with you so we can have a look!

For the first time in our CLT history, there will be an FFmpeg workshop! You can read the details here. The workshop is targeted at FFmpeg beginners. First the basics of multimedia will be covered. Thereafter you will learn how to use that knowledge and the FFmpeg CLI tools to analyse and process media files. The workshop is in German language only and prior registration is necessary. The workshop will be on Saturday starting at 10 o'clock.

We are looking forward to meet you (again)!

December 5, 2014, FFmpeg 2.5

We have made a new major release (2.5) It contains all features and bugfixes of the git master branch from the 4th December. Please see the Release Notes for a list of note-worthy changes.

We recommend users, distributors and system integrators to upgrade unless they use current git master.

October 10, 2014, FFmpeg is in Debian unstable again

We wanted you to know there are FFmpeg packages in Debian unstable again. A big thank-you to Andreas Cadhalpun and all the people that made it possible. It has been anything but simple.

Unfortunately that was already the easy part of this news. The bad news is the packages probably won't migrate to Debian testing to be in the upcoming release codenamed jessie. Read the argumentation over at Debian.

However things will come out in the end, we hope for your continued remarkable support!

October 8, 2014, FFmpeg secured a place in OPW!

Thanks to a generous 6K USD donation by Samsung (Open Source Group), FFmpeg will be welcoming at least 1 'Outreach Program for Women' intern to work with our community for an initial period starting December 2014 (through March 2015).

We all know FFmpeg is used by the industry, but even while there are countless products building on our code, it is not at all common for companies to step up and help us out when needed. So a big thank-you to Samsung and the OPW program committee!

If you are thinking on participating in OPW as an intern, please take a look at our OPW wiki page for some initial guidelines. The page is still a work in progress, but there should be enough information there to get you started. If you, on the other hand, are thinking on sponsoring work on FFmpeg through the OPW program, please get in touch with us at [email protected] With your help, we might be able to secure some extra intern spots for this round!

September 15, 2014, FFmpeg 2.4

We have made a new major release (2.4) It contains all features and bugfixes of the git master branch from the 14th September. Please see the Release Notes for a list of note-worthy changes.

We recommend users, distributors and system integrators to upgrade unless they use current git master.

August 20, 2014, FFmpeg 2.3.3, 2.2.7, 1.2.8

We have made several new point releases (2.3.3, 2.2.7, 1.2.8). They fix various bugs, as well as CVE-2014-5271 and CVE-2014-5272. Please see the changelog for more details.

We recommend users, distributors and system integrators to upgrade unless they use current git master.

July 29, 2014, Help us out securing our spot in OPW

Following our previous post regarding our participation on this year's OPW (Outreach Program for Women), we are now reaching out to our users (both individuals and companies) to help us gather the needed money to secure our spot in the program.
We need to put together 6K USD as a minimum but securing more funds would help us towards getting more than one intern.
You can donate by credit card using Click&Pledge and selecting the 'OPW' option. If you would like to donate by money transfer or by check, please get in touch by e-mail and we will get back to you with instructions.

July 20, 2014, New website

The FFmpeg project is proud to announce a brand new version of the website made by db0. While this was initially motivated by the need for a larger menu, the whole website ended up being redesigned, and most pages got reworked to ease navigation. We hope you'll enjoy browsing it.

July 17, 2014, FFmpeg 2.3

We have made a new major release (2.3) It contains all features and bugfixes of the git master branch from the 16th July. Please see the Release Notes for a list of note-worthy changes.

We recommend users, distributors and system integrators to upgrade unless they use current git master.

July 3, 2014, FFmpeg and the Outreach Program For Women

FFmpeg has started the process to become an OPW includer organization for the next round of the program, with internships starting December 9. The OPW aims to 'Help women (cis and trans) and genderqueer to get involved in free and open source software'. Part of the process requires securing funds to support at least one internship (6K USD), so if you were holding on your donation to FFmpeg, this is a great chance for you to come forward, get in touch and help both the project and a great initiative!

We have set up an email address you can use to contact us about donations and general inquires regarding our participation in the program. Hope to hear from you soon!

Mpv Ffmpeg Version

June 29, 2014, FFmpeg 2.2.4, 2.1.5, 2.0.5, 1.2.7, 1.1.12, 0.10.14

We have made several new point releases (2.2.4, 2.1.5, 2.0.5, 1.2.7, 1.1.12, 0.10.14). They fix a security issue in the LZO implementation, as well as several other bugs. See the git log for details.

We recommend users, distributors and system integrators to upgrade unless they use current git master.

May 1, 2014, LinuxTag

Once again FFmpeg will be represented at LinuxTag in Berlin, Germany. The event will take place from 8th to 10th of May. Please note that this year's LinuxTag is at a different location closer to the city center.

We will have a shared booth with XBMC and VideoLAN. If you have media files that cannot be processed correctly with FFmpeg, be sure to have a sample with you so we can have a look!

More information about LinuxTag can be found here

We are looking forward to see you in Berlin!

April 18, 2014, OpenSSL Heartbeat bug

Our server hosting the Trac issue tracker was vulnerable to the attack against OpenSSL known as 'heartbleed'. The OpenSSL software library was updated on 7th of April, shortly after the vulnerability was publicly disclosed. We have changed the private keys (and certificates) for all FFmpeg servers. The details were sent to the mailing lists by Alexander Strasser, who is part of the project server team. Here is a link to the user mailing list archive .

We encourage you to read up on 'OpenSSL heartbleed'. It is possible that login data for the issue tracker was exposed to people exploiting this security hole. You might want to change your password in the tracker and everywhere else you used that same password.

April 11, 2014, FFmpeg 2.2.1

We have made a new point releases (2.2.1). It contains bug fixes for Tickets #2893, #3432, #3469, #3486, #3495 and #3540 as well as several other fixes. See the git log for details.

March 24, 2014, FFmpeg 2.2

We have made a new major release (2.2) It contains all features and bugfixes of the git master branch from 1st March. A partial list of new stuff is below:

We recommend users, distributors and system integrators to upgrade unless they use current git master.

February 3, 2014, Chemnitzer Linux-Tage

We happily announce that FFmpeg will be represented at `Chemnitzer Linux-Tage' in Chemnitz, Germany. The event will take place on 15th and 16th of March.

More information can be found here

We invite you to visit us at our booth located in the Linux-Live area! There we will demonstrate usage of FFmpeg, answer your questions and listen to your problems and wishes.

If you have media files that cannot be processed correctly with FFmpeg, be sure to have a sample with you so we can have a look!

Ffmpeg Convert To Mp4

We are looking forward to meet you (again)!

February 9, 2014, / Security Breach

The server on which FFmpeg and MPlayer Trac issue trackers were installed was compromised. The affected server was taken offline and has been replaced and all software reinstalled. FFmpeg Git, releases, FATE, web and mailinglists are on other servers and were not affected. We believe that the original compromise happened to a server, unrelated to FFmpeg and MPlayer, several months ago. That server was used as a source to clone the VM that we recently moved Trac to. It is not known if anyone used the backdoor that was found.

We recommend all users to change their passwords. Especially users who use a password on Trac that they also use elsewhere, should change that password at least elsewhere.

November 12, 2013, FFmpeg RFP in Debian

Since the splitting of Libav the Debian/Ubuntu maintainers have followed the Libav fork. Many people have requested the packaging of ffmpeg in Debian, as it is more feature-complete and in many cases less buggy.

Rogério Brito, a Debian developer, has proposed a Request For Package (RFP) in the Debian bug tracking system.

Please let the Debian and Ubuntu developers know that you support packaging of the real FFmpeg! See Debian ticket #729203 for more details.


October 28, 2013, FFmpeg 2.1

Ffmpeg Mp4 To Mp3

We have made a new major release (2.1) It contains all features and bugfixes of the git master branch from 28th October. A partial list of new stuff is below:

We recommend users, distributors and system integrators to upgrade unless they use current git master.