Everyone has their own special reasons for falling in love with the open source community. For Liu QiTo me, this is a techno-crazy paradise.

Students who have played with audio and video technology must be familiar with the name Wukong.Goku LiuDisagreementFFmpeg official consultant, Maintainer, one of the most active contributors in the FFmpeg community, and the author of “FFmpeg from entry to mastery”.

FFmpeg – old open source project, the foundation of universal player.liuDisagreement— Programmers who like technology and just want to discuss technical issues.

The “bond” between the two comes from LiuDisagreementDissatisfied with a technical “flaw”, in order to solve an unreasonable function of FFmpeg in his own eyes, LiuDisagreementStarted the journey in the FFmpeg community. The governance of the FFmpeg community belongs to the Liberal Contribution model. Personal influence depends on the amount of contribution. Major decisions are made based on consensus, and everything depends on the code.There is no doubt that for Liu who only loves technologyDisagreementIt’s a good place.Discuss technology with community members, solve bugs together, and submit some new codes from time to time.DisagreementA unique and effective way to relax outside of work and life. In this way, Liu Qi gradually took root and grew in the open source community…

University graduate, LiuDisagreementTo work for a company that makes over-the-air recharge terminals. Here, he officially embarked on his own open source journey.

At that time LiuDisagreementThe company’s self-developed circuit board transplanted the Linux operating system, LiuDisagreementParticipated in the work of writing drivers for the system. Naturally, he also encountered various bugs that all programmers will encounter. In order to solve problems that may arise at any time, LiuDisagreementStart asking seniors for help. Linux Kennel Chinesemailing list become liuDisagreementsolution channel.

Linux Kennel Chinesemailing list to liuDisagreementFirst impression left was of “enthusiasm”: “Basically you post a question and people respond right away. Probably because of the mailing listjust established, Everyone must be very happy to see that a newcomer finally joined in to ask questions, and they want to reply immediately. “Out of an overall good community experience and passion for technology, LiuDisagreementGet started long-term in this open source software mailing list communityDiving learning, occasionally encounter problems will ask everyone for advice.

If the first job was given to LiuDisagreementOne reason to enter the open source community, then the second job brought him an opportunity to take root in the community.

liuDisagreementIn the second job, I mainly do graphics and image processing.By chance, during a chat with a colleague, LiuDisagreementI found that the other party was very different from myself in many aspects of basic technical knowledge and technical vision, “I feel that his technology is very solid.”The reason is that this colleague is deeply involved in BSD code development and maintenance.

this provoked liuDisagreementThe interest in deeply participating in an open source project – not only to exchange technology with my colleagues, not only limited to the business scope of my company, but to discuss a wider range of technical issues with more people, thus To improve your technical vision.

For a commercial company, the code requirements are often to meet the current business needs, and seldom consider whether these codes can have a longer life cycle, whether they are elegant enough, and so on. But in the open source community, programmers from all walks of life communicate and collide with each other, which gives the software a hotbed for continuous growth.

Soon after he had the idea of ​​deeply participating in open source projects, LiuDisagreementstart cloudstorage, cloudThe transcoding system works, using FFmpeg, when encountering problems, LiuDisagreementLike the way to solve bugs in the Linux Kennel Chinese community, go to the FFmpeg community to search whether anyone has encountered the same problem and how to solve these problems. “The first feeling when encountering a problem is that this problem is definitely not the first If I encounter one, then I will definitely be able to find related content or patches on the Internet or on the mailing list.”

At the same time, LiuDisagreementHe also began to try to deeply participate in the FFmpeg community. He will observe how members of the community communicate with each other, what is the process of submitting patches, and so on. In his own words, “It took me 2 years just to understand this community.” Gradually, he found that many problems had not been resolved or mentioned in the community. The opportunity comes at this time.

In the first half of 2014, LiuDisagreementI contacted a customer who needs to use FFmpeg to do HLS slice.At that time, when using FFmpeg to slice, there was a parameter for CDN Not friendly enough. At that time, the slicing principle of FFmpeg would generate slices 1, 2, 3, and 4 in sequence, and roll back to slice 1 after the end of slice 4. The length of each slice is 2 seconds, so the 8th-10th second video slice will be marked as sequence number 1.This results in CDN , there is a problem with the length of the cache. When the user finishes playing 0-2 seconds of 1.ts later, the first video should be refreshed, but it is not, then the user plays to 8-10 seconds of 1.ts, the content of 0-2 seconds is still played. Coupled with the impact of the accuracy of the time stamp, the video will be stuck, and then jump to a new screen after a period of time, which greatly affects the user’s perception.

