The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Продолжающийся конфликт между FFmepg и Libav мешает развитию..."
Отправлено opennews, 03-Июл-12 19:30 
Как известно, полтора года назад часть разработчиков проекта FFmpeg предприняла попытку передела власти (http://www.opennet.me/opennews/art.shtml?num=29316) с целью избавления от тотального контроля со стороны основного разработчика Майкла Нидермайера (Michael Niedermayer), а также для изменения методов разработки и переопределения целей. Чуть позже по разным причинам эта команда создала форк (http://www.opennet.me/opennews/art.shtml?num=29914) FFmpeg под названием Libav и начала реализовывать свои планы в виде отдельного проекта. Спустя полтора года один из разработчиков, Клемент Бош (Clément Bœsch), поддерживающий нейтральную позицию, и сотрудничающий с обоими проектами, попытался привлечь внимание (http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html) сообщества к проблема во взаимоотношении между  FFmepg и Libav.


В то время как после произошедшего форка у Libav остались серверы, система отслеживания ошибок, списки рассылки и другие ресурсы, проект FFmpeg воссоздавал себя с нуля, чему значительно помогло сообщество разработчиков VideoLAN (http://www.videolan.org/) (в частности, исходный код FFmpeg расположен на git.videolan.org (http://git.videolan.org/?p=ffmpeg.git))). Майкл Нидермайер также ввёл в обиход постоянное слияние изменений, создаваемых для Libav с кодом FFmpeg (каждые 1-2 дня). Основным итогом стало то, что форк стимулировал дух конкуренции, и FFmpeg стал, по мнению Боша, как проект, гораздо более цельным и поздоровевшим. Также, по мнению Боша, стиль поведения лидера FFmpeg, Майкла Нидермайера, полностью изменился в лучшую сторону. Это, несомненно, один из безусловно позитивных результатов этой "войны".


В остальном, наблюдается ряд существенных проблем, не только мешающих развитию обоих проектов, но и способных негативно сказаться на пользователях. По наблюдениям Боша, с самого начала разработки Libav полностью игнорирует (https://lists.libav.org/pipermail/libav-devel/2012-May/02846... FFmpeg. Это касается не только новых возможностей, но и об исправлении ошибок и устранении регрессивных изменений. При этом игнорируются сотни патчей с исправлениями. Время от времени из FFmpeg заимствуется некоторый код, но он фиксируется своеобразным способом, с полностью изменённым указанием на авторство. Некоторые примеры, собранные Бошем: ffmpeg:781fb46c5 (http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=781fb46... и libav:12d42cd7a8 (http://git.libav.org/?p=libav.git;a=commitdiff;h=12d42cd7a86... ffmpeg:a9011623e (http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=a901162... и libav:0426c69310 (http://git.libav.org/?p=libav.git;a=commitdiff;h=0426c693107... ffmpeg:788a60d9d (http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=788a60d... и libav:e58b75f7ff (http://git.libav.org/?p=libav.git;a=commitdiff;h=e58b75f7ff4... ffmpeg:e3c267053 (http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=e3c2670... и libav:15358ade15 (http://git.libav.org/?p=libav.git;a=commitdiff;h=15358ade152....

Работа, ведущаяся в FFmpeg, совершенно не признаётся, переписывается абсолютно всё. Некоторые примеры:


-  Формат вывода ffprobe. В прошлом году Бош и разработчик Стефано Сабатини (Stefano Sabatini) разработали простую систему записи с выводом в формате JSON (http://git.videolan.org/?p=ffmpeg.git;a=commitdiff;h=3fdf519... вместо INI/XML, идущего по умолчанию в ffprobe. Одновременно это улучшение было предложено и для Libav (https://lists.libav.org/pipermail/libav-devel/2011-September.... Но предложение просто взять коммиты из FFmpeg было проигнорировано. Бош и Стефано затем добавили возможность вывода в XML, CSV, TXT и в некоторых других форматах, большинство которых настраиваются (http://ffmpeg.org/ffprobe.html#Writers) с помощью опций. Они имели успех, и соответственно пользователи захотели получить такую же функциональность в Libav. Здравым решением было бы просто взять готовое решение, но вместо этого ребята из Libav решили переписать всё с нуля, с аргументами "мне это не нравится". В процессе был поломан вывод по умолчанию, и соответственно связанные с ним скрипты пользователей, а также не были сохранены имена опций, используемые в FFmpeg, чтобы пользователи смогли легко переключаться между инструментами.
-  libswresample и libavresample: в конце 2011 года, Майкл Нидермайер написал аудио-библиотеку (http://git.videolan.org/?p=ffmpeg.git;a=commit;h=b5875b91113... для ресемплинга и преобразования форматов, которую он назвал libswresample. Позже несколько разработчиков FFmpeg поучаствовали в её развитии, и затем она была интегрирована в проект (инструментарий, фильтры) и очень сильно улучшила общую поддержку аудио в FFmpeg. Как обычно, разработчики Libav полностью игнорировали libswresample в течение года, а затем наняли платного разработчика (на деньги фонда FFmtech) чтобы с нуля написать библиотеку с теми же самыми функциями, а затем попытались как-то это оправдать (https://lists.libav.org/pipermail/libav-devel/2012-April/026.... Всё это крайне расстроило пользователей. Поскольку FFmpeg повёрнута лицом к пользователям, то мы, говорит Бош, теперь предоставляем и дублирующий libavresample API (https://lists.ffmpeg.org/pipermail/ffmpeg-devel/2012-April/1....

-  Аудио-фильтры. В течение этого года в FFmpeg было интегрировано большое количество фильтров,особенно аудио-фильтров. Проект Libav проявил в итоге интерес к libavfilter, и после пары попыток написать всё с нуля, было решено вместо этого просто улучшить API. Это совершенно ясно означало, что FFmpeg был проигнорирована, а также то, что API был несколько раз сломан (http://lists.ffmpeg.org/pipermail/ffmpeg-devel/2012-May/1243.... Признавая, что Libav привнесла и несколько действительно полезных вещей, Бош порицает в этом случае очевидный синдром NIH (Not invented here (https://en.wikipedia.org/wiki/Not_Invented_Here)).

  
Основной проблемой остаётся то, что внешние проекты, желающие поддерживать, как FFmpeg так и Libav, разработчики  Libav просто бойкотируют. Похоже, что это исключительные последствия гордыни, а не чего-либо ещё, говорит Бош. Они просто не хотят признавать существование FFmpeg и хотят его исчезновения. Если разработчик хочет, чтобы какой-то код появился в Libav, его необходимо предоставить им напрямую: учитывая ежедневные слияния кода с FFmpeg и то, что большинство разработчиков не будут делать одну и ту же работу дважды, проект Libav может позволить себе игнорировать вообще всё и всё равно иметь какое-то количество входящего кода.

Почему же тогда Libav получила такое широкое распространение? Основные причины следующие: Политика пакетов. Сборщик пакетов для Debian/Ubuntu встал на сторону Libav в этом конфликте, и соответственно, в составе дистрибутива идут пакеты с Libav. Но пакет называется ffmpeg и при этом распространяется и явная ложь, утверждающая о том, что ffmpeg является устаревшим продуктом:  
<font color="#461b7e">
   ffmpeg version 0.8.3-6:0.8.3-4, Copyright (c) 2000-2012 the Libav developers
   built on Jun 26 2012 09:26:41 with gcc 4.7.1

   THIS PROGRAM IS DEPRECATED
   This program is only provided for compatibility and will be removed in a future release.
   Please use avconv instead.</font>


Похоже, что это "исправлено" (https://bugs.launchpad.net/ubuntu/+source/libav/+bug/939863) в Ubuntu, но на момент написания статьи присутствовало в Debian. Эта пропаганда очень сильно ударяет по проекту FFmpeg в целом.


Форк - это неплохая в целом вещь, но только при условии, что разработчики Libav признают себя форком. Но Libav представляет себя как замену FFmpeg, или же просто переименованием (http://lwn.net/Articles/433348/), а не форком. В целом, этот настрой можно охарактеризовать такими тези...

URL: http://blog.pkh.me/p/13-the-ffmpeg-libav-situation.html
Новость: http://www.opennet.me/opennews/art.shtml?num=34254

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, [email protected] (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру