LINUX.ORG.RU

Хочу написать ГУИ видеоредактор

 , , ,


0

2

Я предполагаю, что для такого надо собирать команду (ибо вообще разработка ПО вещь тяжелая), но все равно спрошу.

Знаю базово C. и после гуглежа, я хочу писать видеоредактор на базе ffmpeg и использовать Qt. Но я не понимаю всей картинки, как и где должно работать. Предполагаю, надо делать гуи интерфейс для вызовов в ffmpeg, и написать еще часть интерфейса, который будет держать видеоряд и аудиоряд. ну и еще как то предосмотр реализовать, наверное какой то mpv прикрутить, но там уже вопрос к обработке видеоряда, как он будет поступать в плеер.

Короче, вопрос к Сенсеям (ибо я плох в гуглеже, простите),с какими документациями мне нужно быть знакомым, что бы все выше реализовать? Я зеленый = (

(Да, хочу сделать велосипед)



Последнее исправление: linuxuser112 (всего исправлений: 3)

Знаю базово C.

Иди команде cinelerra-(gg,cv) помогай, там сишного кода полно, заодно и узнаешь как должен выглядеть и работать профессиональный видеоредактор.

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

Может ты возьмешься за то в чем понимаешь? Если есть такая область. Если вера твоя велика в то что тебе надо заниматься именно видеоредактором, то присоединяйся к разработке какого-то уже существующего опенсорсного. Баги там порешай из трекера. Там и подразберешься что да как

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

Может лучше взять максимально легковесный тулкит? Например что-то вроде fltk? Как ни крути, но графический видеомонтажный софт должен быть максимально легковесным.

Goat ★★
()

наю базово C. и после гуглежа, я хочу писать видеоредактор на базе ffmpeg и использовать QT

Может лучше какой-нибудь imgui? Он хотя бы поближе к си, чем qt, да и для видеоредахтура вполне подойдёт

mittorn ★★★★★
()

В целом Си для GUI не слишком устаревшее и сложное ли?

В том плане, что не имея представления что и как делается. Не имея готовой архитектуры приложения. Придётся обретать опыт по ходу дела. А значит переписывать код и его части многократно.

Шанс успеха в этом случае сильно снижается.

Как альтернативу уже советовали выше, чтобы разобраться, изучить существующие проекты. Возможно даже поучаствовать в них. Чтобы лучше разобраться.

Или использовать более быстрые способы разработки. Если потом не лень будет – переписать на Си.

Самое главное – какой план-то? Он есть вообще? Что за видеоредактор? Что в нём должно быть и всё это. Функционал. С этим вопросом есть продвижение? Он в идеале должен быть решён до начала разработки.

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

Возможно, да, староват. Надо поискать другой язык програмирования. Rust подойдет? Просто хочу по чуть чуть изучать програмирование, паралельно делая интересный мне проект.

Возможно да, можно просто примкнуть к существующему. Но надо разбираться в целом как и что там устроено, что бы что то исправить. Иду ли Я в правильном направлении мыслей?

План: написать для начала простенький видеоредатор (обрезка видео/аудио, размещение их в нужном порядке), просто без ефектов. Потом по мере своих необходимостей реализовывать нужные функции, а не разрабатывать комбаин сразу. Хотя я планирую делать open source редактор, и если кто то захочет что то реализовать, то придется смириться только со своими потребностями, и дать волю другим.

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

План: написать для начала простенький видеоредатор

Я бы предложил проигрыватель. Для начала. Без элементов управления. Без ничего. Просто запускается

./awesomevideoplayer video.mkv

И открывается окно с этим видео.

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

Всё по очереди, а не сразу.

Для начала достаточно. Наверное.

thegoldone ★★
()

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

на базе ffmpeg

Графическая оболочка к ffmpeg для линейного монтажа? Да, звучит неплохо, таковые уже есть, но удачность их UI под вопросом, для меня, например, проще было в ключах самого ffmpeg разобраться. И по мне, так для такого не надо собирать команду, для разработки «в одну харю» задача вполне подъёмная. Вот добровольные тестеры понадобятся.

А вот ПО нелинейного монтажа типа Kdenlive это уже гораздо сложнее, и я, например, городить здесь велосипеды смысла не вижу.

и использовать QT

QuickTime? или ты всё-таки про Qt?

hobbit ★★★★★
()

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

m0rph ★★★★★
()

Ключевой момент про…пущен — целеполагание.

Ответь себе на вопрос: зачем вообще тебе это надо? Какие задачи будет решать твой новый редактор лучше, чем это делают все уже существующие? Для начала, ты вообще их пробовал, существующие? Кроме kdenlive?

Может, окажется, что нужно было просто взять DaVinci и не мучаться?

Редактор — это не интерфейс. Это прежде всего структуры данных, организация потоков данных, графы, форматы файлов, видеовывод, устройство GPU, шейдеры, многопоточность и ещё много–много всякого подкапотного. Красивый и удобный GUI конечно тоже хорошо, но сам по себе он работать не будет.

С тем, что перечислено в исходном посте выйдет не то что kdenlive, скорее avidemux. Что возвращает нас к вопросу: зачем миру нужен ещё один авидемукс и чем плох уже существующий?

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

самое смешное, что целеполагание понятно. Тут вот товарищ рядом в комментарии сказал про авидемукс — но есть вопрос к количеству поддерживаемых форматов. (чисто по документации)

Dispetcher14 ★★★★★
()

Cinelerra

ShotCut

(Lightworks)

Но мне по душе пуще прочих

OpenShot.

Идеален в своей простоте. Первый ролик для одного из ведущих музеев страны делал в нем.

Вот если нейлиненый редактор без GUI сделаешь, то вообще шикарно будет. В стиле MC.

Но идея вообще отличная.

AnonymUser
()
Последнее исправление: AnonymUser (всего исправлений: 2)
Ответ на: комментарий от linuxuser112

Написать что то типа ffplay?

Да, наверное. Только перед началом работы сделайте оценку. За сколько Вы это сделаете. Сколько часов. И потом посчитайте сколько реально ушло времени. И так для каждой последующей фичи.

Это нужно, чтобы развить навык оценки.

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

Если imgui (для него есть сишный враппер) или nuklear - то вполне.
Если делать сишный ООП как в gtk - то конечно нет, лучше сразу взять чисто плюсово-оопшное решение.

mittorn ★★★★★
()

Я рекомендую начать со знакомства с существующими решениями, будь то конвертеры, вроде qwinff/MystiQ или какие-нибудь обёртки. Втягиваться совсем с нуля будет жёстковато, ffmpeg штука нетривиальная.

AKonia ★★★
()
Последнее исправление: AKonia (всего исправлений: 1)

Можно взять за ориентир OpenShot в плане функций.

Можно начать так (делать, на мой взгляд, имеет смысл только нелинейный редактор):

  1. Сделать дизайн программы (расположение элементов): а) монитор видео (плеер), б) дорожки (внизу), в) эффекты, г) файлы проекта. д) Инструменты над дорожкой. Получаем 4 больших окна. И по ходу дела добавить нужные вкладки.
  2. Наверх панель с функциями (файл) и т.д. Т.е. кнопки: добавить файл, копировать/вставить, удалить, добавить на дорожку. Инструменты: разрезать и т.д.
  3. После создания дизайна, можно уже думать, как функции описанные в дизайне будут работать.

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

