Около полутора месяцев назад я наткнулся на библиотеку со странным, очень странным названием — Frei0r. Это минималистичная библиотека видеоэффектов, призванная привести реализации простых фильтров и генераторов видео в единый вид, так, чтобы другие приложения просто подключали её к себе, а не городили свои велосипеды. К счастью, у них это получилось.

Огого!

Честно сказать, я бы даже не обратил внимание на эту штуку, если бы не стечение различных факторов. Во-первых, их сайт с «логотипом» в виде надписи «Frei0r», выполенной страшненьким (не некрасивым или стрёмным, а именно страшненьким) шрифтом, у которого, к тому же, ещё и ноль в другую сторону зачёркнут. Впечатлило. Но дальше — больше. Под логотипом и ссылками расположилось маленькое демонстрационное видео. Очень, мать его, странное маленькое демонстрационное видео. На этом видео показаны основные эффекты и генераторы библиотеки, но разработчики сделали это каким-то артхаусно-психоделичным методом. После первого просмотра я моментально подобрал музыку для видео и выложил на YouTube, надеюсь, авторы не будут против. После этого видео я понял: я обожаю эту библиотеку и её создателей. Я хочу стать частью этого проекта. Хочу. Написать. Плагин.

Хочу так же!

Я влюбился в эту штуку с первого взгляда. Я хочу её. Frei0r написан на языках C и C++, от которых я не так уж и далёк. Решено: пишем плагин. Целых два. Благо, в составе Frei0r не было того, что мне было нужно, а это значило только лишь то, что нужно делать самому. Я, как ярый поклонник современной веб-культуры, сразу решил, чем именно пополню коллекцию эффектов: глитчами и RGB-смещением. Стильно, модно, молодёжно. Надеюсь, не откажут.

Эээксперименты

Для начала идём на работу, находим там свой разбитый нетбук и забираем у него жёсткий диск за неимением другого. Бежим домой, устанавливаем на вторую машину Linux (я выбрал Xubuntu как компромисс между легковесностью и красотой), по-бырому настраиваем среду для разработки (Sublime Text, build-essentials, вот это всё), форкаем репозиторий Frei0r себе и клонируем его на свежеустановленную систему. Заодно ставим какой-нибудь видеоредактор, использующий Frei0r, например, kdenlive. Далее смотрим как устроен какой-нибудь фильтр (мне попался invert0r), копируем его папку рядом, внаглую переименовываем как хотим и начинаем пытаться писать. Попутно ловим множество сегфолтов, падений и наркомании вместо кадра. Не могу не отметить специфичность названий: у большинства плагинов вместо последней буквы «o» используется ноль, а если слово в оригинале оканчивается на «-er», оно превращается в «-0r».

glitch0r

Глитчи, глитчики, глитчушечки. Первым плагином от IDENT Software стал эффект, за бугром называемый никак иначе как «glitch». Обычно так называют смещение блоков изображения с возможными (но не обязательными) искажениями цвета. В процессе разработки я чаще натыкался на незнание хитростей языка C, нежели на проблемы с реализацией. В конце концов, у меня всё же получился вполне себе красивый и тонко настраиваемый плагин. Результат его работы примерно такой:

После отладки я отправил pull request разработчикам и… Они его приняли! Мини-мечта исполнена: я внёс вклад в столь офигенный проект. Ура, ура, кобура! Но это ещё не всё.

rgbsplit0r

Вторым моим эффектом стало расщепление кадра на красный, зелёный и синий каналы с последующим смещением этих каналов относительно вертикальной и горизонтальной осей. Опять же, по желанию пользователя. Такой эффект отлично дополняет предыдущий, вместе с тем его вполне можно использовать как самостоятельную единицу. Второй pull request тоже приняли. «Dyne.org» вообще молодцы, о них я ещё чуть дальше расскажу. Пример работы плагина ниже.

Что дальше?

Дальше планируется третий плагин, о котором я расскажу в отдельном посте, как только сделаю его и отправлю pull request. Помимо плагинов, я делаю всяческие видосики с их использованием. Видео, правда, получаются крайне странные, например, вот это.

Ещё немного про Дюну

Вот уж не знаю, как они там читают слово «Dyne», но для меня это будет просто Дюна. Дюна, которая меня покорила. Дюна, в которую я влюблён. Их идея — открытые технологии для творчества, для безопасности. Основу составляют товарищи из Нидерландов, так что «rasta software» присутствует, куда ж без этого. Добро, мир и няштики. Кстати, ещё забавный факт: на некоторых их видео присутствует песня группы «Ленинград». Да-да, Шнуров. Да-да, с матами. Например, вот, вот, и вот. Либо у них там затесался хитрый русский, либо они многого не знают. В любом случае, это мило и забавно.