LINUX.ORG.RU

SEZE II - модные видео гличи на C++

 , , , ,


0

1

SEZE II

Для наложения эффектов на видео, можно использовать фильтры FFmpeg или Frei0r плагины, но я написал свою программу с CLI и GUI интерфейсом, которая позволяет использовать фильтры из плагинов в многопотоке и отображать результат обработки через SDL2.

Как это выглядит?

Где качать?

Программу вы можете скачать с Гитхаба или Sourceforge. Для Линукса установите зависимости: FFmpeg, SDL2. Если хотите собрать из исходников, то скачайте SCons и последнюю версию компилятора C++

Как сделать свой эффект?

Скачайте API для создания плагинов и поглядите пример фильтра инверсии цвета. В итоге вы получите .so файл, если собираете на Линуксе, и затем вы откроете ваш плагин с помощью SEZE передав путь до него через опцию --plug. Используйте любую технологию для обработки изображений и любые оптимизации.

Ещё инфа

  • Код открытый, можете делать что хотите
  • Можно отправлять мне свои плагины, они пойдут в следующий релиз, код не обязателен
  • На Хабре есть статья по видео плагинам в разных программах
  • Есть паблик ВК с новостями о новых эффектах

Ответ на: комментарий от HPW-dev

Я немного не про то. Меня просто удивила такая последовательность коммитов update *всякие доки*.

P.S Я тебе PR отправил, исправил пару ошибок в инструкции по сборке на английском.

PhysShell ()

Посмотрел репу - SCons, глобальные переменные, кошмарный стиль кода одной простынёй, какой-то виндовый воркспейс с путями в C:\, ридми на русском… Не проходит мои стандарты качества чтобы смотреть дальше.

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

ридми на русском…

Это ссылка просто на русский ридми ведёт. Там есть английский ридми на мэйн странице.

какой-то виндовый воркспейс с путями в C:\

Это путь для компилятора у меня на компе, я думал что воркспейс от vscode кому-то пригодится, там игноры папок и настройки табов. Спрячу его раз напрягает

глобальные переменные

Они и в коде ffmpeg есть прям в хедерах и никакими неймспейсами даже не защищены. У меня глобалы в неймспейсе seze и это таблицы, а в мейне переменные только для мейна.

SCons

Разве SCons это не круто? По моему это лучше чем CMake, пишется легко как и любой питон скрипт + кэширование компиляции без всяких CCache. Скачать тоже не трудно, у кого сейчас интерпретатора питона нет и тем более на линухе?

кошмарный стиль кода одной простынёй

Покажите что страшно выглядит, я исправлю

HPW-dev ()
Ответ на: комментарий от HPW-dev

У адобэ своё АПИ, в остальных крупных редакторах - OpenFX. По-моему имеет смысл именно OpenFX, но я сварщик ненастоящий, так что если присутствуют здесь фанаты Premiere/AfterEffects - они вам расскажут, почему адобэ нужнее.

token_polyak ()

Какое же кромешное адищще.

Нафига гуй на питоне, если вся его задача — тупо создать окно?

Ты тащишь в исполняемый бинарник питон, Tcl, Tk, хотя окно прекрасно создаётся средствами самого SDL.

anonymous ()

There are several problems with this code

1. File: https://github.com/HPW-dev/SEZEII/blob/master/src/plugins/stars/stars.cpp

#include "../../image/image.hpp"

you do know about abi compatibility issues. This is why you even use export c from your plugin. but into the plugin you pass c++ class. It might cause problems if the plugin is compiled with different compiler than your main app. Not that it good or bad. Just be aware of it.

2. I recommend you learn a bit of SIMD instructions and check if it can benefit your code in places like

void blend(seze::RGB24& dst, CN(seze::RGB24) src, float alpha) {
  dst.R = dst.R + (src.R - dst.R) * alpha;
  dst.G = dst.G + (src.G - dst.G) * alpha;
  dst.B = dst.B + (src.B - dst.B) * alpha;
}

Good luck

CyberK ()
Последнее исправление: CyberK (всего исправлений: 1)
Ответ на: комментарий от anonymous

Яб хотел собрать какой-нибудь пример imGui с SDL2, но он требует версию SDL 2.0.17+, лол это как вообще? сейчас же только 2.0.16 доступна. Ладно, попробую с WinGDI.

Ужатая программа с Nuklear вышла в 111кб, сможет ли imGui это превзойти? Хотелось бы что да, ведь код там поприятнее писать

HPW-dev ()
Ответ на: комментарий от CyberK

you do know about abi compatibility issues

I did not know about this. Apparently, for compatibility, you will have to write such things in pure C.

I recommend you learn a bit of SIMD instructions

I know about SIMD instructions, but I rely on compiler optimization. As a last resort, I can use Perf and find bottlenecks for optimizing. Some plugins will be optimized in the next release

Good luck

Thank u

HPW-dev ()
Ответ на: комментарий от deep-purple

Тихо! Тсссс! Не надо рассказывать «как надо».

Сам не знаю как надо. Софтина работает, и хорошо. Не глобальный стандарт прям, вон американец намекает уже на несовместимости в ABI компиляторов. Я эту прогу сам юзаю для эффектиков в видосиках.
Можно было бы вообще только алгоритмы эффектов показать как туториал и выложить плагины к каким-нибудь программам и всё, но я сделал как сделал.

HPW-dev ()