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 these formats were designed by some standards committee, the community or a corporation. FFmpeg compiles, runs, and passes our testing infrastructure FATE across Linux, Mac OS X, Microsoft Windows, the BSDs, Solaris, etc. under a wide variety of build environments, platforms and configurations. FFmpeg provides the libraries libavcodec, libavutil, libavformat, libavfilter, libavdevice, libswscale and libswresample to be used by applications as well as the command line tools ffmpeg, ffplay and ffprobe for direct use.
The FFmpeg libraries are utilized by various applications and services affecting the daily multimedia experience of countless end-users. Among these are media players like VLC and MPlayer, browsers including Chromium and Firefox, social media services from Facebook and Twitter to YouTube and Vimeo. Also a large user base uses the provided command line tools to directly record, manipulate and play media in all the many ways FFmpeg has to offer. If digital multimedia is part of your daily life chances are high that you are already part of the huge group of people who benefit from the FFmpeg project.
As an interested student you will have the chance to dive into a highly technical environment and demonstrate the necessary skills to develop software at a high level in terms of code quality, maintainability and security. Having a mentor on your side reduces the burdon to get you on speed working in a yet unknown codebase and community. You will be able to improve your skills, gain a lot of experience in a very interesting field and possibly contribute your own piece of a software that might have an impact on millions of users.
- Twitter: # Requirements
We welcome students interested in audio, video and multimedia technology in general. Good knowledge of the C programming language or assembler and a basic understanding of the git revision control system are required.
We expect students to pass a qualification task to get accepted. Passing this task will prove that you know how to program in C (or assembler), that you can handle git and - most importantly - that you are able to communicate with us on the mailing list and understand our sometimes complex review process.
Therefore, it is important to get in touch with us as early as possible. Your qualification task is object to the very same review process like every other patch. Usually, many iterations are needed to make a patch acceptable which will take time.
Best to prepare your proposal is to get to know our community and communication channels. Subscribe to our development mailing list and join #ffmpeg-devel on the freenode IRC network. You will already be able to gain a lot of insight about us, our rules and procedures by just following discussions on these channels.
Next, write your potential mentor an initial mail to actually dive into your application. Be elaborative about yourself and your interest in the project so that your mentor can adapt to your capabilities in the best possible way. Your mentor will then guide you through your qualification task and possibly through all the rest of a successful Summer of Code.