News and announcements

Last Chance to Participate in Outreachy/Outreach Program for Women!

Written for FFmpeg by Timothy Gu on 2015-04-05

OPW/Outreachy internships for this round are starting in May and we are about to hit the deadline for applications set for April 10th.

If you are interested on applying, please take a look at the main page for the program and the list of participating organizations here:


We are also maintaining a list of projects you might want to consider applying to as well as general information for the applicants here:

If you have any questions regarding the program please get in touch with us at

Updated on 2015-04-05. Read more

FFmpeg 2.4 is released!

Written for FFmpeg by Timothy Gu on 2014-09-15

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 (;a=blob;f=RELEASE_NOTES;hb=release/2.4) for a list of note-worthy changes.

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

Read more

Another Wave of x86 Assembly Porting

Written for FFmpeg by Timothy Gu on 2014-05-27

As introduced in the last announcement I made [1], FFmpeg's hand-tuned assembly code is what makes it so fast. In FFmpeg, x86 assembly comes in two flavors: inline assembly, which is compiled by GCC as a special kind of C code; and NASM assembly, which is assembled by the Yasm or NASM assembler. NASM assembly has been the flavor we would like new code to be in, because it supports Microsoft's Visual Studio with the installation of the Yasm assembler. To compile the inline assembly for Windows, you would need a full MinGW toolchain, which is something MSVC users would like to avoid.

However, due to some historic reasons, many old codes in FFmpeg are in the form of inline assembly, which is a very significant disadvantage to our MSVC users. So here comes what we have been trying to do: porting the inline assembly code to NASM syntax. The job is easy for most functions; but for some, the macros and dependencies are intertwined together, which makes reading the code, let alone porting it, extremely difficult. FFmpeg developers, James Almer and Christophe Gisquet, took on this job and made lots of progress on it [2].

As we make more code easily usable by MSVC users, more projects running on Windows will utilize FFmpeg, which in turn will make FFmpeg a even more active project that it already is.

[1] SIMD Optimization Season:
[2] See the recent Git log of libavcodec/x86:;a=history;f=libavcodec/x86;hb=58632070866a529913355df1d9c7cc71fa91ffde

SIMD Optimization Season

Written for FFmpeg by Timothy Gu on 2014-02-24

FFmpeg has a large number of hand-written SIMD optimization that utilizes CPU's instruction set extensions like MMX, SSE, and AVX for x86, and NEON for ARM to create a speed boost [1]. Recently we have added various SIMD optimization that causes VP9, DCA, and FLAC decoding to speed up.

Here is a partial list of all the optimization we've added since late last year:

* VP9 decoder: new MMX, SSE2, SSSE3, and AVX optimizations
* DCA decoder: new SSE, SSE2, and SSE4 optimizations
* FLAC 32-bit LPC coder: 50% faster than the C-based code thanks to the new SSE 4 and XOP optimizations
* HEVC decoder: optimizations currently being reviewed

* All NEON optimizations written for regular ARM architecture are ported to the AArch64 64-bit platform

A huge thanks to all the developers who have contributed to the FFmpeg project!


15 of 8 results