LINUX.ORG.RU

Kdenlive: аппаратный рендеринг видео

 , , ,


0

2

Всем привет! Подскажите, есть ли в Kdenlive возможность задействовать для рендеринга GPU? И ещё - если у меня FFmpeg собран с поддержкой NVENC, возможно ли задействовать этот кодек в Kdenlive?

Ничего про Kdenlive сказать не могу, так как им не пользуюсь.

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

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

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

еще одного видеоредактора

Ссылку в студию. Ато будет и еще один от меня ))

deep-purple ★★★★★
()

Просто, к примеру, в Sony Vegas можно задействоваь GPU-рендеринг через CUDA, а в Premiere Pro - заюзать Nvenc. Хотелось бы аналогичного в Kdenlive. Я знаю что там можно включить OpenGL для некоторых эффектов и окна предпросмотра, но мне нужна обработка конечного результата на GPU

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

А можно ссылку? Интересно глянуть. А интерфейс на чём будет написан?

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

Ну а по ссылкам на их форуме ходил ? https://forum.kde.org/viewtopic.php?f=272&t=130935

KDE Developer отвечает

I switched profiles in 0.9.10 to MLT «properties» (predefined settings)... which are actually very oriented towards quality/size and not speed. You can speedup the render by removing the «properties=blablabla» argument in the profile you use, falling back to encoder defaults that are faster. In recent development, I introduced a «speed» cursor that lets you tune this compromise

GPU rendering is for the moment only for some effects, not very stable, not much faster, and encoding (the heaviest part usually) is still on CPU ; I don't know if MLT now can use ffmpeg's hardware H264 encoders.

anonymous
()

Как уже здесь сказали полного аппаратного рендеринга нет, ffmpeg может кодировать видео аппаратно, ну и opengl кое где в системе используется

Для ускорения достаточно сделать профиль h264 с сасмым низким качеством сжатия, но это лишь для превью

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

Реализуй OpenFX API. Иначе напишешь очереное нинужно, скорей всего. Код есть в Натроне. И поддержку многомониторных конфигураций в режиме «предпросмотр без интерфейса программы на отдельном мониторе».

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

Ясно, продолжаем использовать sony movie studio.

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

OpenFX API

Оно достаточно сложное, а плагинов для него я видел не так много. Впрочем, быть хостом для разного рода API - это не так сложно, были бы плагины.

Вообще, это достаточно сложный выбор - простота или моща?. Есть очень простые API, такие как frei0r, там кроме инициализации есть ровно 2 коллбека, которые нужно заимплементить (а можно только один из них). А дальше тебе дают буфера, таймкод и делай с этим что хочешь. Очень простое API, которое просто манит поебать байтики и сделать что-то великое. Байтики, голые, вот они тут. Есть очень интересная абстракция как PACKED32, пришедшая на замену RGB32 и всяким YUV, с цветовыми пространствами больше можно не заморачиваться. Но, в реальном мире этого мало, нужен инструментарий для нелинейного доступа к кадрам, нужно расширенное превью и много чего еще. И вот потом посмотришь на тонну коллбеков или свойств вида

#define kOfxImageEffectPropRenderQualityDraft «OfxImageEffectPropRenderQualityDraft»

И в голове «ой, сложнааааа» и никакого желания что-то делать не остается.

И поддержку многомониторных конфигураций в режиме «предпросмотр без интерфейса программы на отдельном мониторе».

В былые времена это была важная фишка, только выход надо было гнать на DV или какую-то другую хардварную штуку. Нынче надо просто сделать отделяющееся окошко, которое можно перетаскивать по разным экранам. Впрочем, у Adobe многостраничная инструкция только по перетаскиванию окошек, сделать что-то подобное на GTK - будет подобно подвигу.

Но я не об этом. Превью - очень интересная тема. Многие разработчики забывают, что порой ихний плагин может работать очень долго, поэтому, пока мы крутим параметры очередного эффекта, пытаясь найти нужные опции, могут пройти часы на промежуточный рендеринг. Нам не нужно высокое качество, нам надо посмотреть «как оно будет примерно». Но у нас нет интерфейса, чтобы сказать это приложению. Хотя во всяких AfterEffects есть разные режимы превью и даже варианты работы с низким качеством. Иногда это сделано очень криво, и пока крутишь ручки эффекта - у тебя одна картинка, как оно отрендерит целиком - совсем другая (в частности, так делает штатный плагин огня). Причем тут OpenFX? Флажок OfxImageEffectPropRenderQualityDraft появился только в версии 1.4, причем я что-то не вижу опций для частичного/инкрементального превью (рендеринг пикселей в интерлейсном или случайном порядке), я не вижу опций для переключения этого самого квалити, я вижу только «драфт». Это булевое значение. Зато я вижу небольшое изобретение своих собственных прогресс-баров.

