LINUX.ORG.RU

Конфликт между FFmpeg и Libav мешает разработке проектов

 , ,


0

2

На ЛОРе была новость о расколе проекта FFmpeg. С одной стороны, как говорит разработчик Клемент Бош (Clément Bœsch) есть положительные итоги «войны»: лидер проекта FFmpeg улучшил стиль руководства. Проект воссоздал инфрастуктуру с нуля, так как старая осталась у проекта libav. В этом помогли разработчики videoLAN, на серверах которых хранится, например, исходный код FFmpeg.

Вместе с тем, как разработчик, сотрудничающий с обоими проектами, Бош отмечает и негативные тенденции:

  • Игнорирование FFmpeg проектом libav.
  • Стремление всё переписать с нуля в проекте libav. Так, например, Бош и Стефано написали новую систему вывода ffprobe, которая использовала JSON вместо XML/INI форматов, включённых по умолчанию. Позже они добавили XML,TXT,CSV как дополнительные форматы вывода. Одновременно это было предложено как FFmpeg, так и в libav. Вместо заимствования коммитов из FFmpeg, реализующими функциями, разработчики решили гордо всё переписывать с нуля.
  • Так же, например, проектом libav были проигнорированы библиотеки libswresample и libavresample для ресемплинга и преобразования форматов, написанные для проекта FFmpeg. Через некоторое время libav вынужден был нанять платного программиста для реализации тех же функций. Позже этот шаг оправдывался разработчиками libav. Сама же FFmpeg поддерживает для совместимости дублирующее API libav.
  • В этом году в состав FFmpeg было добавлено множество фильтров, в основном аудио. Libav проявил интерес к расширению набора своих фильтров, но вместо использования наработок FFmpeg просто взялся улучшать API. Как считает Бош, это приводило к нарушению совместимости API несколько раз.

Как считает разработчик — это признак синдрома NIH («сделано не мной»). Само же такое поведение обусловлено тем, что разработчики libav хотят вытеснить FFmpeg полностью и подменить собой. Новая библиотека получает большое распространение в Linux-дистрибутивах благодаря тому обстоятельству, что на сторону libav перешёл сборщик пакетов. В описании пакета при этом сообщается, что FFmpeg уже устарел:

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.

Это вводит пользователей в заблуждение и в целом является своеобразным «черным пиаром» против FFmpeg. О том что проект жив и активен позволяет говорить ежемесячный объём рассылки в 1000 сообщений.

Бош считает, что проектам надо четко очертить свои цели, а не заниматься такой войной, которая вредит пользователям.

>>> Подробности

★★★★★

Проверено: DoctorSinus ()

Ответ на: комментарий от ymuv

Мне уже они надоели, в генте один установил, через некоторое время другой тянется как зависимость да еще с другим ругается.

Это ещё что, вон Pidgin оказывается в openssl собираться, тащит gnutls из-за, видите ли, лицензионной несовместимости.

Lighting ★★★★★ ()
Ответ на: комментарий от Lighting

а gnutls с openssl не конфликтуют, спокойно могут быть в системе оба установлены. Это право разработчика - выбирать библиотеку :)

Harald ★★★★★ ()
Ответ на: комментарий от codoranro

Форк был создан изза того что проект был мейнстримом и решал какие патчи включать а какие нет и некоторые функции игнорировал. Сейчас точно так же поступает форк. Так вот вопрос нахер нужен такой форк который ничем не лучше(политика) оригинала?

Behem0th ★★★★★ ()
Ответ на: комментарий от Deleted

FFmpeg должен уйти.

Почему не libav? Это новая мода такая, сделать форк, поломать api и вытеснить старое проверенное решение?

Adjkru ★★★★★ ()
Ответ на: комментарий от Quasar

Практика показала, что глава ffmpeg не просто так с этими идиотами поругался.

Хм... А почему не прикинуть наоборот: «мания величия, отсутствие конструктива, желание задавить форк в зародыше» и т. д. За эту версию между прочим говорит, что «есть положительные итоги «войны»: лидер проекта FFmpeg улучшил стиль руководства». Видимо было что «улучшать». Не?

k0valenk0_igor ★★★ ()
Ответ на: комментарий от codoranro

Больше всего мейнтейнеров раздражает неадекватное поведение руководителей проекта

А админов (конкретно меня) раздражает ярко-выраженное желание майентейнеров подменять собой сообщество и пихать в майнстрим тех, кто этого совсем не заслуживает. В качестве примера могу привести NetworkManager «святого» Леонардо.

k0valenk0_igor ★★★ ()

Libav похоронить. глючная «скотина».

