News

Today we have new releases on two of our release branches: 11.4, 10.7.

Here are the updated changelogs:

We encourage distributors and system integrators to update, and share their patches against our release branches.

Enjoy!

Today we have new releases on all 4 of our release branches: 11.3, 10.6, 9.18 and 0.8.17.

Here are the updated changelogs:

Special note: The 0.8 branch of libav is now more than 2 years old -- downstreams are recommended to update sooner rather than later as 0.8.17 will be the final official release for this branch.

We encourage distributors and system integrators to update, and share their patches against our release branches.

Enjoy!

Today, we update our release series 11 with the release of Libav 11.2. This release contains several security and bug fixes.

This release contains many potentially security-relevant corrections. For details, please refer to the verbose Changelog file.

We encourage distributors and system integrators to update, and share their patches against our release branches.

Enjoy!

We are happy to update three release branches: Libav 10.5, Libav 9.17, and Libav 0.8.16, which address a number of critical functional and security issues (many of which have CVE identifiers assigned) that we have been made aware of.

In the 0.8 release branch, the message about the deprecation of the "ffmpeg" program has been reworded to avoid confusion with the FFmpeg project.

For further details on the backported changes, please refer to our verbose Changelog files:

We would like to encourage distributors and system integrators to update and share their patches against our release branches.

After several months of development, we are pleased to announce the release of Libav 11.

With this release we are trying to answer the numerous calls from our users for shorter development cycles. From now on we will aim for approximately two major releases per year.

The main highlights of this release include native Opus, VP7, OpenEXR, and On2 AVC decoders, HEVC encoding through libx265, new APIs for exporting ReplayGain and display transformation metadata and countless bug fixes. A large effort was also expended on internal cleanups which are not very visible to our users, but should make the codebase cleaner, safer and easier to maintain and extend. One point worth mentioning is refactoring the large monolithic framework for architecture-specific codec optimizations into small blocks, which reduces the size of configurations that selectively enable or disable certain codecs.

The avserver streaming tool, which has not been maintained for many years and was mostly broken, was removed from the tree. It was decided that it is a significant maintenance burden and that we do our users no service by pretending to support it, while we in fact do not.

Libav 11 is API-, but not ABI-compatible with the previous major release. This means that the code using our libraries needs to be rebuilt, but no source changes should be required. Note however, that a number of old APIs remain deprecated and will be dropped in the near future. All users are strongly encouraged to update their code as soon as possible. The doc/APIchanges file in the Libav source tree and the migration guide on the wiki should help with migration to the new APIs. If those are not sufficient, do not hesitate to contact us on IRC or through the user mailing list.