А еще превью может быть не только в виде «низкого качества», а и в виде wireframe-сцены. Ты меня спросишь «а не ебнулся ли ты, какой вайрфрейм в видеоредакторе?», а я отвечу, что многие эффекты фактически делают что-то такое, что слабо связано с изначальной картинкой, к примеру, расчитывают матрицы трансформации. Хочешь сделать исправление деформации линз со своей GoPRO? Извольте расчитать карту смещения пикселей. И пока мы ее расчитываем, рисуя линии на экране, очень неплохо видеть «что там внутри».

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

И вот посмотришь на все это, видишь как в мире 14 конкурирующих стандартов... https://xkcd.com/927/

Я вот все никак не соберусь расковырять SDK от After Effects чтобы изобрести свой 15-й стандарт

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

недопишешь .. fixed

Вполне возможный вариант. Пока развитие идет так:

Я все могу -> Ща мы быстренько натырим кода с гитхаба -> Надоело тырить, давайте сделаем хост и плагины -> а мне нужны плагины не только для видео и аудио, но и для рисования таймлайнов, панелек и всего прочего -> надо бы изобрести свой нейтральный SOAP c GTK, кросспроцессное взаимодействие -> а надо ли все это? -> Давайте лучше изобретем Резолюм -> И вообще, айклон уже написали давно -> Зачем я живу?

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

Оно достаточно сложное, а плагинов для него я видел не так много

Коммерческих - реально много. Под онтопик чуть меньше, но самые серьёзные вещи - Сапфир от GenArts, все плагины от ReVision FX и Neat Video - есть. Линукс-версии под Ньюк делались, как я понимаю. Какие-то куски сомого Ньюка The Faggotry тоже продаёт как плагины. А среди всего перечисленного, например, шумодав на GPU и мощнейшая вещь Twixtor. Да, сложно. Нет, видеоредактор, не умеющий в чистку видео от шумов не может считаться чем-то кроме бета-версии с неполным функционалом или забавной поделки. Ну и готовая реализация под GPLv3 доступна в Натроне.

Впрочем, быть хостом для разного рода API - это не так сложно, были бы плагины.

Под AviSynth мноого чего написали.

Что до превью - да, сложностей ой сколько. Хотелка с меньшим приоритетом.

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

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

Ну, в качестве шумодавов у нас есть разные синты и тому подобное. Многие годы чистильщики шумов достаточно успешно летают по приборам. Сам редактор нужен для того, чтобы визуально смотреть кино и расставлять меточки (склейки, ключевики эффектов, оверлеи по экрану таскать). Изначально оно вообще задумывалось больше для работы со звуком и озвучиванием готовых фильмов, склейке фильмов (склеить VHS + DVD + BD). По оригинальной задумке нужен был вообще только голый таймлайн, ничего больше. Даже без списка файлов. Потому что даже нарисовать простой интерфейс уже достаточно затратно. Но вместо этого я поехал в сторону эффектов, сторибордов и тому подобного. Будет хоть что-то вообще? А я и не знаю. Это все дальше от моих изначальных целей и сами цели как-то уже не те, я порой задаюсь вопросом зачем я это начал. Поэтому кем там будет оно считаться, для меня дело десятое.

Под AviSynth мноого чего написали.

Тоже была идея использовать его как основу, однако мне все говорят про отвратительный однопоточный API и жутчайшие костыли вокруг него.

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

Хотелка с меньшим приоритетом.

Вообще, превью сделано отвратительно почти везде. Есть буквально 3.5 специфических софтины (ну что я видел), где превью годное. А ведь обратная связь для видеоредактора - это главное. Главный продукт редактора - это что-то вроде EDL-файлика, который можно и в консольке отрендерить. Маленький файлик с цифирками. И вот чтобы эти цифирки добыть, надо городить зоопарк со всем остальным. А понравится оно или нет - решает именно превью. Поэтому это на самом деле одна из главных хотелок.

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

Коммерческих - реально много. Под онтопик чуть меньше, но самые серьёзные вещи - Сапфир от GenArts, все плагины от ReVision FX и Neat Video - есть. Линукс-версии под Ньюк делались, как я понимаю. Какие-то куски сомого Ньюка The Faggotry тоже продаёт как плагины. .. шумодав на GPU и мощнейшая вещь Twixtor. .. Ну и готовая реализация под GPLv3 доступна в Натроне.

http://www.tuttleofx.org/ https://github.com/tuttleofx/TuttleOFX

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

Ну, в качестве шумодавов у нас есть разные синты и тому подобное

В эпоху, когда FullHD в утюгах и 4K в телефонах, давить шумы в видео на процессоре - это прикольно, но не очень эффективно.

Сам редактор нужен для того, чтобы визуально смотреть кино и расставлять меточки

Базовая цветокоррекция ещё.

Тоже была идея использовать его как основу

Ну API для плагинов можно позаимствовать же?

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

В эпоху, когда FullHD в утюгах и 4K в телефонах, давить шумы в видео на процессоре - это прикольно, но не очень эффективно.