niXman ★★★ ()
Ответ на: комментарий от quiet_readonly

где бы был шланг без гнутых бинутилсов? ;)

у него ни ассемблера, ни линкера своего нет. одним словом - ничего кроме языкового фронтэнда. мертвая поделка.

niXman ★★★ ()
Ответ на: комментарий от k0valenk0_igor

В качестве примера могу привести NetworkManager «святого» Леонардо.

И что не так с NetworkManager в мейнстриме, какой пакет должен его заменить?

liberte ()
Ответ на: комментарий от farafonoff

мейнтейнеры это и есть сообщество

Вот-вот. Об этом и речь! Есть разница между «я разработал» и «я скопилил». По принципу мелитократии политику должны определять первые, тогда как рулят вторые. И это печально. Весьма.

Не нравится их работа - компелируй сам.

Ээээ.. тока «компилируй», ладно? Собсно я так и поступаю. Причем довольно давно. У меня маргинальная DE поскольку я «положил» на гномомовцев и кдешников разом (а вот qt и gtk юзаю активно). У меня нет systemd поскольку мне откровенно противен подход и стиль Поттеринга и я на него «положил» также. Про разные «лунно-световые фантазии» си-шарпа я вообще молчу... Но меня не может не печалить то, как ребят тупо припирает к стенке кодла менагеров Редхата с их искусственными зависимостями от systemd, pulseaudio и networkmanager'а. Это действительно очень грустно((((

k0valenk0_igor ★★★ ()
Ответ на: комментарий от harper

Debian с FFmpeg переехал на libav.

из рассылки:

Debian admins have repeatedly stated that they do neither care about bugs nor about regressions.
Carl Eugen

стабильность (тм)!

Divius ★★ ()
Ответ на: комментарий от liberte

Я не сказал что «заменить». Я бы сказал что «есть альтернатива». Более того эта альтернатива стоит того что бы на нее обратить внимание. Это проект wicd. Я юзаю его около полугода. Ниче так... Есть конечно свои заморочки, но в целом неплохо.

А что до NetworkManger'а... Во-первых, у него нет интерфейса независимого от DE.Д и консольного интерфейса тоже нет. Во-вторых, он завязывает на себя яст (я - сусевод) и что гораздо печальнее сетевую подсистему тоже. Пример: в общесистемном сетевом конфиге (который архитектурно о подобных манагерах и знать-то ничего не должен) присутствуют строки просто прибывающие NetworkManager гвоздями к системе.

k0valenk0_igor ★★★ ()
Ответ на: комментарий от k0valenk0_igor

>«я разработал»
>политику должны определять первые,

Они уже поопределяли, после чего и произошёл форк. Инжой.

Deleted ()
Ответ на: комментарий от Harald

Черенок от лопаты такому разработчику, и так уже раму докупают ради обычного браузера, несмотря на то, что её и так гигабайты.

anonymous ()
Ответ на: комментарий от k0valenk0_igor

Ты ещё скажи, что это тут не при чём. Или ты думаешь, что раз ты разработчик супер-мега-программы, то будешь диктовать кому как дистр собирать? Так вообще никто никогда никакой дистр не соберёт.

Deleted ()
Ответ на: комментарий от devl547

Ты дурак или прикидываешься? libav не просто форк, а фактически и есть ffmpeg, т.к. его разрабатывают именно те кто разрабатывал ffmpeg. У ffmpeg'а остался только лидер и групка пасивов... Ну и да, он добрал «новичков» себе в проект...

Jetty ★★★★★ ()
Ответ на: комментарий от Deleted

Ты ещё скажи, что это тут не при чём. Или ты думаешь, что раз ты разработчик супер-мега-программы, то будешь диктовать кому как дистр собирать? Так вообще никто никогда никакой дистр не соберёт.

На самом деле я хочу сказать, что определять что-как и с какими опциями скомпилить это - одно, а вот определить какие пакеты (читай проекты) составляют шпиль системы, и ее «вкусняшки» - это совсем другое. Первое - на совести майентейнеров, второе - только на на сообществе в целом. Грубо говоря, майентенеры - это исполнительная власть, а никак не законодательная. И если исполнительная власть начинает говорить не «как сделать», а «что надо сделать» - это фиговый признак.

k0valenk0_igor ★★★ ()
Ответ на: комментарий от k0valenk0_igor

>определить какие пакеты (читай проекты) составляют шпиль системы, и ее «вкусняшки»
>только на на сообществе в целом

А сейчас не так что ли? Так и есть. А автор FFmpeg это не сообщество :}

Deleted ()