One specific API issue in libavformat deserves mentioning here. When using libavcodec for decoding or encoding and libavformat for demuxing or muxing, the standard practice was to use the stream codec context (AVStream.codec) for actual decoding or encoding. There are multiple problems with this pattern (the main one is that the decoder/demuxer or encoder/muxer are not necessarily synchronized and may overwrite each other's state), so it is now strongly discouraged and will likely be deprecated in the future. Users should instead allocate a separate decoding or encoding context and populate it from the demuxing codec context (or the reverse for encoding) with the avcodec_copy_context() function.

See the Changelog file for a more extensive list of significant changes.

You can download the new release, as usual, from our download page.

In preparation for the upcoming Libav 11 release, we have bumped the major versions of all the libraries we ship (libavcodec, libavformat, libavfilter, libavresample, libswscale, libavdevice and libavutil). This allowed us to enable some new features that required breaking ABI compatibility. Dynamically linked applications thus need to be rebuilt to use the current Git master or the upcoming release.

The API remains backward compatible, so no source changes should be required in the code that works with Libav 10. We note however, that a number of obsolete APIs remain deprecated and will be removed in the future. All users are strongly encouraged to update their code. A work in progress migration guide can be found at our wiki. If you are still having difficulty after reading the migration guide, please do not hesitate to file a report in our Bugzilla. We have a special category for porting issues.

We are happy to update two release branches: Today, we provide you with Libav 9.16, and Libav 0.8.15, which address a number of critical functional and security issues (many of which have CVE identifiers assigned) that we have been made aware of.

For further details on the backported changes, please refer to our verbose Changelog files:

We would like to encourage distributors and system integrators to update and share their patches against our release branches.

Today, we update our release series 10 with the release of Libav 10.3. This release contains several security and bug fixes. Among others, several bugs that lead to crashes during playback have been fixed in the H.264 and many other decoders.

This release contains many potentially security-relevant corrections. For details, please refer to the verbose Changelog file.

We encourage distributors and system integrators to update, and share their patches against our release branches.

Enjoy!

We are happy to update three release branches: Today, we provide you with Libav 10.2, Libav 9.14, and Libav 0.8.13, which address a number of critical functional and security issues that we have been made aware of. In particular, these releases address the recently discovered LZO issue.

For further details on the backported changes, please refer to our verbose Changelog files:

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Today, we update our release series 0.8 with the release of Libav 0.8.12. This release contains several security and bug fixes. Among others, several bugs that lead to crashes during playback have been fixed in the H.264 and many other decoders.

This release contains many potentially security-relevant corrections. For details, please refer to the verbose Changelog file.

We intend to discontinue updates for the 0.8 release branch unless there is significant demand for a 0.8.13 release. If such a release becomes necessary in the future, please do not hesitate to get in contact with us, preferably via email or via a Bugzilla entry. Otherwise, this is most likely the last update of this release branch.

We encourage distributors and system integrators to update, and share their patches against our release branches.

Enjoy!

Today, we update our latest release series 10 with the release of Libav 10.1. This release contains several security and bug fixes.

This release contains many potentially security-relevant corrections. For details, please refer to the verbose Changelog file.

We encourage distributors and system integrators to update, and share their patches against our release branches.

Enjoy!

We've collected a number of security and stability patches recently, so today we are releasing Libav 9.13. Many thanks go out to Mateusz "j00ru" Jurczyk and Gynvael Coldwind for providing us many samples and patches, especially for the h264 decoder in this release. For details, please refer to the verbose Changelog file.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

After several months spent finalizing, we are now pleased to announce the release of Libav 10.

One of the main features of this release is the addition of reference-counted data buffers to Libav and their use in various structures. Specifically, the data buffers used by AVPacket and AVFrame can now be reference counted, which should allow to significantly simplify many use cases. In addition, reference-counted AVFrames> can now be used in libavfilter, avoiding the need for a separate libavfilter-specific frame structure. Frames can now be passed straight from the decoders into filters or from filters to encoders.

These additions made it necessary to bump the major versions of libavcodec, libavformat, libavdevice, libavfilter, and libavutil, which was accompanied by dropping some old deprecated APIs. These libraries are thus not ABI- or API- compatible with the previous release. All the other libraries (libavresample and libswscale) remain ABI- and API-compatible.

Another major point is the inclusion of the HEVC (AKA H.265, the successor of H.264) decoder in the main codebase. It was started in 2012 as a Libav Google Summer of Code project by Guillaume Martres and subsequently completed with the assistance of the OpenHEVC project and several Libav developers.

As usual, this release also contains support for other new formats, many smaller new features and countless bug fixes. We can highlight a native VP9 decoder, with encoding provided through libvpx, native decoders for WebP, JPEG 2000, and AIC, as well as improved WavPack support with encoding through libwavpack, support for more AAC flavors (LD - low delay, ELD - enhanced low delay), slice multithreading in libavfilter, or muxing chapters in ASF. Furthermore a few new filters have been introduced, namely compand, to change audio dynamics, framepack, to create stereoscopic videos, asetpts, to set audio pts, and interlace, to convert progressive video to interlaced. Finally there is more fine-grained detection of host and target libc, which should allow better portability to various cross compilation scenarios.

See the Changelog file for a fuller list of significant changes.

You can download the new release, as usual, from our download page.

We are happy to update three release branches: Today, we provide you with both, Libav 9.12 and Libav 0.8.11, in order to address a number of critical functional and security issues that we have been made aware of. Also, we cut the next milestone of our Libav 10 release branch, Libav Beta2, that incorporates many changes based on the feedback provided to us.

For further details on the backported changes, please refer to our verbose Changelog files:

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Enjoy!

We are pleased to announce that our next major release, Libav 10 "Eks", has been branched from git master and we are simultaneously releasing the first beta preview for that branch. If all goes well, the final release should follow shortly, after some polishing.

Please consult the release notes for the summary of the most important features of this release. Downstream projects may be interested in the migration guide which gives some pointers for adapting to the new APIs.

We are happy to update two release branches: Today, we provide you with both, Libav 9.11 and Libav 0.8.10, in order to address a number of critical functional and security issues that we have been made aware of.

For further details on the backported changes, please refer to our verbose Changelog files:

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Enjoy!

Today, we update our latest release series 0.8 with the release of Libav 0.8.9. This release contains several security and bug fixes. Among others, several bugs that lead to crashes during playback have been fixed in the H.264 and SVQ3 decoder.

This release contains many potentially security-relevant corrections. For details, please refer to the verbose Changelog file.

We encourage distributors and system integrators to update, and share their patches against our release branches.

Enjoy!

We've collected a number of security and stability patches recently, so today we are releasing Libav 9.10. For details, please refer to the verbose Changelog file.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

After the summer break and thanks to the Google Security Team, who have provided us with an additional batch of samples, we have been able to fix a number of security-relevant issues. Many of these fixes are now available in the current update, Libav 9.9. For details, please refer to the verbose Changelog file.

The older release branch will get updated in the following weeks.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

We are happy to update two release branches: Today, we provide you with both, Libav 9.8 and Libav 0.8.8, in order to address a number of critical functional and security issues that we have been made aware of.

For further details on the backported changes, please refer to our verbose Changelog files:

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Enjoy!

Once again and thanks to the Google Security Team, who have provided us with a number of samples, we have been able to fix a number of security-relevant issues. Many of these fixes are now available in the current update, Libav 9.7. For details, please refer to the verbose Changelog file.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

You can download the new release, as usual, from our download page.

Today, we are happy to present you updates to our latest two release branches: Libav 9.6, and Libav 0.8.7. Both point releases include a number of security and stability fixes. For details, please refer to the verbose Changelog files for version 9.6 and version 0.8.7.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

You can download the new release, as usual, from our download page.

Thanks to the Google Security Team, who have provided us with a number of samples, we have been able to fix a number of security-relevant issues. Many of these fixes are now available in the current update, Libav 9.5. For details, please refer to the verbose Changelog file.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

You can download the new release, as usual, from our download page.

We are proud to update two release branches: Today, we provide you with both, Libav 9.4 and Libav 0.8.6, in order to address a number of critical functional and security issues that we have been made aware of. For both releases, we are happy to confirm that the following CVE tracked issues have been fixed:

  • h264: check for luma and chroma bit depth being equal (CVE-2013-2277)
  • iff: validate CMAP palette size (CVE-2013-2495)
  • msrledec: convert to bytestream2 API and add proper bounds checking (CVE-2013-2496)
  • vorbisdec: Error on bark_map_size equal to 0 (CVE-2013-0894)

For further details on the backported changes, please refer to our verbose Changelog files:

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Enjoy!

We have been made aware of a security issue in our Vorbis decoder. Therefore, we push out a small and quick update, Libav 9.3, that fixes CVE-2013-0894. Besides this, we also include a small number of critical correction to our H.264, Flash Video and AC3 decoders. For details, please refer to the verbose Changelog file.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

You can download the new release, as usual, from our download page.

Today, we update our latest release series 9 with the release of Libav 9.2. This release contains a number of pro-active bug fixes, most of which lead to crashes in the library. While selecting them, special care has been applied to ensure that this update remains fully compatible to previous releases of this release branch. For details, please refer to the verbose Changelog file.

You can download the new release, as usual, from our download page.

We have just finalized another point release from our 0.5 release branch: Libav 0.5.10. This is another maintenance-only release that addresses a number of security issues, such as:

  • mpeg12: do not decode extradata more than once (CVE-2012-2803)
  • vp6: properly fail on unsupported feature (CVE-2012-2783)
  • vp56: release frames on error (CVE-2012-2783)
  • shorten: Use separate pointers for the allocated memory for decoded samples (CVE-2012-0858)
  • cavsdec: check for changing w/h (CVE-2012-2777 and CVE-2012-2784)
  • avidec: use actually read size instead of requested size CVE-2012-2788
  • avsdec: Set dimensions instead of relying on the demuxer (CVE-2012-2801)

In addition, further bug fixes have been made:

  • yuv4mpeg: return proper error codes (Bug 373)
  • bmpdec: only initialize palette for pal8 (Bug 367)

Distributors and system integrators are encouraged to update and share their patches against our release branches.

We intend to discontinue updates for the 0.5 release branch unless there is significant demand for a 0.5.11 release. If such a release becomes necessary in the future, please do not hesitate to get in contact with us, preferably via email or via a Bugzilla entry. Otherwise, this is most likely the last update of this release branch.

Along with the previously mentioned deprecation of the 0.7 series, we are also planning to drop the 0.6 series, as announced several weeks ago on the development mailing list. If you are currently using this release, we strongly recommend you upgrade to 0.8 or 9.

Today, we update our latest release series 0.7 with the release Libav 0.7.7. As usual, this release includes a number of functional corrections and security fixes, such as:

  • aacdec: Fix an off-by-one overwrite when switching to LTP profile from MAIN (CVE-2012-5144)
  • alsdec: check opt_order (CVE-2012-2775)
  • alsdec: fix number of decoded samples in first sub-block in BGMC mode (CVE-2012-2790)
  • avidec: use actually read size instead of requested size (CVE-2012-2788)
  • avsdec: Set dimensions instead of relying on the demuxer (CVE-2012-2801)
  • cavsdec: check for changing w/h (CVE-2012-2777 and CVE-2012-2784)
  • dfa: check that the caller set width/height properly (CVE-2012-2786)
  • dfa: improve boundary checks in decode_dds1() (CVE-2012-2798)
  • indeo4/5: check empty tile size in decode_mb_info() (CVE-2012-2800)
  • indeo5: Make sure we have had a valid GOP header (CVE-2012-2779)
  • indeo5: check tile size in decode_mb_info() (CVE-2012-2794)
  • ivi_common: check that scan pattern is set before using it (CVE-2012-2791)
  • lagarith: check count before writing zeros (CVE-2012-2793)
  • mpeg12: do not decode extradata more than once (CVE-2012-2803)
  • rv34: error out on size changes with frame threading (CVE-2012-2772)
  • vp56: release frames on error (CVE-2012-2783)
  • wmaprodec: check num_vec_coeffs for validity (CVE-2012-2789)

Additional, further bug fixes have been made to the following codecs:

  • h264
  • vc1
  • nuv
  • imgconvert
  • vorbisenc
  • flacenc

Other noteworthy changes include:

  • fix segfault in avformat_open_input()
  • rtsp: Recheck the reordering queue if getting a new packet
  • fix uninitialized reads and memory leaks on malformed Ogg files

We intend to discontinue updates for the 0.7 release branch unless there is significant demand for a 0.7.8 release. If such a release becomes necessary in the future, please do not hesitate to get in contact with us, preferably via email or via a Bugzilla entry.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Enjoy!

Today, we update our latest release series 0.8 with the release of Libav 0.8.5. This release contains several security and bug fixes. Among others, several bugs that lead to crashes during playback have been fixed in the H.264 and SVQ3 decoder.

This release contains security fixes for the following CVEs:

  • Indeo 4 (CVE-2012-2791)
  • VP5/VP6 (CVE-2012-2783)
  • Indeo 3 (CVE-2012-2804)
  • MPEG-1/2 (CVE-2012-2803)
  • MP3 (CVE-2012-2797)
  • AAC (CVE-2012-5144)
  • AC-3 (CVE-2012-2802)
  • AVS (CVE-2012-2801)
  • DFA (CVE-2012-2798)

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Enjoy!

Today, we push out a quick but important update 9.1. It fixes a segfault in libavresample on Windows 32bit platforms when compiling with MSVC or ICC 10.x, and fixes memory leaks in the Ogg demuxer.

You can download the new release, as usual, from our download page.

After several months spent making sure that a sufficient number of our downstreams is ready, we are now pleased to announce the release of Libav 9 "Plain Nine".

The first thing to note is that it is indeed 9, not 0.9. With this release, we change our versioning scheme to follow our workflow better. This means that the leading zero, present in our previous version numbers, is dropped. Version numbers from now on will be in major.minor form, with major releases updating the major component and stable releases the minor component.

A new library arrived in Libav during this development cycle -- its name is libavresample and it handles audio conversion and mixing. All users are encouraged to use it instead of the old, now deprecated, audio conversion API in libavcodec.

The libpostproc library now resides in a separate tree. It was fully independent of the other Libav libraries, not used by any of the tools, and saw very little development. For these reasons we have decided that it has no place in Libav. A standalone Git tree is available at VideoLAN for people wishing to use libpostproc.

The major versions of the libavcodec, libavformat and libavfilter libraries have been bumped, so they are not API or ABI compatible with the 0.8 release.

This release brings a number of significant changes in the libavfilter library. Firstly, all the API dealing with filter internals is no longer public. The result is that creating user-side filters will not be supported until libavfilter is more mature. Secondly, full audio filtering support is now available along with a set of basic audio filters. We hope that their number will soon grow significantly. The avconv transcoding tool has of course been extended to handle audio filtering as well. There were a number of other API changes, most importantly the addition of the buffer sink public API.

In the libavcodec library, one of the most notable changes is added support for planar audio (i.e. not interleaved). Many decoders and encoders, which previously did inefficient (de)interleaving internally, now only work with planar audio formats. Libavresample can be used for optimized conversion between interleaved and planar formats.

Of big interest to our Windows users, Libav now supports building with the MSVC compiler. Since MSVC does not support C99 features used extensively by Libav, this has been accomplished using a converter that turns C99 code to C89. See here for more detailed documentation on building Libav with MSVC.

As usual, this release also contains support for some new formats, many smaller new features and countless bug fixes. We can highlight Opus decoding / encoding through libopus, encoders for Apple ProRes and Ut Video, 24-bit FLAC encoding, WMA Lossless and RealAudio Lossless decoders, fragmented MOV/MP4 and ISMV (Smooth Streaming) muxers, a large number of RTMP improvements and support for cover art in ID3v2, WMA, MP4 and FLAC.

See the Changelog file for a list of significant changes.

You can download the new release, as usual, from our download page.

Another two months of developing, testing and polishing later, we are proud to announce the next beta release. We still hesitate to finalize the "Plain 9" because it seems that many of our downstream users have still not caught up. This is meant as a courtesy to our users and redistributors to ensure a painless upgrade.

This tarball comes with the following changes:

  • ashowinfo audio filter
  • 24-bit FLAC encoding
  • audio volume filter
  • deprecated the avconv -vol option. the volume filter is to be used instead.
  • multi-channel ALAC encoding up to 7.1
  • TAK demuxer, parser, and decoder
  • adaptive frame-level multithreading for H.264

You can download the new release, as usual, from our download page

We are still on track with our next major release codename "Plain 9". Today, we update our beta release with 9_beta2 based on the feedback and testing that we got.

Compared to the changes listed in the beta_1 announcement, the following items come in addition:

  • Support for shared libraries with the MSVC toolchain
  • Metadata (INFO tag) support in WAV muxer
  • Support building on the Plan 9 operating system
  • The SONAME of libavutil was bumped to libavutil.so.52
  • Support FF1 codec version 3
  • Various other bugfixes and cleanups

You can download the new release, as usual, from our download page

Today, we update our latest release series 0.8 with the release of Libav 0.8.4. This release contains several security and bug fixes.

The following bugs in our Bugzilla have been fixed:

  • #118: zzufed H.261 file crashes avconv signal 11 (SIGSEGV)
  • #203: scale filter has a rounding error
  • #245: Reading already freed mem when using vfilters pad and settb
  • #265: smacker audio decode regression
  • #277: avconv ignores audio bitrate -ab parameter
  • #310: avconv hangs when transcoding .flac files
  • #327: wmaprodec: Arithmetic exception
  • #352: Pad filter pass-through problem
  • #367: Crash in bmp_decode_frame() when decoding unusual bmp file
  • #373: y4m as input results in "filename.y4m: Operation not permitted"
  • #379: Regression in WAV files between 52.72. 2 and 53. 35. 0
  • #380: double free in option handling

This release contains security fixes for the following CVEs:

  • CVE-2012-2772
  • CVE-2012-2775
  • CVE-2012-2776
  • CVE-2012-2777
  • CVE-2012-2779
  • CVE-2012-2784
  • CVE-2012-2786
  • CVE-2012-2787
  • CVE-2012-2788
  • CVE-2012-2789
  • CVE-2012-2790
  • CVE-2012-2793
  • CVE-2012-2794
  • CVE-2012-2796
  • CVE-2012-2798
  • CVE-2012-2800
  • CVE-2012-2801
  • CVE-2012-2802

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Enjoy!

With the next upcoming release, we change our versioning scheme to follow our workflow better. This means that the leading zero, present in our previous version numbers, is dropped. Version numbers from now on will be in major.minor form, with major releases updating the major component and stable releases the minor component. With this in mind, we are happy to provide a first preview of our next release version 9.

A new library arrived in Libav during this development cycle -- its name is libavresample and it handles audio conversion and mixing. All users are encouraged to use it instead of the old, now deprecated, audio conversion API in libavcodec.

The libpostproc library now resides in a separate tree. It was fully independent of the other Libav libraries, not used by any of the tools and saw very little development. For these reasons we decided that it has no place in Libav. A standalone Git tree is available at VideoLAN for people wishing to use libpostproc.

The major versions of the libavcodec, libavformat and libavfilter libraries have been bumped, so they are not API or ABI compatible with the 0.8 release. The ffmpeg transcoding tool, kept for compatibility in 0.8, has also been dropped.

This release brings a number of significant changes in the libavfilter library. Firstly, all the API dealing with filter internals is no longer public. The result is that creating user-side filters will not be supported until libavfilter is more mature. Secondly, full audio filtering support is now available along with a set of basic audio filters. We hope that their number will soon grow significantly. The avconv transcoding tool has of course been extended to handle audio filtering as well. There were a number of other API changes, most importantly the addition of the buffer sink public API.

In the libavcodec library, one of the most notable changes is added support for planar audio (i.e. not interleaved). Many decoders and encoders, that previously did inefficient (de)interleaving internally, now only work with planar audio formats. Libavresample can be used for optimized conversion between interleaved and planar formats.

Of big interest to our Windows users can be newly added support for building with the MSVC compiler. Since MSVC does not support C99 features used extensively by Libav, this has been accomplished using a converter that turns C99 code to C89. See here for more detailed documentation on building Libav with MSVC.

As usual, this release also contains support for some new formats, many smaller new features and countless bug fixes. We can highlight Opus decoding / encoding through libopus, encoders for Apple ProRes and Ut Video, WMA Lossless and RealAudio Lossless decoders, fragmented MOV/MP4 and ISMV (Smooth Streaming) muxers, a large number of RTMP improvements and support for cover art in ID3v2, WMA, MP4 and FLAC.

See the Changelog file for a list of significant changes.

Please note that our policy on bug reports has not changed. We still only accept bug reports against HEAD of the Libav trunk repository. If you are experiencing issues with any formally released version of Libav, please try a current version of the development code to check if the issue still exists. If it does, make your report against the development code following the usual bug reporting guidelines.

You can download the new release, as usual, from our download page

The libavresample library is now declared stable. There will be no more API- or ABI-incompatible changes until the next major bump.

The libavfilter library is hereby declared stable. This means there will be no more API- or ABI-incompatible changes until the next major bump.

The major version of the libavfilter library has been bumped. This means that ABI and API compatibility has been broken and some deprecated functions and structures have been removed.

Most of those were related to filter internals, which are now private. User-side filters are no longer officially supported until libavfilter reaches a more mature state.

The libavfilter ABI is now declared unstable until further notice (stabilizing it should take a couple of weeks at most).

We have been busy lately! Today, we are updating all 4 of our release trees.

Fresh from the release team we are introducing 0.8.3, 0.7.6, 0.6.6 and 0.5.9.

The following bugs in our Bugzilla have been fixed:

  • #118: zzufed H.261 file crashes avconv signal 11 (SIGSEGV)
  • #145: signal 11 (SIGSEGV) on input from corrupted file
  • #146: zzufed FRAPS files crashes avconv signal 11 (SIGSEGV)
  • #197: Read errors in kega decoder
  • #198: vorbis decoder infinite loop
  • #199: vorbis decoder FPE

Several bugs and crashes have been fixed in the following codecs: AAC, ADPCM, ATRAC3, CELP, DPCM, DXVA2, H.263, H.264, Kega, KMVC, Motion Pixels, MJPEG-B, PNG, QDM2, Shorten, Westwood VQA

Several bugs and crashes have been fixed in the following formats: ASF, DV, EA & EAtqi, ID3v2, NSV

These releases contain security fixes for the following CVEs:

  • CVE-2012-0947
  • CVE-2012-0858
  • CVE-2012-0853
  • CVE-2012-0852
  • CVE-2012-0851
  • CVE-2012-0850
  • CVE-2011-4031
  • CVE-2011-3952
  • CVE-2011-3951
  • CVE-2011-3947
  • CVE-2011-3945
  • CVE-2011-3940
  • CVE-2011-3937
  • CVE-2011-3936
  • CVE-2011-3929

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Enjoy!

As every year some members from our crew will be trolling^Wattending LinuxTag in Berlin this week. Meet us at our booth, have a chat and if you have broken samples, bring them along and watch us trying to fix them.

Today, we update our latest release series 0.8 with the release of Libav 0.8.2. This release contains a security fix for vqavideo filed as CVE-2012-0947.

The following bug in our Bugzilla has been fixed:

  • #278: fate-motionpixel overread in ff_cropTbl

Several bugs and crashes have been fixed in the following codecs: AAC, APE, H.263, H.264, Indeo 4, Mimic, MJPEG, Motion Pixels Video, RAW, TTA, VC1, VQA, WMA Voice, vqavideo (CVE-2012-0947).

Several bugs and crashes have been fixed in the following formats: ASF, ID3v2, MOV, xWMA

This release additionally updates the following codecs to the bytestream2 API, and therefore benefits from additional overflow checks: truemotion2, utvideo, vqavideo.

This release now properly reads from .avpreset files.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Enjoy!

Today, we update our latest release series 0.7 with the release Libav 0.7.5. As usual, this release includes a number of functional corrections and security fixes, such as:

  • CVE-2012-0848
  • CVE-2012-0853
  • CVE-2012-0858
  • CVE-2011-3929
  • CVE-2011-3936
  • CVE-2011-3937
  • CVE-2011-3940
  • CVE-2011-3945
  • CVE-2011-3947

Several bugs and crashes have been fixed in the following codecs: 4xm, AAC, AC3, ADPCM.C, ALS, ANM, AVS, Atrac3, Bink, Bitmap Brothers JV, COOK, CamStudio, Cinepak, DCA, DSI CIN, EA CMV, FLAC, Fraps FPS1, H263, H264, Huffyuv, KMVC, Kega Game Video, LCL, MJPEG, MPEG1/2 encoder, Motion Pixels, Musepack SV7, Musepack SV8, Nellymoser, QCELP, QDM2, QT RPZA, QT SVQ3, Qt RLE, QuickDraw, RAW, RV10, RV34, SIPR, Shorten, Smacker, SubRib, TIFF, Tiertex Limited SEQ, Truemotion2, V.Flash PTX, VC1, VMware Screen Codec, VP5, VP6, VP8, Vorbis, WMA, WMA PRO, WMA Voice, WavPack, Westwood SNDx, Wing Commander/Xan.

Several bugs and crashes have been fixed in the following formats: 4xm, ASF, AVS, DV, FLV, Matroska, Musepack SV8, MPEG, MXF, NSV, RM, Segafilm, Smacker, Sierra SOL, SWF.

Several bugs and crashes have been fixed in the following filters: avfiltergraph, lavfi, vf_unsharp, vf_scale, vf_pad, vf_yadif, vf_yadif.

Libswscale has a fix for a potential overflow with large image sizes.

Please see the file doc/APIChanges and the Doxygen documentation for further information.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Libav has been accepted as mentoring organization for Google Summer of Code. Here is the Google SoC Libav page.

We have a list of proposed project ideas available so, if you think you might be interested, head over there to see if there is any project on which you wish to work and for which you may wish to make an application. The list is still in flux, and you're free to come up with your own ideas, but note that proposals should be closely tied to the progression of Libav's code base.

If you're a student who thinks you have what it takes, please read how it works and contact us on our libav-devel mailing list or on IRC in the channel #libav-devel.

The sooner you start communicating with us and working within our code base, the sooner both you and we will ascertain your suitability and you will get used to our development methodology. You have until the application deadline to complete your small task. Good luck!

Today, we update our latest release series 0.8 with the release Libav 0.8.1. As usual, this release includes a number of functional corrections and security fixes, such as:

  • CVE-2012-0848
  • CVE-2012-0853
  • CVE-2012-0858
  • CVE-2011-3929
  • CVE-2011-3936
  • CVE-2011-3937
  • CVE-2011-3940
  • CVE-2011-3945
  • CVE-2011-3947
  • CVE-2011-3951
  • CVE-2011-3952

The following bugs in our Bugzilla have been fixed:

Several bugs and crashes have been fixed in the following codecs: AAC, AC-3, ADPCM, AMR (both NB and WB), ATRAC3, CAVS, Cook, camstudio, DCA, DPCM, DSI CIN, DV, EA TGQ, FLAC, fraps, G.722 (both encoder and decoder), H.264, huvffyuv, BB JV decoder, Indeo 3, KGV1, LCL, the libx264 wrapper, MJPEG, mp3on4, Musepack, MPEG1/2, PNG, QDM2, Qt RLE, ROQ, RV10, RV30/RV34//RV40, shorten, smacker, subrip, SVQ3, TIFF, Truemotion2, TTA, VC1, VMware Screen codec, Vorbis, VP5, VP6, WMA, Westwood SNDx, XXAN.

This release additionally updates the following codecs to the bytestream2 API, and therefore benefit from additional overflow checks: XXAN, ALG MM, TQG, SMC, Qt SMC, ROQ, PNG

Several bugs and crashes have been fixed in the following formats: AIFF, ASF, DV, Matroska, NSV, MOV, MPEG-TS, Smacker, Sony OpenMG, RM, SWF.

Libswscale has a fix for a potential overflow with large image sizes.

The following APIs have been added:

  • avcodec_is_open()
  • avformat_get_riff_video_tags()
  • avformat_get_riff_audio_tags()

Please see the file doc/APIChanges and the Doxygen documentation for further information.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

The tree is hereby declared stable again. There will be no more API or ABI compatibility breaks until the next major bump.

Major versions of the libavformat and libavcodec libraries have been bumped, thus breaking ABI and API compatibility with the recent 0.8 release. As usual, the ABI should be considered unstable until further notice (a few weeks at most).

This step allows us to remove a large amount of obsolete code (over 3000 lines). Users who still did not update to the latest API must do so now to be able to use this new major version. The bump also allows us to enable protocol private options in libavformat and fix some outstanding problems with options passing in the libx264 wrapper.

Furthermore, the legacy ffmpeg conversion tool has been removed. Only avconv is available now. Shared builds of Libav now also disable the avserver tool. avserver can only be linked with Libav statically because it uses internal library symbols (volunteers to fix this are very welcome).

We are pleased to announce the availability of our next major release Libav 0.8, which is codenamed "Forbidden Fruit". Unlike our last major release, this release is a binary compatible drop-in replacement for the 0.7 release series.

This release continues the API cleanups that have begun with the previous release. While it remains binary compatible with 0.7, many parts of the public API were deprecated and will be removed in the git master and later releases. Please consult the doc/APIchanges file to see intended replacements for the deprecated APIs.

Furthermore, our work on the 'ffmpeg' command-line tool has resulted in major revisions to its interface. In order to not break existing scripts and applications, we have chosen to introduce a new tool called 'avconv', and keep the traditional 'ffmpeg' frontend for end-user's convenience. An earlier news entry compares how 'avconv' differs from 'ffmpeg'.

Additionally, this release introduces a number of new interesting codecs such as the Apple ProRes, Flash Screen Video 2 and Windows Media Image, and muxers such as LATM or CELT in Ogg, among many others. Moreover, our H.264 decoder has been improved to decode 4:2:2 material and our libx264 wrapper now allows to produce 4:2:2 and 4:4:4 video.

The 0.8 branch will see maintenance and small feature updates in the future, similar to previous release branches. Please request changes such as bug fixes and new features on our bug tracker.

Since our last point release last month, three security issues have come to our attention. All of them, along with the corresponding fixes, originate from the Chromium Project, but apply to Libav as well. In detail, they have been published as CVE-2011-3892, CVE-2011-3893, and CVE-2011-3895. Therefore, we have updated all three stable branches with the new releases Libav 0.7.4, Libav 0.6.5, and Libav 0.5.7. As always, all releases contain mostly security fixes only with the intention to not introduce disturbing or interfering changes.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Additionally, please use the opportunity to give Libav 0.8_beta2 a try. Compared to the first beta release, this snapshot has seen a number of bug fixes. Note that since libpostproc has not been maintained for quite a while, it is considered deprecated from now on and thus, no longer built by default. In case your applications still require it, you can re-enable the compilation of the post-processing library with the --enable-postproc configure switch at this time, but the library may disappear in a later release of Libav.

As a step towards the next major release 0.8, we are asking for feedback on our beta release. This gives you the opportunity to test and tell us your opinion on what will be included in the next major release. Unlike our last release, this release is a binary compatible drop-in replacement for the 0.7 release series.

Just in time for Christmas, we have updated our three release branches: Libav 0.7.3, Libav 0.6.4, and Libav 0.5.6. All releases contain mostly security fixes only with the intention to not introduce disturbing or interfering changes. 0.6.4 contains in addition a number of other carefully selected functional fixes from the 0.7 release branch. As an extra bonus, the 0.7.3 release contains a backported API avcodec_open2(). This allows newer versions of the external library libx264 to work with Libav's libavcodec and libavformat libraries again.

In detail, all releases feature fixes for the VP3 decoder (CVE-2011-4352), SVQ1 decoder (CVE-2011-4579), DoS in the VP5/VP6 decoders (CVE-2011-4353), the QDM2 decoder (CVE-2011-4351), and a buffer overflow in the Sierra VMD decoder CVE-2011-4364. For a full list of changes, please refer to the respective Changelog files.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Libav is participating in this year's Google Code-in (GCI) under the umbrella of our friends from the VideoLAN organization. Google Code-in is the pre-university version of Google Summer of Code, where Libav has successfully participated in the last few years. We are looking forward to mentoring pupils and introducing them to free and open source software. Happy hacking!

Today, we update two of our stable branches: Libav 0.6.3, and Libav 0.5.5. Both are mostly security related updates, with the intention to not introduce disturbing or interfering changes. This allows distributors and system integrators to update their libraries at low risk of unexpected problems.

For the 0.5.5 release, the following issues have been fixed:

  • Fix memory (re)allocation in matroskadec.c (MSVR11-011/CVE-2011-3504)
  • Fix some crashes with invalid bitstreams in the CAVS decoder (CVE-2011-3362, CVE-2011-3973, CVE-2011-3974)
  • Compilation fixes for gcc-4.6, testsuite now passes again
  • Detect and handle overreads in the MJPEG decoder.

For the 0.6.3 release, the following additional changes have been done:

  • Fix compilation with --enable-hardcoded-tables
  • Fix races in default av_log handler (possibly exploitable)
  • lavf: inspect more frames for fps when container time base is coarse
  • AMV: disable DR1 and don't override EMU_EDGE (addresses http://seclists.org/bugtraq/2011/Apr/257)
  • Fix a heap corruption issue in the OGG decoder
  • Backported the Android VisualOn AAC encoder wrapper from 0.7.2

As always, distributors and system integrators are encouraged to update and share their patches against our release branches.

We have just released Libav 0.7.2, the latest release from the 0.7 branch. This is a security focused release that addresses the following issues:

  • Check buffer and input values in various parts of the code:
    • H.264, VC-1, CAVS (OCERT-2011-002, CVE-2011-3362)
    • APE, Indeo 2, XAN, WavPack, ffv1, Smacker
    • RV10, RV30/RV40
    • FLV, Ogg, MXF, MOV, Matroska (CVE-2011-3504)
    • CPU detection
  • Remove memory leaks in vf_scale, eval
  • Remove some suspicious illegal memcpy()s from LTP in AAC
  • Fix Continuity Counter error detection in MPEG-TS
  • Fix crashes in ppc32 PIC builds (as reported in Debian)
  • Fix cast related random failures in ppc64
  • Fix context pointer in av_open_input_stream when avformat_open_input fails

Additional bug fixes and improvements in the build system, H.264 and VP3/Theora decoder, ARM support and audio codecs are present. A detailed list of changes can be seen in the git log for release 0.7.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

avconv is now declared stable. Any incompatible syntax changes from now on will be preceded by a deprecation period, when both old and new syntax will work.

Updated on 12.09.2011.

For consistency with our new name we have renamed ffplay to avplay, ffserver to avserver and ffprobe to avprobe. Their behavior is the same, just the names were changed.

With ffmpeg (the command line tool) we decided to use this opportunity to fix some longstanding usability problems, which involves breaking compatibility. Therefore we have added a new tool named avconv which is based on ffmpeg, but has a different (hopefully more powerful and easier to use) syntax for some options. ffmpeg will be kept in its current state for some time, so no scripts or frontends using it will break. However it will not be developed further.

Differences between avconv and ffmpeg are:

  • The options placement is now strictly enforced! While in theory the options for ffmpeg should be given in [input options] -i INPUT [output options] OUTPUT order, in practice it was possible to give output options before the -i and it mostly worked. Except when it didn't - the behavior was a bit inconsistent. In avconv, it is not possible to mix input and output options. All non-global options are reset after an input or output filename.
  • All per-file options are now truly per-file - they apply only to the next input or output file and specifying different values for different files will now work properly (notably -ss and -t options).
  • All per-stream options are now truly per-stream - it is possible to specify which stream(s) should a given option apply to. See the Stream specifiers section in the avconv manual for details.
  • In ffmpeg some options (like -newvideo/-newaudio/...) are irregular in the sense that they're specified after the output filename instead of before, like all other options. In avconv this irregularity is removed, all options apply to the next input or output file.
  • -newvideo/-newaudio/-newsubtitle options were removed. Not only were they irregular and highly confusing, they were also redundant. In avconv the -map option will create new streams in the output file and map input streams to them. E.g. avconv -i INPUT -map 0 OUTPUT will create an output stream for each stream in the first input file.
  • The -map option now has slightly different and more powerful syntax:
    • Colons (':') are used to separate file index/stream type/stream index instead of dots. Comma (',') is used to separate the sync stream instead of colon.. This is done for consistency with other options.
    • It's possible to specify stream type. E.g. -map 0:a:2 creates an output stream from the third input audio stream.
    • Omitting the stream index now maps all the streams of the given type, not just the first. E.g. -map 0:s creates output streams for all the subtitle streams in the first input file.
    • Since -map can now match multiple streams, negative mappings were introduced. Negative mappings disable some streams from an already defined map. E.g. '-map 0 -map -0:a:1' means 'create output streams for all the stream in the first input file, except for the second audio stream'.
  • There is a new option -c (or -codec) for choosing the decoder/encoder to use, which allows to precisely specify target stream(s) consistently with other options. E.g. -c:v lib264 sets the codec for all video streams, -c:a:0 libvorbis sets the codec for the first audio stream and -c copy copies all the streams without reencoding. Old -vcodec/-acodec/-scodec options are now aliases to -c:v/a/s
  • It is now possible to precisely specify which stream should an AVOption apply to. E.g. -b:v:0 2M sets the bitrate for the first video stream, while -b:a 128k sets the bitrate for all audio streams. Note that the old -ab 128k syntax is deprecated and will stop working soon.
  • -map_chapters now takes only an input file index and applies to the next output file. This is consistent with how all the other options work.
  • -map_metadata now takes only an input metadata specifier and applies to the next output file. Output metadata specifier is now part of the option name, similarly to the AVOptions/map/codec feature above.
  • -metadata can now be used to set metadata on streams and chapters, e.g. -metadata:s:1 language=eng sets the language of the first stream to 'eng'. This made -vlang/-alang/-slang options redundant, so they were removed.
  • Presets in avconv are disabled, because only libx264 used them and presets for libx264 can now be specified using a private option -preset presetname.
  • -qscale option now uses stream specifiers and applies to all streams, not just video. I.e. plain -qscale number would now apply to all streams. To get the old behavior, use -qscale:v. Also there is now a shortcut -q for -qscale and -aq is now an alias for -q:a.
  • -vbsf/-absf/-sbsf options were removed and replaced by a -bsf option which uses stream specifiers. Use -bsf:v/a/s instead of the old options.
  • -itsscale option now uses stream specifiers, so its argument is only the scale parameter.
  • -intra option was removed, use -g 0 for the same effect.
  • -psnr option was removed, use -flags +psnr for the same effect.
  • -vf option is now an alias to the new -filter option, which uses stream specifiers.
  • -vframes/-aframes/-dframes options are now aliases to the new -frames option.
  • -vtag/-atag/-stag options are now aliases to the new -tag option.

Note that the avconv interface is not considered stable yet. More incompatible changes may come in the following weeks. We will announce here when avconv is stable.

We have just released Libav 0.7.1, the latest release from the 0.7 branch. This is a maintenance-only release that addresses the following issues:

  • added various additional FourCC codec identifiers
  • H.264 4:4:4 fixes
  • build system and compilation fixes
  • Doxygen and general documentation corrections and improvements
  • fixed segfault in ffprobe
  • behavioral fix in av_open_input_stream()
  • Licensing clarification for LGPL'ed vf_gradfun
  • bug fixes while seeking in multithreaded decoding
  • support newer versions of OpenCV
  • ffmpeg: fix operation with --disable-avfilter
  • fixed integer underflow in Matroska decoder

A detailed list of changes can be seen in the git log.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

Long overdue but finally finished, we are happy to announce the first release from the Libav 0.7 release branch. Since the last beta version, we have taken feedback from our users into account and integrated H.264/MPEG frame-level multithreading.

The 0.7 branch will see maintenance and small feature updates in the future, similar to previous release branches. Please request changes such as bug fixes and new features on our new bug tracker.

This release enables frame-based multithreaded decoding for a number of codecs, including VP8, H.263 and H.264. Additionally, there has been a major cleanup of both internal and external APIs. For this reason, the major versions of all libraries have been bumped. On the one hand, this means that 0.7 can be installed side-by-side with previous releases, on the other hand, in order to benefit from the new features, applications need to be recompiled.

Other important changes are additions of decoders including, but not limited to, AMR-WB, single stream LATM/LOAS, G.722 ADPCM, a native VP8 decoder and HE-AACv2. Additionally, many new de/muxers such as WebM in Matroska, Apple HTTP Live Streaming, SAP, IEC 61937 (S/PDIF) have been added. See the Changelog file for a list of significant changes.

We are happy to announce our latest beta release Libav 0.7 beta2. Since the last beta version, we've integrated 9bit and 10bit per sample support in the H.264 decoder, AVX optimizations (available on, for example, Sandy Bridge processors), an DPX image encoder, and SMPTE AES3 audio decoding. Moreover, we have finished cleaning up the API from unnecessary compatibility cruft for the upcoming 0.7 release. In other words, with this beta release the tree is officially declared stable again.

We are still on track with doing the next major release 0.7. As a number of dependent projects have asked for faster releases, we now provide our users with blessed snapshots of the current state of development in Libav in form of the Libav 0.7 beta1 release. This gives you the opportunity to test and write us your opinion on what will be included in the next major release. Please note that major versions (and thus the SONAME) of all libraries have just been bumped which allows co-installation with 0.6.

In preparation for the upcoming 0.7 release, major versions of all the libraries in Libav (libavcodec, libavformat, libavdevice, libavutil, libavfilter, libswscale and libpostproc) were just bumped. This means that some deprecated code was disabled and will be removed shortly, thus breaking binary and API compatibility with 0.6.

The tree is hereby declared unstable for a short time so we can finish all the incompatible changes.

In the past few months, we did a large-scale cleanup of the formerly semi-public IO API in libavformat. As a result:

  • The higher-level buffered API working with ByteIOContext (now renamed to AVIOContext) is now officially public.
  • Some functions from the buffered API were found unfit to be public and were deprecated.
  • The lower-level unbuffered API working with URLContext was found unfit to be public and is now deprecated. If you are using it to feed libavformat demuxers with your own I/O system, you can easily switch to the buffered API.
  • All public functions now conform to the Libav naming rules and are properly prefixed with avio_, thus preventing name clashes.

If you are using the ByteIOContext API in your application, adapting to the changes should be straightforward and consist mostly of renames.

We will maintain compatibility for the 0.7 release, everything deprecated now is planned to be removed shortly before 0.8. If you cannot find an adequate replacement for a deprecated part of the API you are using or have any problems while switching to the buffered API, please contact us and we will try to solve your problem. Refer to the doc/APIChanges file for details.

We are pleased to announce that only weeks after its inception, Libav has already been integrated into major Linux distributions such as Ubuntu, Gentoo, Debian and OpenEmbedded. We encourage other distros to review our mission statement and consider including Libav as system libraries as well.

We have just pushed another point release from our 0.6 release branch: Libav 0.6.2. This is another maintenance-only release addressing two security issues.

From now on, we will be using our new project name libav. But don't worry, compared to the preceding release 0.6.1, the only functional changes are the two security fixes for the VC1 and APE decoders. This means that libav provides a painless drop-in replacement for existing FFmpeg installations.

Moreover, we are proud to accompany this source release with executables and libraries for the win32 platform. These binaries include H.264 encoding using the bundled x264 library. Enjoy!

Distributors and system integrators are encouraged to update and share their patches against our release branches.

We have just pushed another point release from our 0.5 release branch: FFmpeg 0.5.4. This is another maintenance-only release that addresses a number of security issues.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

We, as a group of FFmpeg developers, have decided to continue developing FFmpeg under the name Libav. All existing infrastructure will be transferred to the libav.org domain.

Website:  www.libav.org
Git:  git://git.libav.org/libav.git (see libav.org/download.html)
FATE:  fate.libav.org
Roundup:  https://roundup.libav.org/
Patchwork:  patches.libav.org
Mailinglists:  lists.libav.org (developer list: libav-devel@libav.org)

You can update your git repository using the following command:

git remote set-url origin 'git://git.libav.org/libav'

For now we are still reachable over FFmpeg's mailing lists and IRC channels but we will migrate to libav.org counterparts. For a transition period both the website and source might still contain references to FFmpeg. These will disappear over time, except where historically relevant.

FFmpeg development has moved to Git, and the SVN repository is no longer updated. The SVN repository may be removed in a near future, so you're recommended to use a Git repository instead.

The last revision committed to SVN was r26402 on 2011-01-19 and replaced the svn:external libswscale with a standalone copy.

We have just pushed the first point release from our 0.6 release branch: FFmpeg 0.6.1. This is a maintenance-only release that addresses a small number of bugs and security issues. It also adds a newer version of the AAC decoder, which enables the playback of HE-AAC v2 media.

We have also taken the time make another point release our 0.5 branch: FFmpeg 0.5.3. It is a maintenance-only release that addresses a security issue and a minor set of bugs.

Distributors and system integrators are encouraged to update and share their patches against our release branches.

A bit longer than actually expected, but finally, we are proud to announce a new release: FFmpeg 0.6. Check out the release notes and changelog.

It is codenamed "Works with HTML5" as the special focus of this release were improvements for the new multimedia elements in HTML5. The H.264 and Theora decoders are now significantly faster and the Vorbis decoder has seen important updates. This release supports Google's newly released libvpx library for the VP8 codec and the Matroska demuxer was extended to support the WebM container.

This release includes again an extensive number of changes; some of its highlights are:

  • Significant work to support at least decoding of all widespread mainstream proprietary codecs, and as usual broad coverage of widespread non-proprietary codecs, such as:
    • decoders and encoders
      • VP8 (via Google's libvpx library)
    • decoders
      • AMR-NB
      • Atrac1
      • HE-AAC v1
      • Bink
      • Blu-ray (PGS) subtitle
      • MPEG-4 Audio Lossless Coding (ALS)
      • WMA Pro
      • WMA Voice
  • Highlights among the newly supported container formats:
    • demuxers and muxers
      • Adobe Filmstrip
      • SoX native format
      • WebM support in Matroska de/muxer
    • demuxers
      • Bink
      • Core Audio Format
      • Dirac in Ogg
      • IV8
      • QCP
      • VQF
      • Wave64
    • muxers
      • IEC-61937
      • RTSP
  • faster AAC decoding
  • faster H.264 decoding
  • numerous ARM optimizations
  • important updates to the Vorbis decoder
  • RTP packetization support for H.263, and AMR
  • RTP depacketization support for AMR, ASF, H.263, Theora and Vorbis
  • RTMP/RTMPT/RTMPS/RTMPE/RTMPTE protocol support via librtmp
  • the new ffprobe tool
  • VorbisComment writing for FLAC, Ogg FLAC and Ogg Speex files
  • and so much more!

We are pleased to announce that FFmpeg will be present at LinuxTag in Berlin June 9-12 where we will be showing some spectacular demos. There will also be some trolls.

We have just pushed out another point release from our 0.5 release branch: FFmpeg 0.5.2. This is a maintenance-only release that addresses a small number of security and portability issues. Distributors and system integrators are encouraged to update and share their patches against this branch.

Once again, FFmpeg has been accepted to take part in the Google Summer of Code 2010. Here is the Google SoC FFmpeg page.

We have a list of proposed project ideas available so, if you think you might be interested, head over there to see if there is any project on which you wish to work and for which you may wish to make an application. The list is still in flux, and you're free to come up with your own ideas, but note that proposals should be closely tied to the progression of FFmpeg's code base.

We would like prospective students to show us that they've got what it takes to be a contributor to FFmpeg. If you think you're suited, then please complete a small task before submitting your Summer-of-Code proposal. Note that many of the proposed Summer-of-Code projects have specific tasks that you would want to work on, since they would show us that you're comfortable in that particular piece of our codebase that relates to your specific project. Send patches to the mailing list for review, so that you will learn about our patch review process, inline replying (because we don't like top-posting on our mailing lists) and general interactions with our developer base.

The sooner you start communicating with us and working within our code base, the sooner both you and we will ascertain your suitability and you will get used to our development methodology. You have until the application deadline to complete your small task. Good luck!

We have just pushed out a point release from our 0.5 release branch: FFmpeg 0.5.1. This release fixes security, packaging and licensing issues for FFmpeg 0.5, but it is a maintenance only release; no new codecs, formats or other feature are being introduced. The full details are spelled out in the the release notes and changelog.

There have been security fixes for the ASF, Ogg and MOV/MP4 demuxers as well as the FFv1, H.264, HuffYUV, MLP, MPEG audio and Snow decoders. libswscale can now be compiled in LGPL mode, albeit with x86 optimizations disabled. Some non-free bits in a test program were replaced. The AC-3 decoder is now completely LGPL. AMR-NB/WB support is now possible in free software through the OpenCORE libraries.

To help packagers, the x264 glue code was updated to work with newer versions and symbol versioning was backported, as was the lock management API. The symbol versioning change is enabled on platforms that support it. This allows users to upgrade from 0.5.1 to the upcoming 0.6 release without having to recompile their applications. While this release is both API and ABI compatible with 0.5, please note that distributors have to recompile applications against 0.5.1 in order to make seamless upgrades to 0.6 possible.

We have been busy over the past few months. Among other things, theresults are an Indeo 5 video decoder as well as audio decoders forAMR-NB, Sipro, MPEG-4 ALS and WMA Voice, complete support for Bink,CDG and IFF PBM/ILBM bitmaps, an RTSP muxer, Blu-ray (PGS) subtitlesupport, a protocol for file concatenation and the ffprobe tool forextracting information from multimedia files.

In 1992 Sony introduced the first Minidisc player. 17 years later it is nowpossible to transfer and play back the raw ATRAC data from the actual digitaldisc with the help of FFmpeg, tools developed by theLinux Minidisc project and official hardware (MZ-RH1). So if you have lots of digitalrecordings stored on Minidisc now is the time to archive it all.

One of the last entrenchments of proprietary multimedia has fallen: Windows MediaAudio Pro support is finally available in FFmpeg. It decodes all known samplesflawlessly and is considerably faster than the binary decoder from Microsoft.A big thank you goes out to all the reverse engineers and programmers who madethis possible. It really was a herculean effort.

Just a very short time after its launch (~10 years), FFmpeg now supportsdecoding of TwinVQ (remember .vqf files?). Now FOSS enthusiasts can finallycontribute to the late 90's discussion if it sounds better than MP3 or not.

FFmpeg has removed support forlibamr as of svn revision 19365. Ithas been replaced with support forlibopencore-amr. Naturallythe configure options have changed. The libamr options have been removed andthere are two new options to take their place:

  • --enable-libopencore-amrnb
  • --enable-libopencore-amrwb

The reason for this change is that the libamr license was non-free, whilelibopencore-amr is licensed under an Apache 2 license. The change wasdiscussed at length on the developer mailing list during May, June, andJuly. This has several effects:

  • You may now distribute FFmpeg builds with support for dynamically loading libopencore-amr
  • Support for AMR-WB encoding has been removed since libopencore-amr does not support it

FFmpeg was granted 9 slots to fill with applicants. After the gruellingapplication and qualification process, we will be running the following tasksthis year:

  • RTMP Support
    • Student: Kostya Shiskov
    • Mentor: Ronald Bultje
  • Libswscale Cleanup
    • Student: Ramiro Polla
    • Mentor: Reimar Döffinger
  • S/PDIF Multiplexer
    • Student: Bartlomiej Wolowiec
    • Mentor: Benjamin Larsson
  • Playlist/Concatenation Support
    • Student: Geza Kovacs
    • Mentor: Baptiste Coudurier
  • JPEG2000 Codec
    • Student: Jai Menon
    • Mentor: Justin Ruggles
  • Implement the New Seeking API in Libavformat
    • Student: Zhentan Feng
    • Mentor: Baptiste Coudurier
  • MPEG-4 ALS Decoder
    • Student: Thilo Borgmann
    • Mentor: Justin Ruggles
  • Implementation of AVFilter infrastructure and various audio filters
    • Student: Kevin Dubois
    • Mentor: Vitor Sessak
  • Finish AMR-NB decoder and write an encoder
    • Student: Colin McQuillan
    • Mentor: Robert Swain

Congratulations to all the successful applicants. Work hard, communicate welland prosper! Good luck!

Once again, FFmpeg has been accepted to take part in theGoogle Summer of Code 2009.Here is theGoogle SoC FFmpeg page.

We have a list ofproposed project ideas available so, if you think you might be interested,head over there to see if there is any project on which you wish to work and forwhich you may wish to make an application. The list is still in flux, and you'refree to come up with your own ideas, but note that proposals should be closelytied to the progression of FFmpeg's code base.

If you're a student who thinks you have what it takes, we require thatprospective students complete some degree ofsmalltask before they will be considered to take part in the program for FFmpeg.Take a look at the list, pick something to do, learn aboutinlinereplying because we don't like top-posting on our mailing lists and thentell us on the FFmpeg-devel mailing list your smalltask of choice.

The sooner you start communicating with us and working withinour code base, the sooner both you and we will ascertain your suitability andyou will get used to our development methodology. You have until the applicationdeadline to complete your small task. Good luck!

A new mailing list has been created for ffserver users. The list is intended tocreate an environment for discussion amongst ffserver users so that they canbetter receive support and support each other. Interested parties can subscribeand view the archives via the contact page.

Mar 10 2009

It has been a very long time since we last made a release and many did not thinkwe would make one again but, back by popular demand, we are proud to announcea new release: FFmpeg 0.5. Check outthe release notes andchangelog.

It is codenamed "half-way to world domination A.K.A. the belligerent blue bikeshed" to give an idea where we stand in the grand scheme of things and tocommemorate the many fruitful discussions we had during its development.

This release includes a very extensive number of changes, but some of thehighlights are:

  • Significant work to support at least decoding of all widespread mainstreamproprietary codecs, such as:
    • decoders and encoders
      • ALAC
      • Flash Screen Video
      • WMAv2 decoder fixed, WMAv1/v2 encoder
    • decoders
      • Atrac3
      • MLP/TrueHD
      • On2 VP3 improvements and VP5/VP6 support
      • RealAudio Cooker and fixes for 14.4 and 28.8
      • RealVideo RV30/40
      • WMV3/WMV9/VC-1 and IntraX8 frame support for WMV2/VC-1
  • Broad coverage of widespread non-proprietary codecs, including:
    • decoders and encoders
      • DNxHD
      • DVCPRO50 (a.k.a. DV50)
      • Floating point PCM
      • GSM-MS
      • Theora (and encoding via libtheora)
      • Vorbis
    • decoders
      • AAC with ADTS support and >2x the speed of FAAD! (no HE AAC support yet)
      • AC-3 that is faster than liba52 in 5.1, up to 2x faster in stereo and also supports E-AC-3! Hence liba52 is now obsolete.
      • DCA
      • DVCPRO HD (a.k.a. DV100)
      • H.264 PAFF and CQM support, plus slice-based multithreaded decoding
      • Monkey's Audio
      • MPEG-2 video support for intra VLC and 4:2:2
      • Musepack
      • QCELP
      • Shorten
      • True Audio (TTA)
      • WavPack including hybrid mode support
  • Highlights among the newly supported container formats:
    • demuxers and muxers
      • GXF
      • MXF
    • demuxers
      • NullSoft Video (NSV)
    • muxers
      • iPhone/iPod compatibility for MP4/MOV
      • Matroska
      • NUT
      • Ogg (FLAC, Theora and Vorbis only)
      • ShockWave Flash (SWF)
  • libavdevice
  • ffserver is working again.
  • a shiny, new, completely revamped, non-recursive build system
  • cleaner, more consistent code
  • an all new metadata API
  • and so much more!

Google are again running their Summer ofCode program and, as usual, we will be applying for a project position. Assuch we will need strongproject proposals and qualification tasks for the students to complete.

To all the students out there who want to work on FFmpeg over the summer, thesooner you begin to contribute to the project the better. Working on digitalmultimedia software is not the easiest task and getting code into FFmpeg's trunkrepository demands significant rigor and commitment.

Until we are officially accepted into the program, you could take a look at thelist ofsmalltasks we have and try to complete one of those. Support for development ofFFmpeg is available via the FFmpeg-devel mailing list orIRC.

The FFmpeg project would like to recognizeand thank the people at Picsearchfor their help improving FFmpeg recently. The Picsearch team makes extensiveuse of FFmpeg and provided feedback to FFmpeg in the form of thousands of filesthat either crash FFmpeg or use unsupported/unknown codecs. The FFmpegdevelopment team is putting this information to work in order to improveFFmpeg for everyone.

We know that there are other organizations using FFmpeg on a large scaleto process diverse input types. The FFmpeg team invites thoseorganizations to provide similar feedback about problems encountered inthe wild.

A bunch of new formats have recently beenadded to FFmpeg, namely a QCELP/PureVoice speech decoder, a floating pointPCM decoder and encoder, a Nellymoser ASAO encoder, an Electronic Arts TGQdecoder, Speex decoding via libspeex, an MXF muxer, an ASS/SSA subtitle demuxerand muxer and our AC-3 decoder has been extended with E-AC-3 support. Last butnot least we now have a decoder for RealVideo 4.0.

FFmpeg is undergoing major changes in itsAPI/ABI. The last valid revision for libavcodec version 51 is r15261.

The AAC decoder from FFmpeg Summer of Code2006 has finally been cleaned up and is now in FFmpeg trunk. It supports Mainand Low Complexity profile AAC but does not yet support HE AAC v1 (LC + SBR) orv2 (LC + SBR + PS), though implementation of this support is underway. It isconsiderably faster than FAAD and you should expect further performanceimprovements and bug fixes in the coming weeks.

Also, FFmpeg now has floating point PCM support and supports MLP/TrueHD decoding(FFmpeg SoC 2008 should bring us an encoder), Apple Lossless Audio encoding(FFmpeg SoC 2008) MVI demuxing and Motion Pixels Video decoding, D-Cinema audiomuxing, Electronic Arts CMV and TGV decoding and MAXIS EA XA demuxing/decoding.

UAB "DKD" (dkd.lt) have released a NellymoserASAO compatible decoder andencoder under the LGPL. This will aid the development of a native encoder inFFmpeg, and right now a GSoC student is working hard on just that task. A greatthanks to UAB "DKD" for this contribution to the FFmpeg community.

We have added an Oma demuxer, the QuickTimevariant of an IMA ADPCM encoder, a VFW grabber, an iPod/iPhone-compatible MP4muxer, a Mimic decoder, an MSN TCP Webcam stream demuxer as well as demuxersand decoders for the following fringe formats: RL2, IFF, 8SVX, BFI.

We have added Ogg and AVM2 (Flash 9)SWF muxers, TechnoTrend PVA and Linux Media Labs MPEG-4 (LMLM4) demuxers,PC Paintbrush PCX and Sun Rasterfile decoders.

FFmpeg now supports XIntra8 frames,meaning that finally all WMV2 samples and some WMV3 samples that showedblocky color artifacts can be decoded correctly.

Beam Software SIFF demuxer and video decodersupport added.

FFmpeg gets support for the Nellymoserspeech codec used in flash.

Apart from a DNxHD encoder, PAFF decodingsupport for H.264 was committed to SVN.

AMV audio and video decoding has arrived.

In about half a year of work since thelast update we have added among other things: DXA and Monkey's Audio demuxerand decoder, DNxHD, Atrac3 and AC-3 decoders, QTRLE encoder, NUT and Matroskamuxers.

FFmpeg got 8 projects this year in the Google Summer of Code program.

Nine months without news but with heavydevelopment. A few select highlights are decoders for VC-1/WMV3/WMV9, VMware,VP5, VP6 video and WavPack, IMC, DCA audio and a WMA encoder.