И что ты этим хотел сказать? В эту эпоху никуда не девалось видео, записанное 20 лет назад на VHS, а криво-кодированного видео появляется все больше. А в довесок мы получили эпоху «кривого» видео, линзовых искажений столько, что анаморф раем покажется. Народ клеит 360 VR из подручных средств. В общем, препроцессинг никуда не ушел.

Базовая цветокоррекция ещё

Если без масок, то она тоже делается матрицами трансформации, возможно несколькими. Что контраст-яркость, что ручное выравнивание теней, что даже хромакей. Чтобы все не считать, проще сунуть это в один большой LUT. Я вот даже думаю сделать отдельный тип данных и рендерить эти луты только один раз в самом конце. И вот чтобы эти опорные точечки расставить, нам и надо фидбек увидеть, а чтобы пересвета не допустить, на этом фидбеке (превью) еще можно зебру увидеть, если кто помнит что это такое.

Ну API для плагинов можно позаимствовать же?

Конечно, только как это впишется с другими плагинами - не очень понятно. К примеру, мы хотим сделать деинтерлейс с удвоением частоты кадров - простейшая задача, с которой древний ависинт справляется легко. Если частоту удвоили, то кадров стало в 2 раза больше, надо бы таймлайн перерисовать, свойства клипа поменять. Хорошо если ключевые кадры не будут задеты. И вот у нас половина клипа в 25 fps, до некоторого эффекта, а после - уже 50. Елозишь по таймлайну - вроде бы надо по этим 50 фпс перемещаться, но первые плагины в цепочке имеют только 25. А композеру это как рендерить? Другое дело, если мы сделаем плагин какого-то особого типа, обзовем его source-only, вхардкодим что только при декодировании потока использовать, а на таймлайн и другим фильтрам даем только результат. Да, тут мир перестает разваливаться. Только каждый раз когда нам надо будет подергать таймлайн - надо включать фильтр. При этом надо надеяться, что в фильтре нет своего состояния, а то он нам насчитает при нелинейном доступе много чего.

А еще можно взять плагин и руками портировать под что-нибудь еще.

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

еще одного видеоредактора

Запили мощный и удобный плагин видеоредактора для Blender 3d. Там есть встроенный но он немного неудобен и простенький.

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

Я бы с радостью, но сколько я не пытался осилить блендер, у меня это не получалось. Каждый раз, когда я вижу новость «блендер совершил огромный скачек вперед и больше не говно», я его пробую, моих скиллов хватает только на вращение сцены и я его сношу. Сцену я научился крутить после вдумчивого чтения документации. В максе же можно сразу рисовать кубики и расставлять камеры. Блендера как редактора для меня не существует. Быть может кому-то этот продукт кажется удобным, но я испытываю к нему отвращение.

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

хватает только на вращение сцены

Дык ты не крути сцены. Используй его ТОЛЬКО как видеоредактор. Запили, а? Там плюшки всяки, типа стабиллизация видео и тп.

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

В том и проблема, что видеоредактор - это больше гуй, чем сами его функции. Стабилизация видео? А легко! Для этого нам надо посчитать вектора движения, получить из всего этого локальное движение, нарисовать масочку и вычесть это из глобального движения, затем ПРОСТО двигать кадр на известное количество пикселей и дело в шляпе! Это очень ПРОСТО. Проблемы появляются тогда, когда масочки у нас сгенерились неправильно, и чтобы их поправить, нам надо как-то визуально тыкнуть «вон тот вектор и все соседние посчитались неправильно». А это уже гуй. Прибитый гвоздями. Или сделать превью, показывающее difference между кадрами уже после компенсации, чтобы было видно как оно скомпенсировало и при необходимости «чуть подровнять». Это тоже прибивание гвоздями к гую. За какой объект держаться при стабилизации? К примеру, при помощи древнего deshake у меня порой получался красивый эффект облета, как в матрице или других дорогих фильмах/клипах. Почти получался, потому что фокус в самый неподходящий момент «убегал». Вдруг у нас основной объект съемки на пару секунд покинул область съемки - что делать? А это опять прибивание к гую.

Поэтому «ты там пока пили фильтры, а гуй не трогай» не пройдет. А от гуя и всего внешнего вида блендера меня тошнит.

ruzisufaka
()
5 июня 2018 г.
Ответ на: комментарий от ruzisufaka

только как это впишется с другими плагинами - не очень понятно. К примеру, мы хотим сделать деинтерлейс с удвоением частоты кадров

А это не делается плагинами. Либо монтажка работает полями (50/60 полей в секунду) или деинтерлейс с удвоением делается при экспорте энкодером.
Другой пример - смена скорости. Простейшая операция по прописыванию другой длительности каждому кадру. Но вот ведь незадача, fps получается нестандартным и отличается от проекта. И основная проблема корректно его преобразовать потом. Но fps в конечном итоге совпадет.

древний ависинт справляется легко

Справляться то он справляется, только с потерей вертикальной четкости. Годится только для предпросмотра. Качественный деинтерлейс адаптивный с оценкой движения, сохраняющий четкость, как Yadif или даже набор QTGMC.

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