Но как бывший режиссер монтажа скажу так: надо чётко понимать - что ты делаешь - редактор видео или программу создания спецэффектов.

Я бы советовал не смешивать. Нормальный редактор должен:

  1. Иметь возможность нелинейного монтажа: разрезка, перемещение эпизодов, наложение 1 на 1.
  2. Разделение звука и видео.
  3. Редактирование звука. (Как минимум громкость).
  4. Вставка статичных кадров - картинок.
  5. Титров.
  6. Возможность рендеринга в разные форматы.
  7. Опционально затухание/медленное появление
  8. Опционально перемещение кадра по x,y,(+вращение), увеличение/отдаление.
  9. Опционально коррекцию цвета, контраста и т.д.

Остальные вещи, типа удаление шумов - это уже эффекты. Тоже самое относится к вещам типа «отражения» (обратная последовательность кадров, хотя штука нужная для худ. кино. Сюда же ускорение, замедление). Лучше не пытаться в редактор запихнуть все возможности. Для редактирования звука уже есть Audacity. Для спецэффектов есть Blender и собственная фантазия. Но задача грандиозная, да!

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

Т.е. надо понять, что основная функция видеоредактора - изменение последовательности видеоряда, вырезка/вставка.
AnonymUser
()
Последнее исправление: AnonymUser (всего исправлений: 8)