Пацанам нужно собраться на природе за шашлычком и выпить за слияние. Если дружить не захотят − то стенка на стенку. Кто всех перебьёт − тот и будет жить, а проигравший проект закопан.

Hertz ★★★★★ ()

были проигнорированы библиотеки libswresample и libavresample для ресемплинга и преобразования форматов

Была проигнорирована библиотека libswresample и написана libavresample полностью дублирующая её функционал.

но вместо использования наработок FFmpeg просто взялся улучшать API

Они снова попытались написать всё с нуля, но не осилили и вместо этого взяли наработки FFmpeg и переделали API функций, сделав их несовместимыми с FFmpeg.

Новая библиотека получает большое распространение в Linux-дистрибутивах благодаря тому обстоятельству, что на сторону libav перешёл сборщик пакетов

«Сборщик пакетов»? Великий сборщик, мастер ключей... Сборщик пакетов Дебиана, который под именем FFmpeg на самом деле, втихарая, собирает libav. Уволить за такое надо чудака.

Nebuchadnezzar ★★★★ ()
Ответ на: комментарий от anonymous

а ещё BOTAN и PolarSSL, первое что вспомнил :)

Они друг другу не мешают, и занимают место на диске, а не в оперативке. Даже если у тебя запущено 100500 разных приложений, и они одновременно динамически линкуются со всеми существующими реализациями SSL, TLS и криптографических функций, большого вклада в пожирание гигабайтов оперативки это не внесет

Harald ★★★★★ ()
Ответ на: комментарий от Hertz

Если дружить не захотят − то стенка на стенку. Кто всех перебьёт − тот и будет жить, а проигравший проект закопан.

А если:

1) Никто не выживет, оба проекта загнутся?

2) Проигравший проект уползет, зализывая раны, отлежится и начнет охотиться за членами победившего поодиночке?

Harald ★★★★★ ()
Ответ на: комментарий от Deleted

А сейчас не так что ли? Так и есть

Отнюдь. Вот свежий пример: на ЛОРе было голосование за и против различных систем управления загрузкой. Примечательно то, число людей проголосовавших за systemd и за init.d было приблизительно равным. Причем надо учесть, что на ЛОРе молодых спецов куда больше половины, а эта аудитория любит новое. То есть среди матерых специалистов, systemd скорее всего не наберет и 25%-30% И не смотря на этот расклад (в общем-то довольно нехитрый) sysetmd моментально принимают в майнстрим. Причем это решение принимают майентейнеры, по совместительству сотрудники одной компании с автором проекта. И причем они делают так, что убрать его в принципе не возможно. Мне вот лично так и подмывает крикнуть «судью на мыло». А вас?

k0valenk0_igor ★★★ ()
Ответ на: комментарий от k0valenk0_igor

>Причем это решение принимают
Те, кто его и разрабатывают, ты же так и хотел, не? А где-то кроме них уже он стандартом стал? А то я не в курсе.

Deleted ()
Ответ на: комментарий от Deleted

Те, кто его и разрабатывают

Вот тут собак и порылся. Потому что решение. судя по всему, принимает их общее начальство. Потому как... Короч, я до кучи, - системный аналитик (ниче личного - работа такая) и я отлично вижу какая модель требований и модель прецендентов у systemd. Так вот, там даже близко ничего не напоминает сервера с нагрузкой, интерпрайз и т. д. Это - десктоп в чистом виде. И принятие этих пакетов очень-очень на руку компании зарабатывающей на продаже платном обслуживании серверных продуктов. А разараб и майентейнеры - штатные сотрудники этой компании... Выводы делай сам.

k0valenk0_igor ★★★ ()
Ответ на: комментарий от k0valenk0_igor

Админ? А что ставишь на сервера? А что на корпоративные десктопы? Или ты админ локалхоста?

Может быть «меритократия»? Разделение труда соответствует принципам любой системы. Разработчики разрабатывают, мейнтейнеры собирают, админы устанавливают. Админы должны общаться только с мейнтейнерами, а мейнтейнеры с разработчиками.

farafonoff ★★ ()
Ответ на: комментарий от k0valenk0_igor

Я системный аналитик не могу внятно излагать свою точку зрения, посчитать дважды два, делать элементарные логические выводы и сливаюсь рандомным лор пользователям без внятных аргументов.

fixed

zz ★★★★ ()
Ответ на: комментарий от k0valenk0_igor

Мне то ты зачем рассказываешь кто они такие? Я в курсе :}

Но кому-то решения принимать надо. А обычным голосованием в интернете по любому вопросу дистр не построишь. Может половина голосовавших вообще виндузятники, кто их знает. Ну и большинство не всегда может выбрать правильное решение, если не владеет информацией. А потом ещё и религиозные фанатики (Qt не нужен, гном не нужен, и т.д.). Дело тёмное.

