{"id":703,"date":"2026-09-06T15:22:57","date_gmt":"2026-09-06T18:22:57","guid":{"rendered":"https:\/\/www.linuxpro.com.br\/2026\/09\/a-historia-do-ffmpeg\/"},"modified":"2026-09-08T08:29:11","modified_gmt":"2026-09-08T11:29:11","slug":"a-historia-do-ffmpeg","status":"publish","type":"post","link":"https:\/\/www.linuxpro.com.br\/en\/2026\/09\/a-historia-do-ffmpeg\/","title":{"rendered":"The history of FFmpeg"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" alt=\"Mascote do LinuxPro operando a mesa de edi\u00e7\u00e3o diante da onda sonora, com a tira de filme e os \u00edcones de convers\u00e3o de formato\" src=\"\/wp-content\/uploads\/2026\/09\/ffmpeg-historia-v2.webp\" width=\"1052\" height=\"652\" \/><\/p>\n<p>Every video you watched today \u2014 on YouTube, on WhatsApp, on streaming TV \u2014 almost certainly passed through <strong>FFmpeg<\/strong> at some point along the way. It is probably the most widely used and least known software on the planet: an audio and video toolbox that became the internet's invisible infrastructure. This is its story \u2014 from the brilliant French hacker who created it to the fork that split the community, to the present in which a handful of volunteers supports the world's video.<\/p>\n<h2>2000: the birth of a \u201cfast MPEG\u201d<\/h2>\n<p>FFmpeg appeared in <strong>2000<\/strong>, published by a certain \u201cG\u00e9rard Lantau\u201d \u2014 a pseudonym for <strong>Fabrice Bellard<\/strong>, one of the most legendary programmers of our era (he would later create QEMU, Tiny C Compiler, and records for calculating \u03c0). The name combines \u201cFF\u201d from <em>fast forward<\/em> with MPEG, the compression standard of the time. The proposal was bold: instead of relying on scattered proprietary codecs, implement decoders and encoders from scratch, in pure C, in a single library \u2014 <strong>libavcodec<\/strong>.<\/p>\n<p>Around it grew the family we know: <strong>libavformat<\/strong> (containers and muxing), <strong>libswscale<\/strong> (color conversion and scaling), <strong>libavfilter<\/strong> (filters and effects) and the three everyday executables \u2014 <code data-no-translation=\"\">ffmpeg<\/code>, <code data-no-translation=\"\">ffprobe<\/code> and <code data-no-translation=\"\">ffplay<\/code>.<\/p>\n<h2>The Niedermayer era<\/h2>\n<p>Bellard is the kind of person who creates projects and moves on to the next one. In <strong>2004<\/strong>, leadership passed to <strong>Michael Niedermayer<\/strong>, who for more than a decade was synonymous with FFmpeg: obsessive optimizations, support for obscure formats nobody else would implement, and a policy of \u201cdecode everything, including broken files\u201d that made the project the ultimate Swiss Army knife. MPlayer, VLC, and virtually every Linux video player were built on libavcodec.<\/p>\n<h2>2011: the Libav fork \u2014 the civil war<\/h2>\n<p>In January <strong>2011<\/strong>, a group of developers unhappy with Niedermayer's leadership style took a drastic step: a fork. This gave birth to <strong>Libav<\/strong>, taking many of the active committers with it. The confusion was epic: <strong>Debian and Ubuntu adopted Libav<\/strong>, the command <code data-no-translation=\"\">ffmpeg<\/code> disappeared from distributions and was replaced by <code data-no-translation=\"\">avconv<\/code>, and millions of users spent years typing <code data-no-translation=\"\">ffmpeg<\/code> only to receive a confusing \u201cdeprecated\u201d warning.<\/p>\n<p>Meanwhile, Niedermayer was doing something insane: <em>merging daily<\/em> all of Libav's work back into FFmpeg, while also developing his own. The result: FFmpeg had everything Libav did and more. The war ended in exhaustion \u2014 <strong>Debian returned to FFmpeg in 2015<\/strong>, Ubuntu followed, and Libav dwindled until it stopped. That same year, Niedermayer stepped down from leadership to calm tensions, remaining a prolific committer to this day.<\/p>\n<h2>The invisible infrastructure of the world's video<\/h2>\n<p>The list of FFmpeg users is the list of everyone working with video: <strong>YouTube<\/strong> processes uploads with it, <strong>Chrome and Firefox<\/strong> load it to play media, <strong>VLC, OBS, Kodi, HandBrake, and Plex<\/strong> are interfaces built around it, and it runs embedded in everything from smart TVs to security cameras. When modern codecs arrived \u2014 <strong>H.264, HEVC, VP9, AV1<\/strong> \u2014 it was the combination of FFmpeg + allied projects (x264, x265, dav1d) that put them in everyone's hands.<\/p>\n<p>That ubiquity comes at a price: because FFmpeg opens <em>any<\/em> file, it became a prime target for fuzzing and security research. Hundreds of CVEs later, the project maintains one of the fastest patch cycles in open source \u2014 it has to, because a bug in libavcodec is a bug in half the internet.<\/p>\n<h2>Modernization: FFmpeg 5, 6, and 7<\/h2>\n<p>After years of conservative releases, the project picked up speed: <strong>FFmpeg 5.0<\/strong> (2022) cleaned up historical APIs; <strong>6.0<\/strong> (2023) standardized the annual major release cycle; and <strong>7.0<\/strong> (2024) brought the most visible change in decades \u2014 the <strong>multithreaded CLI<\/strong>, with demuxers, decoders, filters, and encoders finally running in separate threads. Alongside it came hardware decoding via <strong>Vulkan<\/strong>, AV1 on GPUs, and native VVC support. Assembly programming is still a living tradition in the project: critical routines have hand-optimized versions for x86, ARM\/NEON, and now RISC-V.<\/p>\n<h2>The funding drama<\/h2>\n<p>The contrast became famous: trillions of dollars in products depend on a project maintained by <strong>a few unpaid volunteers<\/strong>. In recent years, tensions became public, with maintainers openly pressing big tech companies \u2014 which report bugs as \u201ccritical to their products\u201d without contributing a penny \u2014 with the old maxim: <em>\u201csend patches\u201d<\/em>. Public funds such as Germany's <strong>Sovereign Tech Fund<\/strong> began funding maintenance work, but the numbers still do not add up. It is the classic xkcd case of a \u201cdependency maintained by some random person in Nebraska\u201d \u2014 only on a planetary scale.<\/p>\n<h2>In practice: 3 commands that solve 90%<\/h2>\n<pre data-no-translation=\"\"><code class=\"language-bash\" data-no-translation=\"\"># converter qualquer coisa para MP4\/H.264 com qualidade sensata\nffmpeg -i entrada.mkv -c:v libx264 -crf 22 -preset medium -c:a aac saida.mp4\n\n# extrair o \u00e1udio sem recodificar\nffmpeg -i video.mp4 -vn -c:a copy audio.m4a\n\n# inspecionar um arquivo (codecs, bitrate, streams)\nffprobe -hide_banner video.mp4<\/code><\/pre>\n<h2>Timeline<\/h2>\n<ul>\n<li><strong>2000<\/strong> \u2014 Fabrice Bellard creates FFmpeg (under the pseudonym \u201cG\u00e9rard Lantau\u201d)<\/li>\n<li><strong>2004<\/strong> \u2014 Michael Niedermayer takes over leadership of the project<\/li>\n<li><strong>jan\/2011<\/strong> \u2014 The Libav fork splits the community; takes many of the committers<\/li>\n<li><strong>2011\u20132015<\/strong> \u2014 Debian and Ubuntu adopt Libav (avconv command); Niedermayer merges Libav into FFmpeg daily<\/li>\n<li><strong>2015<\/strong> \u2014 Debian returns to FFmpeg; Libav dwindles; Niedermayer steps down from leadership<\/li>\n<li><strong>2022<\/strong> \u2014 FFmpeg 5.0: cleanup of historical APIs<\/li>\n<li><strong>2023<\/strong> \u2014 FFmpeg 6.0: annual major release cycle<\/li>\n<li><strong>2024<\/strong> \u2014 FFmpeg 7.0: multithreaded CLI, Vulkan decoding, VVC support<\/li>\n<\/ul>\n<h2>The lesson of 25 years<\/h2>\n<p>FFmpeg proved that a well-written C library, with no marketing and no company behind it, can become more essential than any commercial product in its field. It survived a hostile fork, codec patent wars, and its own success. If you work with Linux and media, mastering <code data-no-translation=\"\">ffmpeg<\/code> on the command line remains one of the best returns per hour of study available. And it is further proof of the idea running through <a href=\"\/en\/2026\/09\/linux-35-anos\/\">Linux and its 35 years<\/a>: the infrastructure driving the digital world is almost entirely free software maintained by a few hands.<\/p>","protected":false},"excerpt":{"rendered":"<p>Every video you watched today \u2014 on YouTube, WhatsApp, or streaming TV \u2014 almost certainly passed through FFmpeg somewhere along the way. It is probably the most widely used and least-known software on the planet: an audio and video toolkit that became invisible internet infrastructure. This is its history \u2026 <a title=\"The history of FFmpeg\" class=\"read-more\" href=\"https:\/\/www.linuxpro.com.br\/en\/2026\/09\/a-historia-do-ffmpeg\/\" aria-label=\"Read more about A hist\u00f3ria do FFmpeg\">Read more<\/a><\/p>","protected":false},"author":0,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[45,2,111],"tags":[345,37,346,112,344],"class_list":["post-703","post","type-post","status-publish","format-standard","hentry","category-desenv","category-linux","category-opensource","tag-codecs","tag-ffmpeg","tag-multimidia","tag-opensource","tag-video"],"_links":{"self":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/703","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/comments?post=703"}],"version-history":[{"count":4,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/703\/revisions"}],"predecessor-version":[{"id":1195,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/posts\/703\/revisions\/1195"}],"wp:attachment":[{"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/media?parent=703"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/categories?post=703"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.linuxpro.com.br\/en\/wp-json\/wp\/v2\/tags?post=703"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}