LINUX.ORG.RU

Релиз видеоконвертера Cine Encoder версия 3.0

 ,


0

1

После нескольких месяцев работы вышла новая версия программы Cine Encoder 3.0 для обработки видео. Программа была полностью переписана с Python на С++, использует в своей работе утилиты FFmpeg, MkvToolNix и MediaInfo. Существуют пакеты под основные дистрибутивы: Debian, Ubuntu 20.04, Fedora 32, CentOS 7.8, Arch Linux, Manjaro Linux. В новой версии полностью переделан интерфейс, добавлено пакетное конвертирование, режим двухпроходного кодирования и работа с пресетами, добавлена функция паузы при конвертировании. Также программа может использоваться для изменения метаданных HDR, таких, как Master Display, maxLum, minLum, и других параметров.

>>> Сайт программы

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

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

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

<А нахрен оно при существовании в природе ffmpeg…

Во всем виноват заядлый виндоузятник StaxRip, - когда попросил его сделать версию для Линукс, тот сказал, что работает только в Виндовз и не собирается даже вникать… Пришлось с нуля писать свою собственную прогу. А так бы и не начинал ничего делать…

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

То, что такая программа есть, это хорошо.

Но я вот глянул в исходники… Куча глобальных переменных (хоть и завёрнутых в namespace), причём прямо в mainwindow.cpp:

QString _cur_preset_name = "";
bool p7;
int p1, p2, p3, p8, p11, p12, p13, p18, p21, p22, pos_top, pos_cld;
QString p4, p5, p6, p9, p10, p14, p15, p16, p17, p19, p20;
QVector <QVector <QString> > _preset_table(24, QVector<QString>(5, ""));
QProcess *process_1 = new QProcess;
QProcess *process_5 = new QProcess;
QString _settings_path = QDir::homePath() + "/CineEncoder";
...

Из этого половина просится в отдельный класс, другая половина в какой-нибудь string list. Имена вроде p14 — это вообще за гранью добра и зла.

Энтузиазм у тебя есть, это хорошо, но над стилем поработай. Иначе через пару лет ты сам не поймёшь, чего ты в этих исходниках накрутил.

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

Не забывай добавлять «ИМХО».

@hobbit

Забыл добавить «мне».

Это само собой разумеется. Я же не от лица кого то дугого пишу.

Чем больше свободного софта, тем лучше.

только если он годный

Не стоит фрустрировать авторов.

стоит, если они пишут ненужно. пусть переписывают

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

только если он годный

Ну прям мед, да еще и ложку :)

стоит, если они пишут ненужно. пусть переписывают

Если есть конкретные замечания/пожелания - в багтрекер или хотя бы тут напиши. А просто наброс на вентилятор неконструктивен от слова совсем. Любому афтырю есть куда прогрессировать в знаниях. Но если получать ушат помоев под лозунгом «нинужно», такое мотивирует писать только в закрытую репу «для себя».

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

Нужен, у меня AUR на него завязан

Серьезно? Дебажная сборка без оптимизаций лежит в AUR’е?

И давно ли это AUR/ABS разучился вызывать qmake CONFIG+=release app/cine_encoder.pro?

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

Нет, у меня стабильно работает, но мало-ли. Пару недель на дебаге, потом переделаю на релиз. Разрабы Qt посоветовали Ассерт поставить при удалении элементов QTreeWidget и погонять в дебаге.

QTreeWidgetItem *takenItem = parentItem->takeChild(parentItem->indexOfChild(item));
Q_ASSERT(takenItem==item);
delete takenItem;

а так всё работает, прогонял на valgrind, утечек нет

Oleg1980 ()
Последнее исправление: Oleg1980 (всего исправлений: 4)
Ответ на: комментарий от devl547

Вдохновение явно из a’s video encoder черпали

Нет. Почему так решили? Ничего общего. Любой конвертер, если там есть пакетный режим, естественно будет иметь табличку с параметрами.

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

Моё искреннее мнение таково: если комментарий написал eternal_sorrow, то он априори говно. Ненуачо, мнение у меня такое.

Сходи лучше к доктору, у тебя фанатизьм межушного ганглия.

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

Ты ошибаешься. Qt - это комбайн, в то время как GTK - узко специализированная библиотека. Но если тебе помимо собственно GUI нужны какие то ещё возможности, которые встроены в Qt, то в экосистеме GObject скорее всего есть подходящая библиотека для этого. А если нет, то можно подобрать стороннюю библиотеку, тогда как использовать сторонние библиотеки в коде на Qt затруднительно из за несовместимости типов.

Ну и да, с Qt ты привязан жёстко к C++ (вроде я слышал про биндинги для python, но не знаю, насколько они актуальны). В то время, как к GTK благодаря GObject Introspection существуют биндинги в куче языков.

eternal_sorrow ★★★★★ ()

Релиз видеоконвертера Cine Encoder версия 3.0

У меня там Q_ASSERT в программе, поэтому надо в дебаге погонять немного

Чувак давай будем честными, исправь заголовок на

Дебаг видеоконвертера Cine Encoder версия 0.3

anonymous ()