Deleted ()
Ответ на: комментарий от farafonoff

Улыбнул. По пунктам: админю сейчас не часто. Ставлю только то, что отвечает бизнес процессам (иногда, если нет альтернативы, и винду ставлю), но люблю сусе и ставлю в основном ее. На сервера ставлю только опен сусе.

k0valenk0_igor ★★★ ()
Ответ на: комментарий от Deleted

Есть очень простое решение: допускать к голосованию только тех из разрабов пакетов, кто хочет и готов участвовать в жизни дистра

k0valenk0_igor ★★★ ()
Ответ на: комментарий от Deleted

Блин, ты прав. Надо думать, но и то что есть сейчас - просто гнусь да и только.

k0valenk0_igor ★★★ ()
Ответ на: комментарий от Deleted

Но я знаю одно: компания-разработчик (и вообще разрабы) майнтейнерами быть не должны!

k0valenk0_igor ★★★ ()
Ответ на: комментарий от k0valenk0_igor

Я бы сказал что «есть альтернатива». Более того эта альтернатива стоит того что бы на нее обратить внимание. Это проект wicd.

Разработчики проекта Wicd, когда он уже загибался пару лет назад, сообщили мне, что NetworkManager делает всё, что умеет Wicd, и пользователям рекомендуется переходить на NM.

После миграции на NetworkManager я пришел к выводу, что у Wicd нет по сравнению с NM никаких преимуществ, кроме, возможно, консольного интерфейса.

Во-первых, у него нет интерфейса независимого от DE.

Есть, nm-connection-editor в пакете nm-applet. Кроме того, сам nm-applet не привязан к GNOME, и прекрасно работает в LXPanel, например.

Во-вторых, он завязывает на себя яст (я - сусевод) и что гораздо печальнее сетевую подсистему тоже.

Это исключительно проблемы дистрибутива SUSE.

liberte ()
Ответ на: комментарий от k0valenk0_igor

общесистемном .... конфиге ... присутствуют строки просто прибывающие ... гвоздями к системе.

Последний раз щупал SuSE лет 12 назад. Но почему-то не удивлён. Собственно, причина, по которой юзаю Дебиан в работе и Федору дома.

Shadow ★★★★★ ()
Ответ на: комментарий от x3al

Что характерно: mplayer2 при схожей ситуации называется форком.

Что там, кстати, с ним? Он ещё живой? В репозитории последний коммит был в середине мая.

GArik ★★★ ()
Ответ на: комментарий от Harald

Ну, до 105-й дело доводить ни к чему)) Пара синяков до свадьбы заживёт...

Hertz ★★★★★ ()
Ответ на: комментарий от k0valenk0_igor

Хм... А почему не прикинуть наоборот: «мания величия, отсутствие конструктива, желание задавить форк в зародыше» и т. д.