“This is a non-standard way of handling.” In fact, this question LiuDisagreementThis is not the first time he has encountered it. He will try to give feedback to customers and suggest that instead of rolling back, it should be generated incrementally. But this brings a new problem – accounting for storage.The way of rollback is to save storage, not to write in endlesslynewdocument.

Not only that, the customer also believes that since FFmpeg provides this operation option, it is reasonable if it exists, and it can be used.

liudifferent beforeI also tried to provide improvement suggestions to the FFmpeg community, “I mentioned hevc in flv. At the end of 2013, many domestic companies began to use this technology, but when I mentioned this Patch to the FFmpeg community, the people in the community were Opposed, because there is no corresponding reference standard, so this method is not accepted.”

In the eyes of a technical control, this kind of “flaw” in technical functions is not easy to get rid of, and the reason why the FFmpeg community refuses to improve does not make LiuDisagreementconcession.

“My concept at that time was that FFmpeg was also written by humans, and the options were determined by humans, so I might be that person.” So, LiuDisagreementDetermined to join FFmpeg maintenanceBylist, and “kill that option”.

To remove features, you must first become a maintainer.

In the FFmpeg community, a maintainer usually needs to commit frequently firsthigh qualityThe code is “familiar” in the community and has gained a certain degree of recognition.nexttalentmay beeveryoneInvite to become a maintainer, or apply to become a maintainer yourself.

Following this path, LiuDisagreementStart brushing Patch. Frequent code submissions attracted the then chief maintainer of FFmpeg, Michael’s gaze. However, Michael’s attention to Liu at the momentDisagreementIt is a kind of “torture”.

“He frequently troubles me, keeps denying me, and often fails the test when I mention Patch.”DisagreementThe blow was very big. Now when we talk about creating a good open source community atmosphere and retaining fresh blood, we often think that we need to give new contributors more patience, more detailed and polite guidance, appropriate encouragement, and so on.Obviously, Liu at the timeDisagreementWhat I encountered was a difficult script: “That kind of environment basically means that you are deliberately making things difficult for me. If you put it on many people, you will definitely stop doing it. But my goal at the time was very clear. I just wanted to be a maintainer, that is, If you want to make this happen, do whatever you want to make things difficult for me.”

MichaEl’s “difficulty” looks more like Liu’s in hindsightDisagreementAdvanced test. For example, when pointing out a problem, Michael will also pay attention to LiuDisagreementWhether you have the ability to solve problems, in LiuDisagreementWill patiently guide on problems that cannot be solved.After coming and going, the communication between the two gradually increased.DisagreementThe ability to master FFmpeg is also improving day by day.

One day Michael asked liuDisagreement: Interested in becoming a maintainer?

“How could I refuse such a tempting thing!” Excited LiuDisagreementI also deliberately sent screenshots of this “historic” moment to my friends.

That’s it, LiuDisagreementBecame one of the maintainers.He remembered a little story he once read, when you pulled out a carrot and found a special rootDisasterWhen pulled, this radish may be a very large radish, and you,Bundleitafter pulling it outThere will also be great gains. “Wanting to be a maintainer at the time was probably pulling the hardest carrot.”

In 2016, LiuDisagreementIn his first year as a maintainer, one of the first things he did was mark the slice function as “deprecated”. It has taken him 2 years to get here.

According to the regulations of the FFmpeg community, when a function is deprecated, users need to be warned in advance, and a replacement solution will be provided when the next major version is updated, and the old version will not be offline.liuDisagreementSeveral new functions are provided: For example, old clips can be deleted during live broadcast, so that there is no need to use the rollback method, which can also save storage space. But for users, it takes time to replace new versions and new functions. Until today, FFmpeg users are still using the old API interface.to liuDisagreementIt’s been a battle that’s been going on for 8 years and is still going on…

In the process of “deprecating” slice functionality, LiuDisagreementHas been busy in the FFmpeg community.From submitting patches frequently to becoming the maintainer of a single module, as more and more modules are maintained, LiuDisagreementGradually becoming a general maintainer, in 2017, being elected as a Maintainer and consultant became a matter of course.

Compared with the maintainers of each module, the Maintainer has wider authority and will help maintainers of different modules to review together. Compared with Maintainer, the identity of a consultant is not only an identity mark within the community, but more importantly, it can represent the FFmpeg community to accept some consulting work, such as providing paid consulting services to the world and so on.

Italy 2017Havea familyDo Serie A copyright contentmakes companyI used FFmpeg when making video content, and encountered a problem with the interface, so I sent an email to Liu Qi for help.Liu Qi has encountered some such consultations one after another, and the cost is about 200 US dollars per hour.and of course, sometimes help for free.

This made Liu Qi see the need for an online audio and video editing tool, and he came up with the idea of ​​making a special editing tool. In 2017, a partnership invitation from a friend made this idea come to fruition, and Liu Qi and his friend set up a companyTogetherAs an editing tool, at that time,A central mediais one of their clients.Although this venture ended with the acquisition of Kuaishou, after that, the FFmpeg community undoubtedly became LiuDisagreementAs a technical person’s spiritual “paradise”.

After becoming part of the programmer team of a commercial company again, LiuDisagreementFocus more on the companyAudio and video basic technical supportbriefly “disappeared” from the FFmpeg community.

“After a while, I found it too tiring, so I would go to the FFmpeg community to see the latest architecture, code development, etc., or see if there are any functions that can be added, and I will give support.” Every time I pay attention to FFmpeg When in the community, Liu Qi will submit codes frequently, “It’s equivalent to swiping the screen. Because when you write codes, you can concentrate on thinking, and after you finish writing, you can mention Patch and communicate with everyone. The process is very enjoyable.enjoyableYes, I’m really addicted. “

“Many people in the community are in this state.” Many of FFmpeg’s maintainers are amateur maintainers like Liu Qi. The people who do this development come from various professions, such as quantum physics.PhD,University teacheretc. When everyone gathers for the same technology, there is a strong attraction to individuals. “The thing that attracts me most about open source is to discuss technology with others, because I am a talkative person and like to communicate with others. I am communicating with others. I can refresh my cognition and learn a lot.”

2019,Liu Qi accepted FFmpeg sponsorship for the first time to participate in the GSoC Mentor Summit, and took a photo with FFmpeg veteran Carl Eugen

“Frankly speaking, the FFmpeg community has no governance.” LiuDisagreementI don’t like to discuss too much about things other than technology. It just so happens that the FFmpeg community is also very interested in him.

This 20-year-old veteran open source project community has always been very low-key and has developed steadily. Even the only “split” ended with a handshake between the two parties. FFmpeg is a project initiated by French programmer Fabrice Bellard in 2000, and Fabrice Bellard submitted the first Commit. The “FF” in the word FFmpeg refers to “Fast Forward (fast forward)”. MPEG is an organization that formulates international standards and is responsible for formulating specifications for audio and video compression and transmission.

From 2004 to 2015, Michael Niedermayer served as the lead maintainer, with the highest decision-making power in the community. However, Michael’s management gradually aroused dissatisfaction among some people. In 2011, some maintainers left and established another branch Libav. Later, Libav gradually developed into the best solution for playing 4K HDR Blu-ray on PC. The negative effect of the split is that the FFmpeg project has entered an uncertain period, and the branch Libav was once more active and dynamic than FFmpeg, so Debian and its derivative distributions have switched to Libav.

But in 2015, the Debian project announced to replace Libav with FFmpeg, mainly because FFmpeg was updated more timely. At the time, the Libav project developers accused Michael of embezzling their work by merging Libav’s code into FFmpeg. Cause Libav to fail in the competition with FFmpeg.Of course, Michael’s supportersandDisagree with this statement.

Because he didn’t want to see the two projects split completely, this incident ended with Michael’s resignation. Michael stated in his resignation letter that he hoped that the two communities would eventually merge and Libav could rejoin FFmpeg.

“Slowly, many people came back one after another, and the codes of the two communities began to merge.” Liu at the timeDisagreementWitness the final reconciliation between the two parties. Since then, the FFmpeg community has never set up the position of chief maintainer.

in liuDisagreementIt seems that members of the community gather together to make FFmpeg better. There is no commercial purpose or interest at all. Therefore, decision-making and development depend entirely on technology.

“You want to do one thing, after the code is uploaded,everyoneMerged directly without explicitly commenting. “LiuDisagreementIntroduction, everyone has no management philosophy, and only judges whether this matter can be done. If someone has objections to the submitted code, they will often point out what is wrong. If the suggestion is reasonable, the person who proposed the code will modify it.

The FFmpeg community has also thought about establishing some community rules.

Like most open source communities, everyone can express their opinions and opinions, which will inevitably lead to quarrels.According to LiuDisagreementRecall that the atmosphere of the FFmpeg community is very open, but it used to be more harmonious. As more people joined later, the cultural backgrounds of the members were different, and there would often be some personality attacks, and there would be unreasonable denials during communication. The status of the work of others arises from time to time.

Therefore, in 2019, when FFmpeg community members held an offline exchange meeting in Tokyo, everyone felt that a community committee should be established to reconcile this contradiction.SimultaneouslyThen set up a technical committee to discuss technology selection.

These two ideas laterIt is also more Buddhist in executionwith LiuDisagreementIn other words, “it’s not there yetthe point. “sameBuddhismThere’s also the FFmpeg column of shame.

FFmpeg provides a series of functions such as video decoding, encoding, and post-processing, and has perfect support for all kinds of video and audio encoding in the world. Its powerful functions make it a solution for many video players on the market. However, FFmpeg has also become one of the open source software whose codes have been stolen the most. Many famous playback software are the thieves of FFmpeg codes. FFmpeg will publicly publish the names of the software it finds that do not comply with the open source agreement, and its list is called the “pillar of shame”. The FFmpeg community did not actually pursue the responsibility of the offending project, and the “pillar of shame” is also 2011 Year stopped updating.

in liuDisagreementFrom the perspective of FFmpeg, the FFmpeg community actually doesn’t care much about events outside of this type of technology. In his personal opinion, the number of users of open source projects is huge. If there are too many investigations, more than one billion users may be involved. Moreover, many new functions of FFmpeg cannot be copied by plagiarists. “So we are more Buddhist about this matter.”

FFmpeg community to LiuDisagreementHis gift is also reflected in many ways.For example, the FFmpeg community communication atmosphere mentioned above is often full of gunpowder, but for LiuDisagreementMost of the time they are very friendly and point out problems candidly and directly.such as liuDisagreementIf the logic of a certain part of the code is really not considered thoroughly, they will clearly tell him that the logic of this place is not considered clearly, and it is not an attack. “I have more contact with the smell of gunpowder, but I am aNot too concerned or even negligiblePeople with self-esteem, many times I think it is a good thing that the smell of gunpowder is stronger, at least everyone respects me more, and there will be no particularly serious personality attacks. “

In the open source community, LiuDisagreementI also made good friends, “These friends will also provide me with a lot of help, for example, when I need certain information, through the community, everyone will provide me with the information I want to know,When I want to do a certain function, I can also communicate with you, and they are also happy to provide me with some support. “

All in all, this open source story that belongs to technology control is in progress happily.

Group photo of FFmpeg community members during the 2019 Tokyo offline exchange meeting

【Tracing】In each conversation, retrace the stories about open source and meet the open source people who are geeks, free, and stick to it.

News Fast Delivery launched the open source character interview column[Tracing Source].

Traceability means to trace back to the source and solve for open source. Ask how the canal is so clear, because there is a source of flowing water. Every open source participant is the freshest source of the wave of open source. All open source stories together build the open source world we see today.

In the decades when open source first emerged, hacker groups working for open source suffered indifference and rejection from the mainstream of society. Even if the current software industry has shouted the slogan of “embracing open source”, the problem still exists.

We don’t know how many obstacles open source contributors, open source evangelists, and everyone involved in open source will face, but what gives us confidence is that more people are joining the cause of open source.

Therefore, News Fast Delivery hopes to face the developer community, find everyone who actively participates in open source and has ideas about open source, understand them and their open source stories, and spy on the development rules of open source careers in the stories.

[Tracing the source]series of articles:

Appropriate : Become an open source evangelist

Wei Jianfan: The “outsider” of the open source circle

“Tool Man” Zhao Shengyu: Qingbei Master, resigned from Ali to Tongji for open source

Wu Sheng: Open source is the most important thing for me

#Wukong #Liu #Technical #flaws #eliminated #open #source #community #code #speaks #Yijuns #personal #space #News Fast Delivery

Leave a Comment

Your email address will not be published. Required fields are marked *