Why did the open source multimedia tools 'FFmpeg' and 'Libav' split?



FFmpeg , which has been under development since 2000, is a codec tool developed as open source, and is free software for recording, converting, and playing back video and audio. The development system of FFmepg has a history of being split into two projects, FFmpeg and Libav, in 2011, and bµg , an engineer related to graphics and art, explains this on his blog.

The FFmpeg/Libav situation
http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html



When the development project of FFmpeg started, the development project of MPlayer , an open source media player, started at the same time. FFmpeg is a collection of libraries and tools for converting and playing audio and video, and MPlayer also uses the FFmpeg API to reduce the burden of code maintenance, so the relationship between the two projects is It's pretty deep.

In addition, FFmpeg and MPlayer have a fairly close relationship in the development community itself, with both repositories hosted on the same server and many developers participating in both FFmpeg and MPlayer. At that time, Mr. bµg seems to belong to the development community of MPlayer.



Michael Niedermayer was the biggest figure in the FFmpeg development community at the time. Mr. Niedermayer calls himself the maintainer of FFmepg, and Mr. Niedermayer also asked the developer's mailing list for review, pushed it to the repository, and made the final technical decision.

However, the developer community gradually began to complain about Mr. Niedermayer. It seems that the developer community was divided into two, those who criticized Mr. Niedermayer and those who defended Mr. Niedermayer, and it became a civil war state, such as starting to say opinions to each other and insulting each other.

In 2010, a vote was held for the position of leader of FFmpeg, but Niedermayer remained the leader. Tired of these conflicts, some developers formed a new team on January 18, 2011 and announced that ``FFmpeg's maintainership will be handed over to the new team as of today.'' ``This was a kind of takeover, with the aim of eliminating the dictatorship of the old maintainer, but it also changed the development method and redefined the purpose,'' bµg said.

According toLibav's explanation , ``Because the project and review did not progress due to the conflict, active developers, including server administrators, tried to prepare a separate repository, but they did not actively participate in the discussion. Many people who were on the side of Mr. Niedermayer, so the conflict continued on one mailing list and IRC channel.' It is said that it is a defection after giving up on the community members who put out.



Niedermayer and the old development team tried to find a middle ground, but failed. The FFmpeg repository was hosted on the server of VideoLAN, which develops VLC Player, and finally the DNS of ffmpeg.org was rewritten to the server of VideoLAN. As a result, the new team was effectively kicked out and forced to fork ffmpeg as a 'libav development project'. Libav said, ``Since I learned that the founder of the FFmpeg development project still supports Mr. Niedermayer, I respected the opinion of the founder and renamed the site, repository, mailing list, and IRC channel under the name ``Libav''. I forked it 'properly'.'

For this reason, Libav's development policy was stipulated that ``There is no project leader'' and ``All commits must be reviewed and approved by all team members''. While maintaining a neutral stance, bµg thought this development policy was worth a try, and apparently sent a patch to both the FFmpeg and Libav mailing lists.

Libav was developed under a completely separate system from FFmpeg. Debian and Ubuntu have pushed such Libav. According toUbuntu's developer mailing list , when the developer responsible for the FFmpeg package on Debian consulted Niedermayer about binary distribution of the package in March 2011, he was dissatisfied with Niedermayer's attitude. In response to a request to merge ffmpeg-mt, which performs multithreaded processing, Niedermayer said, ``I will never merge ffmpeg-mt.'' As a result, Debian's development team, who wanted a stable version of FFmpeg's complex and often-changing API, decided to support Libav, which had a major goal of cleaning up the API.

However, according to bµg, the forced fork due to division and the competition with Libav stimulated the development project of FFmpeg. Mr. Niedermayer, who was criticized for being particularly dictatorial, changed his attitude, and ffmpeg-mt was merged on May 21, 2011 . This is one of the most positive results of the war between FFmpeg and Libav, according to bµg.

After that, in Ubuntu 15.04 released in 2015, FFmpeg, which was once removed, was revived, and Libav was removed in Ubuntu 15.10. Debian also reverted from Libav to FFmpeg with version 9.0 released in 2017. In the discussion by the Debian developer community , the reason for returning from Libav to FFmpeg is the difference in maintenance frequency that Libav's correction response is slow, while FFmpeg's correction is done quickly, and FFmpeg's API is It is mentioned that it has become stable.



In addition, Mr. Niedermayer, who can be said to be one of the causes of the confrontation, said on July 31, 2015, 'I will resign as leader of FFmpeg development kmUnity in hopes that it will be easier for the Libav development team to return to the development of FFmpeg.' Expressed on the mailing list. At the time of writing the article, Mr. Niedermayer is active as a developer of MPlayer.

in Software, Posted by log1i_yk