Потому что это не будет соответствовать действительности. Изначально никакого форка не было, кучка libav`шных рейдеров-революционеров просто пыталась захватить ffmpeg целиком. Форк libav появился только после того, как захват проекта у них провалился. Если кто-то и пытался задавить конкурента, так это товарищи из libav.

trycatch ★★★ ()
Ответ на: комментарий от Jetty

Ты дурак или прикидываешься? libav не просто форк, а фактически и есть ffmpeg, т.к. его разрабатывают именно те кто разрабатывал ffmpeg. У ffmpeg'а остался только лидер и групка пасивов... Ну и да, он добрал «новичков» себе в проект...

Халва, халва.

30 Day Activity                 libav         ffmpeg
Committers (Past 30 Days)	 21 committers  51 committers 	  
Commits (Past 30 Days)	    240 commits    798 commits	  
Files Modified	       298 files	   693 files	  
Lines Added	               6,359 lines 	 27,219 lines 	  
Lines Removed	               2,201 lines 	 10,932 lines

trycatch ★★★ ()
Ответ на: комментарий от k0valenk0_igor

не нравиться - форкни все на свете, даже аллаха! или жуй что дают. Это СПО

anonymous ()
Ответ на: комментарий от Behem0th

Никто не говорит. Просто если проект выгорит - будет выбор, работать в обычной IDE с собственным парсером С++, которая в лучшем случае подчёркивает часть ошибок красным (и половину неверно, и легко валится на макросах) или работать в IDE, которая пересобирает мгновенно, подсвечивает ошибки ещё до нажатия Ctrl+B и тут же предлагает хотфиксы, затеняет серым цветом недостижимый код, указывает на типичны ошибки копипаста или неосвобождённую память и т.д.

quiet_readonly ★★★★ ()
Ответ на: комментарий от niXman

у него ни ассемблера, ни линкера своего нет.

Был бы - вы бы писали про NIH-синдром. Трололо всегда найдёт аргументы. А вообще, clang изначально отказался от переписывания подобных вещей и использует LLVM. И это одна из его сильных сторон.

P.S. для евангелистов замечу, что gcc всё же куда лучше оптимизирует, особенно если не сравнивать clang 3.1-git vs gcc4.2, и включить оптимизации gcc: -O3 -flto -fuse-profile.

quiet_readonly ★★★★ ()
Ответ на: комментарий от k0valenk0_igor

Спасибо за ответ.

То есть среди матерых специалистов

Как вы политкорректно назвали людей с синдромом вахтёра.

на ЛОРе молодых спецов куда больше половины, а эта аудитория любит новое.

Как вы хорошо обрисовали позицию матёрых специалистов - «не ломай то что работает». При этом рабочим с точки зрения админа является всё, что не надо ломать. Порочный круг, призванный обеспечивать этому самому админу тёплое рабочее местечко с баш-скриптами, с которыми он сам разбирался лет 5. Ну и возможность считать всех юзеров идиотами просто потому, что они не понимают, кому кроме программистов и админов, любящих дорабатывать готовую систему, понадобилась файловая система в виде дерева, да ещё и с симлинками. Или вот аналог из мира винды - каждый установшик спрашивает, куда поставить программу; но какая мне лично разница, если единственная причина ставить программу в другое место - это её (программы) неправильная работа с путями, содержащими пробелы? Проблемы надо фиксить, а не предлагать это делать пользователям под шумок, выкатывая интерфейс с пятьюдесятью тремя кнопками и предлагая всех их потыкать.

Админы захватили власть над опенсурсом, админы указывают разработчикам не делать ничего нового, потому что без обширной интеграции и улучшения существующих узких мест это новое не внедрить. Разумеется, админы интеграцией бесплатно заниматься не будут, а опыта или энтузиазма в данной области, чтобы заслужить платы, у многих просто нет. Ладно, это разумная позиция - но другим зачем руки связывать?

В 2012 году единственные, кто создаёт цельную систему - это ментейнеры и носители прекрасных идей вроде Марка Шаттлворта. Именно они судят, какой проект ценен, а какой даст нужное только 3,5 знающим баш насквозь админам, остальным же даст головную боль. Они дописывают несуществующие или убогие компоненты системы, они внедряют более совершенные и простые systemd, wayland, networkmanager. И если в init.d, xorg и этих ваших системах настройки сети все проблемы нужно решать ручками и костылями, характерными для конкретной машины, то с нетворкменеджером я наконец-то смог настроить сеть под линуксом, когда впервые его осваивал. Неосилятор? Идиот? А может я просто хочу заниматься чем-то более приятным мне лично, чем настройка системы, которая и так должна работать? И я, призёр городских олимпиад по математике, никогда не сунусь в дистрибутив без network manager. А ведь другие люди ничем не хуже и не менее талантливы, но 95% считаются идиотами за нежелание брать в руки бубен.

Если администраторам (и верстальщикам, кстати) платят деньги за постоянное устранение одинаковых проблем, которые до вас 1000 раз устраняли - ок, хорошо, вы нашли свою нишу. Но зачем указывать ментейнерам оставлять всё как есть и не решать проблемы на корню?

В итоге всё сводится к одному - если админы считают себя властелинами и VIP-пользователями десктопного линукса, то пусть сами и пишут свой линукс. А от ментейнеров дружелюбных к человеку проектов - прочь свои ручонки. Убунта 12.04 мне лично доставила.

quiet_readonly ★★★★ ()
Ответ на: комментарий от liberte

media-plugins/gst-plugins-ffmpeg-0.10.13-r2 требует:

Да не только он, я его уже выпилил. Просто проблема сама иногда появляется, ее просто игноришь, а потом сама проходит.

ymuv ★★★★ ()
Ответ на: комментарий от quiet_readonly

Знаете, мистер олимпийский призер и бубунтоид до кучи, вам определенно стоит один разик поработать в ЦОДе клиента с кучей подключенных к нему пользователей и просто жажадущих не знать что такое обваленный сервис или почему не работает эл. почта. Полезно также будет сконфигурить веб-сервер с нагрузкой в тысячи полторы одновременных соединений. И когда вы это сделаете, вот тогда.... ну тогда и будет о чем с вами говорить. А пока Вы, сударь, - просто смешны со своими суждениями хомячка о работе сисадмина.

k0valenk0_igor ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.