GSoC/GCI Archive
Google Summer of Code 2015


License: GNU Library or "Lesser" General Public License (LGPL)

Web Page:

Mailing List:

FFmpeg is the leading multimedia framework, able to decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created. It supports the most obscure ancient formats up to the cutting edge. No matter if they were designed by some standards committee, the community or a corporation.

FFmpeg provides: libavcodec, libavutil, libavformat, libavfilter, libavdevice, libswscale and libswresample which are used by third party applications and even higher elevel multimedia frameworks like GStreamer. FFmpeg also includes the command line utilities: ffmpeg, ffserver, ffplay and ffprobe which are used by end users for transcoding, streaming and playback of multimedia content.


  • AAC Encoder Improvements Currently, the ffmpeg project hosts an incomplete implementation of an AAC encoder. This encoder has features missing, along with being lower quality than alternative free and non-free implementations. To be able to compete with such implementations of the AAC format, there are features that need to be implemented: perceptual noise substitution, intensity stereo, and others. The aim is to implement these features inside ffmpeg's AAC encoder such that eventually it could be considered stable.
  • Animated Portable Network Graphics (APNG) Implement APNG output support and improve the compression options available for PNG
  • Basic servers for network protocols The goal of this project is to implement basic serving capabilities for the network protocols used for multimedia streaming present in libavformat.
  • Browsing content on the server Provide FFmpeg with methods for browsing files and directories on remote locations.
  • directshow digital video capture As FFmpeg lately added support for analogue capture cards, the same thing should be done for the digital tuners. This project focuses on adding support to DVB and DV capture sources, allowing for tuning the device and the compressed streams to be identified and handled by FFmpeg.
  • Implementing full support for 3GPP Timed Text Subtitles The standard subtitle format used in MP4 containers is 3GPP timed text. It is the only subtitle format supported in Apple's media players on OS X and iOS. As such it is important for FFmpeg to support the format as fully as possible. Currently, it supports only a limited subset of the format. For this project, the goal would be to implement complete support for these features and have the implementation fully reviewed and merged into FFmpeg.
  • libswscale refactoring This project aims to refactor libswscale so that its internal API be more clean and modular improving its maintainability.