Вышла новая версия программы Cine Encoder 2020 SE для обработки видео с сохранением сигналов HDR. Программа написана на языке Python, использует в своей работе утилиты FFmpeg, MkvToolNix и MediaInfo, и распространяется под лицензией GPLv3. Существуют пакеты под основные дистрибутивы: Ubuntu 20.04, Fedora 32, Arch Linux, Manjaro Linux...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=53684
Крутое название скрипта-обёртки на Питоне, и уже SE! :)
Автоматизация - это хорошо, пусть будет )
Чуть было не подумал, что Cinema Craft Encoder.
На Python3+Qt5 можно писать очень эстетично выглядящий софт https://snapcraft.io/vidcutter (чего не сказать о его работе).
да и на wxPython можно вполне.
И что не так с его работой?
Режет неточно (округления), не показывает на таймлайне ключевые кадры, в отличии от Avidemux (только в отдельном окошке), smart cut глючный (промежуточные участки пережимаются в x264 ultrafast, но это можно подправить в файле config.py, впрочем, это не отменяет глюков, по идее надо выставить, как у исходного видео).
Вообще, все это не вина проги. Она просто скармливает тайминг ffmpeg'у. А как он округлит и порежет, это уже претензии к нему. Склеивание идет cat'ом через промежуточный ффмпеговский формат ts.
Я бы посоветовал посмотреть в окошке, где расположены ключевые кадры, но указывать "начало" чуть правее по времени, а "конец" чуть левее. Чтобы гарантированно на другие GOP'ы не перекинулось. А то ffmpeg в хвосте может такого вытворять (B кадр дропнуть, GOP оставить открытым, хорошо хоть без артефактов).Для резки с точностью до кадра (с частичным пересжатием фрагментов, aka smart cut) рекомендую виндовые VideoRedo TVSuite, SolveigMM Splitter и MPEG Video Wizard (только MPEG2). Первый не работает в Wine, а последний работает.
Но лучше сначала попробовать порезать по ключевым кадрам в Avidemux. Дело в том, что большие GOP'ы встречаются в H.264 и XviD, но там обычно есть детектор сцен и ключевые кадры совпадают с предполагаемым местом резки. В MPEG2 часто нет детектора сцен, но зато GOP всего 0.5 секунд.
> MPEG Video Wizardего автор уже поебдил проблему лимита 2G, или как обычно?
В свое время только это и остановило меня от дачи ему денег (он, если что, ни разу не бесплатен). Судя по ченджлогам - автор то ли в 2010м помер от старости, то ли решил что на early retirement уже насобирал, и проблемы пользователей его уже не колебли (логично, учитывая название 'dvd5')
Ну и монтаж без reencoding - только для mpeg2, угу. Но этот недостаток я бы как-нибудь пережил, а 2g лимит в 2k20 это уже совсем печалька. Уж лучше пользоваться линуксными недоделками, не умеющими нормально найти keyframe, чем настолько недоделком, да еще и бесплатнобезсмс и windows only.
Судя по тому что даже womble.com сдох - теперь не то что на улучшения рассчитывать не приходится, а даже и ключ получить легально не выйдет.
> автор уже поебдил проблему лимита 2G?При экспорте в MPG или AVI?
Я как-то вырезал несколько участков из DVD (там почти полноценная монтажка, можно участки менять местами) и вывел 5 Гб MPG без проблем.
Выводить в AVI не рекомендую. Могут уровни разъехаться из-за YUV>RGB>YUV преобразования. Это вечная проблема Video for Windows кодеков.
> При экспортепри _чтении_ одиночного файла (хоть mpg, хоть mp4).
Причина как бы очевидная - программка-то 32битная, 2006го года разработки. Писать в mpg при этом можно сколько угодно, в avi, скорее всего, будут проблемы.
> при _чтении_ одиночного файла (хоть mpg, хоть mp4)Ах вот оно что. Я не особо активно пользовался этой прогой, скармливал VOB'ы из DVD, они разбиты на 1 Гб. Вроде бы склеивались они гладко (если добавлять особым способом).
Так как на DVD грубо разрезано, то это можно повторить для цельного mpg (самому порезать).
С mp4 так не выйдет, но прога не для него.
Чем еще хороша: VobSub субтитры сохраняются.
Все-таки чем старее формат, тем его легче обрабатывать.
А поди-ка найди монтажку без перекопирования для новомодного AV1.
> Судя по тому что даже womble.com сдох - теперь не то что на улучшения рассчитывать не приходится, а даже и ключ получить легально не выйдетНичего не поделаешь. Это удел проприетарного виндового софта.
Avidemux его вполне заменяет.
> Avidemux его вполне заменяет.Ни разу - мне не потрахаться с нечеловеческим интерфейсом для битрейтод$рочеров, мне быстро и с минимальными времязатратами порезать/наложить фоновую хрипелку/сэкспортить - и желательно без потери времени на рекомпрессию. Но в тот редкий момент, когда надо чуть посложнее операцию - инструмент для нее будет под рукой. Для форматов нулевых годов - вомбля справлялась идеально, очень жаль что автор то ли помер, то ли сделался вечно живой (то есть, обратно, помер).
Когда-то с этим справлялся даже microsoft live video, но, увы, сперва был изгажен, а после и вовсе уничтожен чтоб поживее переходили на десяточку. Где, вы будете ржать, но видео надо обрабатывать в...photo, и который при этом не умеет ничего вообще.
Только коммерческие виндовые монтажки типа Edius умели MPEG2 (и DV) без перекодирования, при совпадении параметров экспорта. Но сейчас я не вижу особых проблем пересжать в H.264 и монтируй в чем хочешь.
Для указанных целей нет задачи "не пересжимать", есть задача - сделать быстро и с приемлемым (а не идеальным) качеством. С пересжатием всего материала "быстро" не будет.
Тогда пережимай в MPEG2, это быстрый кодер.
На рутрекере один перл выдал: "не видел MPEG2 кодеров, которые бы кодировали с битрейтом выше 10000". LOL
Вот хороший MPEG2 кодер x262 http://forum.oszone.net/thread-346242.html
И еще есть в составе Cinelerra mpgenc или как-то так (наверное, из состава mplex), тоже с детектором сцен.
То же, что и с электроном надо полагать.
И это при том, что жс исполняется быстрее питона.
Хочу перегнать эту прогу из Питона в C++, пробовал через Cython, но пока-что не получается. Может кто-то знает способ как это сделать без лишних движений? Или напрямую скомпилировать в исполняемый код, пишут что можно через PyPy, но не нашел как это сделать.
> Хочу перегнать эту прогу из Питона в C++, пробовал через Cython, но пока-что не получаетсяНу здрасьте.
cython - это не волшебная палочка, которая просто вжух и переведёт готовый код без всяких забот
Еще хочу создать .Appimage, тоже всё глухо в этом направлении.
> Еще хочу создать .Appimage, тоже всё глухо в этом направлении.Когда мне понадобилось, то я просто в SNAP засадил и всё 👍
И не надо со всеми этим линуксовыми зависимостями петрушиться.
Ну iPony да, больше не на что не способен кроме как в snap засадить.Откуда вы такие беретёсь, откуда у вас все эти проблемы с зависимостями и чего вы с ними петрушитесь? Почему у нормальных людей этих проблем нет?
> Ну iPony да, больше не на что не способен кроме как в
> snap засадить.
> Откуда вы такие беретёсь, откуда у вас все эти проблемы с зависимостями
> и чего вы с ними петрушитесь? Почему у нормальных людей этих
> проблем нет?Если можете, подскажите как для моего случая собрать Appimage.
Не могу понять как в кучу всё собрать, от мануалов толку мало пока-что.
В распоряжении у меня есть так же готовый бинарь, выложен в релизе,
может с ним проще будет?
https://github.com/CineEncoder/cine-encoder
Я могу помочь тебе собрать нормальные пакеты, для нормальных пакетных менеджеров. Почти для всех совеременных дистров. А в последствии и автоматическую сборку в контейнерах выделить Что разумеется и от тебя потребует некоторых усилий для того чтобы довести всё до ума и исправить ошибки которые есть (но почему-то не вылезли у тебя).И именно таким образом делаются качественне продукты. Когда совместными усилиями и мантейнеры и разработчики доводят свою программу до действительно работоспособного состояния.
Appimage тоже могу, но не буду. Я не сторонник разводить помойку в системах.
> Я могу помочь тебе собрать нормальные пакеты, для нормальных пакетных менеджеров. Почти
> для всех совеременных дистров. А в последствии и автоматическую сборку в
> контейнерах выделить Что разумеется и от тебя потребует некоторых усилий для
> того чтобы довести всё до ума и исправить ошибки которые есть
> (но почему-то не вылезли у тебя).Было бы не плохо
Из дома уже напишу под логином (не помню пароля), подумаем как организовать. Личные сообщения не помню были ли тут.
> Из дома уже напишу под логином (не помню пароля), подумаем как организовать.
> Личные сообщения не помню были ли тут.Лички не вижу здесь на форуме. Можно через пулл реквест, ребята уже присылали.
Ага, ok. Вроде какой-то аккаунт был на гитхабе.
> Откуда вы такие беретёсь, откуда у вас все эти проблемы с зависимостями и чего вы с ними
> петрушитесь? Почему у нормальных людей этих проблем нет?потому что нормальные не пишут на пихоне? Во всяком случае - на современном, когда шаг влево-вправо от именно того набора версий всего на свете, понатащенного в зависимостях третьего и шестого порядков - и как у нашего Олега - type object 'QPalette' has no attribute 'PlaceholderText'
(и нет, virtualenv тут не очень поможет, потому что еще и другую версию самой qt придется туда же запихать, а не только ее пихонообертки)
> потому что нормальные не пишут на пихоне? Во всяком случае - на
> современном, когда шаг влево-вправо от именно того набора версий всего на
> свете, понатащенного в зависимостях третьего и шестого порядков - и какНу из питона я также в бинарь перевел, с совместимостью не должно быть проблем
Переводить должен не ты, сборочная система.
А ldd-то на этот бинарь что говорит? nuitka вроде не должна же запихивать в него и сами системные библиотеки, с которыми поналинкованы питоновские модули-прослойки, нет в ней такого неестественного интеллекта.Потому что это по-моему больше смахивает на проблему несовместимых версий самой qt, а не ее модуля.
> nuitka вроде не должна же
> запихивать в него и сами системные библиотеки, с которыми поналинкованы питоновские
> модули-прослойки, нет в ней такого неестественного интеллекта.Когда в Nuitka через Ubuntu собрал бинарь, лишних библиотек не вижу,
размер 124 МБ, вполне рабочий вариант.
https://github.com/CineEncoder/cine-encoder/releases/downloa...
Хотя уже нашел косяк: Nuitka почему-то старую версию Qt подтягивает и происходит сбой в программе, наверное надо как-то явно указать путь при компиляции к новой версии Qt.Вылетает ошибка где-то на этом коде, не могу понять почему именно после компиляции с Nuitka:
if percent >= 50 and calling_pr_1 == True:
self.procedure_1.finished.disconnect(self.error)
self.procedure_1.finished.connect(self.add_metadata)
calling_pr_1 = False
> потому что нормальные не пишут на пихоне?Ну оно то конечно да, но и нет. Есть продукты на питоне которые люди довели до ума с пониманием дела. С понимание того как вообще это может быть в разных системах. Те кто озаботились поработать совместно с мантейнерами и довели свою проду до состояния при котором она нормально собирается системой сборки, тестируется хотябы в полуавтоматическом режиме. У тех всё нормально. А зависимости уже почти все сборочные системы выставляют почти автоматически.
Но большинство питона не так. Наклепал непонятно как, собрал какой-то флатошлак и всё, прогу релизну, програмист в большой компании два васяна продакшен.
>> потому что нормальные не пишут на пихоне?
> Ну оно то конечно да, но и нет. Есть продукты на питоне
> которые люди довели до ума с пониманием дела. С понимание тогону вот - был у нас, к примеру, mercurial. Довели, да. А потом хренак - и "ну мы тут кое-как все же сумели ядро перенести на 3.7, только теперь оно, вероятно, поломано в ста местах, поэтому если репо вам дорог, то ну его нафиг. А если вы плагины левых авторов использовали (в чем и была, в целом, полезная часть идеи делать vcs на питоне) - то и вовсе опаньки".
Ну, или там, trac, к примеру. Казалось бы - идеальная пихон-программа, суперскорости от нее не требуется, требуется аккуратная работа с форматами и протоколами, для которых пихон вполне подходил - и, опять же, простота модифицируемости проекта и подключения сторонних модификаций, не руша все вокруг. Тоже "был".
> Но большинство питона не так. Наклепал непонятно как, собрал какой-то флатошлак и
> всё, прогу релизну, програмист в большой компании два васяна продакшен.вот сейчас мазилле обидна было.
"exactly 2.7.4", ага?
(нет, она умеет venv, но сам питон все же надо предварительно где-то взять)
> Почему у нормальных людей этих проблем нет?У всех есть, просто у некоторых есть вагон времени, чтобы с этим петрушиться, а у других нет
У меня нет вагона времени. За меня это делает набор контейнеров для нужных мне дистров.А вот чтобы разгребать свалку после этих флакошлаков точно нужен.
> У меня нет вагона времени. За меня это делает набор контейнеров для нужных мне дистров.Это и есть вагон времени.
Какому-то сварщику на что-то простое, типа сваять крышку для погреба, (отрезать, приварить) потребуется этак один час. Всё готово и всё под рукой.
Ну так всё дело в том, что в создание этой мастерской потребовалось много времени и ресурсов. А не так, что час и готово.И причём этот сварщик понимает, что не всем оно сдалось, а не кичится "я сварных дел мастер, а вы белоручки".
Не всем оно сдалось 😐
Видузятник? Уже 100 лет в обед с этим давно проблем нету. Системы сборки в чистое окружение сами ставят сборочные зависимости, соми собирают пакеты и сами проходятся по используемым библиотекам и собирают runtime зависимости.Ещё и тесты потом гонят.
У одних виндузятников вечная ..опа с сборкой.
> Видузятник?нет
> Уже 100 лет в обед с этим давно проблем нетунет
Он маковод. Linux палочкой ковыряет. Откуда ему знать о линуксовых зависимостях? Когда я был таким же (только на винде) у меня тоже были подобные стереотипы о завимостях.> у некоторых есть вагон времени, чтобы с этим петрушиться, а у других нет
Но времени попетушиться на форуме они находят.
> Откуда ему знать о линуксовых зависимостях?По работе... Откуда ещё...
И да, если бы я только тыкал палочкой, то наверно у меня и было ощущение, что это всё как-то волшебством решается, сообщество прибежит и прочая вот ерунда от фанатиков...А так реальность не такая радужная 🌈
Проф деформация, как у пох'а.
Виндоадмины тебе не такого порассказывают.
> Виндоадмины тебе не такого порассказывают.Причём тут вендоадмины... Ну на Windows нет такого зоопарка, и ломается всё куда медленнее - это действительно упрощает разработку.
Ужас какой.
Вообще-то, цитон именно вжух и никаких забот. Поменяешь 1 переменную счётчик в цикле -- получишь ускорение в 10000000000000 раз. Не поменяешь, будет обычный либпитон тебе код исполнять, только в виде скомпонованного бинаря. Все альтернативы за исключением путуехе пытаются нагенерировать бинарь из лапши (довольно успешно, впрочем, но не читаемо).
Не получается с Cython у меня, я только начинаю его осваивать. Пытался без перепоределения переменных делать, т.к. там вообще швах получается ели все переменные под Cython переопределять.
Там емнип надо создать файл setup.py и оно само всё вытянет и соберётВроде такого:
from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_extsetup(
cmdclass = {'build_ext': build_ext},
ext_modules = [Extension("project", ["project.pyx"])]
)Во всяком случае я очень успешно и продуктивно пользовался.
А не, там ещё мейкфайл. Ну дальше разберёшься наверно, я маны копировал и всё собралось и заработало без проблем.
Пока что даже не представляю как с этим работать, я создавал этот Setup.py, но скомпилировать .pyx в исполняемый код так и не получилось - не знаю как это всё потом собрать в кучу через gcc либо через QtCreator. А Makefile для меня вообще темный лес. Если кто-то сможет помочь, буду прямо рад.
В мейкфайле там по сути cython -3 --embed -o example.c example.py и gcc -O2 -I /usr/include/python3.8 example.c -lpython3.8 -o example и больше ничего, просто удобней писать make clean && make чем каждый раз копировать все эти строки.Хотя, я не пробовал скомпилировать все зависимости прямо в один файл. В сети говорят, что pyqt без проблем собирается. Ну, мне и так норм, конечно. Может, лучше готовый venv в appimage запихнуть? Тогда я шипил со 2 питоном, в 3 компиляция в бинарник вообще не нужна как по мне. Теперь есть venv, есть pip, всё остальное от лукавого.
> Может, лучше готовый venv в appimage запихнуть? Тогда я
> шипил со 2 питоном, в 3 компиляция в бинарник вообще не
> нужна как по мне. Теперь есть venv, есть pip, всё остальное
> от лукавого.Я бы с радостью, а как это сделать? Я пробовал через Appimage-build сделать, .yaml файл писал, но ничего не получилось.
Наверно вот это https://docs.appimage.org/packaging-guide/from-source/native...
Используй Nuitka
В Nuitka мне кстати удалось создать пакет, но что-то он очень тяжелый получился - около 300 Мб. К тому же я так понимаю туда тот же интерпретатор Python вшит в полученный бинарь.
Интерпретатор питона около 2мб кстати. Наверно, придётся шипить. Но нуитка разве не чтобы отвязаться от интерпретатора существует? Там наверно кути, но pyqt я так смотрю тоже 13 мб всего… Что туда на 300 метров напихать можно?
> Интерпретатор питона около 2мб кстати. Наверно, придётся шипить. Но нуитка разве не
> чтобы отвязаться от интерпретатора существует? Там наверно кути, но pyqt я
> так смотрю тоже 13 мб всего… Что туда на 300 метров
> напихать можно?Вот что у меня получилось через Nuitka:
https://github.com/CineEncoder/cine-encoder/releases/downloa...
(использовал команду: python -m nuitka --standalone --follow-imports --plugin-enable=qt-plugins main.py)
Похоже на правду, оно там просто все бинарники собрало. Мне кажется как минимум кути с иксами и всякие egl уже будут системные и незачем их шипить. Как там принято распространять кеды я не знаю, но можно посмотреть на кеды, они в appimage многие свои проекты релизят.
> Похоже на правду, оно там просто все бинарники собрало. Мне кажется как
> минимум кути с иксами и всякие egl уже будут системные и
> незачем их шипить. Как там принято распространять кеды я не знаю,
> но можно посмотреть на кеды, они в appimage многие свои проекты
> релизят.Еще бы знать какие именно лишние библиотеки исключить...
Сейчас пересобрал бинарь и размер получился 124 МБ, лишних библиотек не вижу. На этот раз в Ubuntu собирал, получается еще и от дистрибутива зависит что-ли, не понятно...
До этого в Manjaro собирал, и размер получался больше 300 МБ.
Извините, у меня есть точь в точь однострочник на баше, разве что без предпросмотра и наоборот конвертирует mp4 в удобоваримый протагированный mkv. Ну очень похоже. А сабж умеет конвертировать диски, проставлять части и названия дорожек? Просто односточник с этим справляется, я его правда назвал shitwrapper 0.0.2 (версия 0.0.1 могла работать только с 1 дорожкой каждого типа, вот незадача! и битрейт нельзя было узнать, если тот некорректно протагирован или вообще отсутствует, а теперь он считается при необходимости).К слову, у вас работают превью для видео в kdialog?
PS. главное не забыть кнопку доната, это главное!
Хотя нет, вот координаты цветности я не знаю что такое, такого у меня не завезли. Так что вещь видимо полезная и нужная, во всяком случае, главное, что не ручной тормоз!
А чем тебе не нравится ручной тормоз (Handbrake)?. Обычная, но полезная ffmpeg обертка. Просто пользоваться надо уметь, так то и в ffmpeg дефолты дурацкие
Пресеты очень плохие и неудобные. Да и без пресетов, я поменял нужные параметры и перегнал 10bit-4k-h265 в 8bit-4k-x264, в итоге и у меня появились какие-то разноцветные точки на краях, искажения цветов, проблемы с субтитрами и звуком (в частности, с рассинхроном, там пустота в оригинальном файле в 2 местах была). Плюнул на всё это, перегнал голым ffmpeg в nvenc, посмотрел с комфортом, удалил.
> Пресеты очень плохие и неудобныеПервым делом всегда создавал свой. Можно даже тонкие настройки указать.
> проблемы с рассинхроном
У меня наоборот после Handbrake не было рассинхрона https://forum.ixbt.com/topic.cgi?id=29:34519:6#6 а после MeGUI был.
Думаю, у вас проблемы с плеером. Не тянет, не сразу применяет таймкоды (надо "пнуть" таймлайн), не использует аппаратный декод из-за параметров кодирования.
У меня с FFmpeg почему-то проблемы, после перекодировании нет метаданных:- video stream size,
- bits/(pixel*frame),
- bitrate (bitrate, maxrate).не знаю как заставить FFmpeg их добавлять... (именно в режиме HEVC такая ерунда почему-то)
Так они же вроде сказали "это не наши проблемы", мол, энкодер не отдал эту инфу, а значит делать ничего не будем, всего хорошего. По-моему, можно было получить нормальный файл скопировав потоки в gpac (надо делать это аккуратно, чтобы случайно не перекодировать), а потом уже их собирать в матрёшку. Но это достаточно время/ресурсо затратно, даже если простое копирование, его придётся выполнять несколько раз.
А, ну это для звука. Для видео пришлось дёргать ffmpeg-debug-qp или что-то подобное. Мне гораздо комфортней оказалось забить, чем ждать часы пока файл отсканируется.
Не знаю как в ffmpeg. В отличии от mkvtoolnix, ffmpeg не добавляет track-statistics-tags, на которые смотрит MediaInfo для расчета вышеобозначенных параметров. Это ограничение mkv контейнера. Так что можно перепаковать в mkvtoolnix (с дефолтными настройками) и эти данные появятся (даже у vbr звука).
Если нет track-statistics-tags, а звук cbr, то MI через вычет битрейта звука из общего размера файла рассчитывает параметры видео. Еще MI смотрит на строку bitrate в метаданных x264 кодера (которые, кстати можно подделать и обмануть прогу). Но если использовалось crf кодирование, то битрейт там не указан. Короче, x264 CFR и VBR звук без track-statistics-tags = никакого битрейта MI не покажет.
Этой проблемы нет в mp4 контейнере. Если так критично делать за раз, можно использовать его. Но я бы все равно предпочел mkv.
Хм. А ещё ffmpeg некорректно помечает aac, он не может даже понять, это vbr или cbr (и ощущение, что это вообще рандомно). Соответственно, теги даже могут быть, но mediainfo показывает какой-то бред. Тоже решается gpac.
Ну, я к тому, что не в одной матрёшке дело.
Согласно данным скрипта plotbitrate в aac битрейт почти всегда переменный. В cbr просто меньше размах и, я так думаю, там есть слежение за тем, чтобы буфер не переполнялся. Мало какие кодеры могут создавать aac максимально приближенным к cbr. Разве что Mainconcept, потому что создавался для стриминга (используется в Sony Vegas и других коммерческих монтажках) и, может быть, аппаратные кодеры. Так что cbr или vbr в aac это скорее формальный заголовок. Его проставляет кодер.
Строгий CBR только в простых форматах: MP3, AC3, DTS, MP2. Потому они разрешены в AVI, в котором расхождения чреваты рассинхроном.
> plotbitrateПросмотр графика битрейта аудиофайлов
http://forum.oszone.net/thread-345290.html
Кстати, часто левые цифры показывает и даже перепаковка в matroska не помогает.
>Так что можно перепаковать в mkvtoolnix (с
> дефолтными настройками) и эти данные появятся (даже у vbr звука).Действительно, MkvToolNix рулит, сейчас попробовал - все параметры которые мне надо появились. Из контейнера TS переводил - там вообще ничего не было.
Воу, действительно появились stream size и bitrate, спасибо! Видимо, я раньше не замечал, поскольку я и так мешал файлы mkvmerge, но благодаря тебе я буду знать об этой маленькой "особенности" ffmpeg, которую я уже замечал прежде. Аудиодорожки правда теперь совсем уж некорректные, битрейт указан, но я точно знаю, что он совсем иной. С видео не будет такой же проблемы?
Ну я так понял, что это ffmpeg мог изначально некорректные параметры битрейта вписать, как и было в моем случае. FFmpeg что-попало выводит в заголовок, из исходника тупо копирует битрейт и всё остальное. С Mkvtoolnix ничего подобного не заметил, всё правильно определил.
Кстати, у mkv merge пропадает часть исходных параметров. Сейчас проверил, при копировании mp4->mkv ffmpeg добавляет поле nominal bitrate, mkvmerge ставил просто bitrate, bits/pixel в обоих случаях показывается. А вот stream size нету, и файл не протагирован корректно. Фреймрейт тоже некорректный. Если прогонять mp4->mp4, теги все копируются корректно и добавляются новые. Всё-таки, получается, этот муксер действительно косячный немного у ffmpeg, как минимум.
В общем, и ffmpeg и mkvtoolnix косячные. Эх, опенсорс.
> В общем, и ffmpeg и mkvtoolnix косячные. Эх, опенсорс.Не знаю, у меня прямо всё четко получилось: ts -> mkv
Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main 10@L5.1@High
HDR format : SMPTE ST 2086, HDR10 compatible
Codec ID : V_MPEGH/ISO/HEVC
Duration : 1 min 14 s
Bit rate : 43.5 Mb/s
Width : 3 840 pixels
Height : 2 160 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 59.940 (60000/1001) FPS
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 10 bits
Bits/(Pixel*Frame) : 0.087
Stream size : 388 MiB (99%)
Writing library : ATEME Titan File 3.7.7 (4.7.7.1)
Default : Yes
Forced : No
Color range : Limited
Color primaries : BT.2020
Transfer characteristics : PQ
Matrix coefficients : BT.2020 non-constant
Mastering display color primaries : Display P3
Mastering display luminance : min: 0.0500 cd/m2, max: 1200 cd/m2
У меня написано variable framerate в исходном mp4 и расхождения у всех при любом копировании, со звуком тоже какая-то ерунда, пишет constant bitrate или ничего и число от балды, когда там variable bitrate и совсем другое значение. Я уже дошёл до того, чтобы вручную посчитать битрейт всех фреймов и получить точный максимальный/средний. Скопировать gpac что ли для проформы, скорее всего там нормально всё пометит.
Таки да, у gpac всё просто отлично и никаких косяков с файлами не вижу. Респект разрабам gpac, вот таким должен быть опенсорс.
mkvtoolnix очень плохо поддерживает импорт mp4. Многие теги (и субтитры) просто теряет. Лучше перегнать mp4 в mkv с помощью ffmpeg (для субтитров надо указать -c:s srt), а потом еще раз в mkv с помощью mkvtoolnix. Также нельзя добавлять mpeg1/2 напрямую в mkvtoolnix.Флаг vfr видео и странные fps в mp4 это тоже обычное дело. Я не знаю, кто виноват: контейнер или mediainfo. В mp4 fps надо смотреть в ffmpeg. Тут еще бывает кодеры кодят cfr по факту, но флаг проставляют vfr на всякий случай. А потом из-за этого mediainfo плющит в mp4.
> HDRЭто все, конечно, хорошо (и не нужно), но где взять годный контент? Что-нибудь кроме американских боевичков выходит? Я просто не слежу за темой.
Кстати, VapourSynth многие юзают для обработки HDR.
Аниме, наверное, выходит?
VapourSynth
> Как я понял это снихрон технология apiVapourSynth is an application for video manipulation. Or a plugin. Or a library. It's hard to tell because it has a core ..
Vapoursynth это практически тоже самое, что ffmpeg, но только надо не параметры в командной строке задавать, а писать скрипт (который скармливается для финального энкода в ffmpeg, собранный с его поддержкой). У VS есть ffms2 плагин импорта (тоже на базе ffmpeg библиотек). Ну а собственно сам vapoursynth с плагинами всячески видео обрабатывают (цветокор, деинтерлейс и т.д.). То есть, это frame server, как avisynth. Зачем он нужен, если есть ffmpeg? ffmpeg не все умеет.Скрипт в простейшем случае представляет из себя (упрощенно):
ffms2("входной файл.mkv")
some process plugin
outputВообще-то синтаксис у него довольно сложный (python), по сравнению с avisynth (c). avisynth кстати есть и под линукс, но портированных плагинов почти нет.
>> HDR
> Это все, конечно, хорошо (и не нужно), но где взять годный контент?
> Что-нибудь кроме американских боевичков выходит? Я просто не слежу за темой.Разница между HDR и SDR есть, но нужен телек с поддержкой HDR для этого.
Контента полно.
> HDR контента полноКак по мне, 3D круче. Лучше купить 3D телек и посмотреть Terminator 2 с 13-летним Джоном Коннором. В оригинале, конечно (и без сабов).
Еще придумали Dolby Atmos - супер многоканальный звук. Такая же ерунда, как HDR. На кой нам 128 дорожек? Стерео хватит всем.
Или лучше бы на 60p перешли, вот где реально круто.
Кто знает простой-быстрый gui для обработки и конвертирования видео ?
Handbrake, Avidemux.Я раньше на винде долгое время использовал MeGUI при создании DVD рипов для рутрекера.
Все хвалят XviD4PSP5, но это религия.
Использование MeGUI и XviD4PSP5 для всего подряд чревато рассинхроном. Так что лучше первые два.
За
>AvidemuxСпасибо
MeGUI тоже использовал удобная но немноголенивая поддержка и ток win
> Кто знает простой-быстрый gui для обработки и конвертирования видео ?Лучше XMediaRecode ещё не изобрели. Но он вроде закрытый, хоть и бесплатный.
Сорян, он, похоже, под винду (а казалось что кросс).
Если так любите проприетарщину, можете попробовать
https://winnydows.com/ru/готова-xvid4psp-daily (на 8.0.102 ссылки в комментах)
https://www.videohelp.com/download/XviD4PSP-8.0.54-Lin64.zip
И расскажите потом.
Консоль. Даже под виндой. Если индивидуально каждый раз, либо скриптик для однообразия.
Видишь ли, помимо рипанья блюреев, понятие "обработка видео" включает в себя кое-что еще.И обрабатывать видео, не видя его - это для очень альтернативно-одаренных.
Qwinff
> QwinffНеплохая прога (Qt4 GUI для ffmpeg). Но с 2015 года перестала развиваться. Версия для Ubuntu 15.10 заработала в 16.04.
Я, правда, перепаковал, задав свои настройки:su -
mkdir tmp
dpkg-deb -R original.deb tmp
dpkg-deb -b tmp fixed.debВ отличии от GTK'ного WinFF, QWinFF использует относительные пути ffmpeg а не захардкоденные в /usr/bin (хотя, это менялось в настройках). А вот пресеты свои создавать через GUI нельзя. Но можно править файл /usr/share/qwinff/presets.xml (мой https://pastebin.com/raw/J7sdXM9i встроенные пресеты выпилил нафиг). Запоминает последний входной каталог. В GUI нельзя выбрать аспект, но можно указать кастомные параметры. Если выходной файл уже существует, используется автопереименование. В /usr/share/qwinff/constants.xml указывается какие файлы по умолчанию будут предлагаться в диалоге открытия. Что с одной стороны порадовало, а с другой огорчило - не выводится консольное окно ffmpeg при работе. Нельзя посмотреть лог кодирования.
В новых дистрах собрали с Qt5. Но, как по мне, Qt4 лучше, т.к. маскируется под GTK2.
Маскировка Qt5 под системную тему есть, скорее всего, только в Ubuntu, в остальных дистрах приходится прикручивать (например, через qt5ct, который не везде есть готовый). Да и то, диалоги не факт, что будут одинаковыми (в Xubuntu 16.04 интеграция неполная, но, возможно, в новых норм).
> QwinffЭтой прогой нельзя пользоваться для декодирования ac3 дорожек. Дело в том, что она использует ffmpeg, а ffmpeg по умолчанию применяет компрессию динамического диапазона (информация drc есть не во всех ac3 дорожках, но во многих официальных). Чтобы этого избежать в ffmpeg ПЕРЕД входным файлом -i нужно указать -drc_scale 0 (указание после -i приведет к ошибке). Проблема в том, что в QWinFF нельзя указать опции перед -i, они всегда применяются после. Таким образом, декодировать ac3 через QWinFF очень не рекомендуется (на рутрекере за это бы били по рукам). Но можно использовать режим -c:a copy. В Avidemux и Handbrake, кстати, DRC по умолчанию отключен. Для других аудиоформатов использовать QWinFF можно (главное всегда проверять).
По этой причине не получится перепаковать некоторые форматы (AVI, MPG) в MKV в режиме copy. Для этого опять же перед -i требуется указать -fflags +genpts -fflags +igndts (регенерация DTS и PTS), а в проге это невозможно.
Также советую осторожно использовать встроенные пресеты. Проверяйте, чтобы fps исходного видео и fps пресета (параметр -r) совпадал. Часто выбирая в пресетах какой-нибудь Iphone, там захардкодено -r 29.97, а если исходное видео 25p, то будут рывки. Это порочная практика принудительного указывания -r в пресетах, так как девайсы часто едят несколько частот (стандартных по крайней мере). Это сделано, наверное, на случай совсем уж нестандартных частот (типа 40 fps), а интеллектуальный режим auto синтаксис проги не позволяет (например, все, что ниже 30p оставить как есть, а выше уменьшить кратно в два раза). Обычно девайсы не едят высокие fps. Или если это американский NTSC DVD плеер (но ffmpeg и так не умеет создавать валидные файлы для него).
В общем, прогой надо пользоваться с осторожностью. И я бы сказал, что это вредный совет, предлагать такую прогу.
В общем, отредактируйте пресеты, чтобы было -acodec copy -scodec srt и -r везде уберите.
Если добавить -map 0, то будут использованы все дорожки, а не только дефолтные.
> на рутрекере за это бы били по рукамРутрекеровцы, впрочем, сами криволапые. Да, ac3 декодят правильно (в azid/eac3to каком-нибудь, что на базе старого патченного ffmpeg, лол). Но как они предлагают его ему скормить? Просто извлекают с помощью mkvextract, без учета таймкодов, что чревато рассинхроном. Delay, может еще и учтут.
Справедливости ради, gaps и overlaps (в некоторых форматах) eac3to все-таки правит (с ограниченной точностью). Но, как показала практика, не всегда.
Интерфейс странный. Почему не дать возможность развернуть окно на весь экран, чтоб данные исходника и опции кодирования умещались, и не нужно было щёлкать идиотские переключатели?
Кстати, у всех трёх кнопок слева-сверху (Settings, About, Donate) одна и та же всплывающая подсказка — «Minimize».
Ахаха
Они вкатываются опенсурс)
> Кстати, у всех трёх кнопками слева-сверху (Settings, About, Donate) одна и та
> же всплывающая подсказка — «Minimize».Да, с Minimize есть такой баг, даже не заметил ...
Кстати, в вышеупомянутых окнах «About» и «Donate» текст не влезает в границы окна. А программа, похоже, не запоминает пути, выбор исходника всегда начинается с хомяка.
> Кстати, в вышеупомянутых окнах «About» и «Donate» текст не влезает
> в границы окна.Фигня какая-то... Может разрешение экрана низкое? У меня всё помещается четко (разрешение 1920х1080).
>> Кстати, в вышеупомянутых окнах «About» и «Donate» текст не влезает
>> в границы окна.
> Фигня какая-то... Может разрешение экрана низкое? У меня всё помещается четко (разрешение
> 1920х1080).Хотя нет, даже при разрешении 1024х768 нет таких проблем. Возможно от дистрибутива зависит ...
Аналогично, но не влезают, из-за шрифтов. У меня размер шрифта 12pt, а у тебя, похоже, жёстко заданы размеры окон. Да и с расположением что-то странное.
> Аналогично, но не влезают, из-за шрифтов. У меня размер шрифта 12pt, а
> у тебя, похоже, жёстко заданы размеры окон. Да и с расположением
> что-то странное.Да, из-за шрифта скорей всего, у меня 10pt, размеры окон фиксированы. Еще возможно DPI играет роль, у меня 96 DPI. Расположение в системе настраивается, иначе будет появлятся где-попало.
2.1 - 22 days ago
2.2 - 15 days ago
2.3 - 7 days ago
2.4 - 11 hours agoНекогда объяснять, надо делать новые версии!
Почему так много скрытой рекламы виндового софта в комментах ? Где этот Шигорин ?
Учится делать новые версии как в посте выше...
кто вам виноват что невиндовый либо УГ, либо полное г0внище, либо корявый хромой клон виндовой версии, потому что афтырь уже догадался, что сляпанное на qt можно пересобирать под линухом, но вот инструменты этой сборки пока еще не осилил нормально.
Кто знает рабочий способ как скомпилировать Python в исполняемый код?
Использовать компилятор питона, удивительное рядом.
Правда, ты расстроишься от результатов. Потому что это будет все то же промежуточное представление, которое у тебя хранится в *.pyc (только в чуть другом формате), плюс транслятор этого pyc в непосредственно исполняемые команды, запиханный в тот же файл. И это были бы цветочки, если бы не было ягодок - туда же будет запихнут и весь миллиард зависимостей зависимостей от зависимостей, притянутых при сборке. Включая и те, что в обычном случае мирно лежат у тебя где-то в /usr/lib/python*Поэтому результат будет хорош только тем, что его можно будет, как один файл, скопировать на другую машину, где нет питона, или есть не той версии, или то же самое с зависимостями. Размер его будет чудовищным, время запуска - вполне одинаковое по сравнению даже с нескомпилированным .py
В любом случае - тебя сюда не звали и ты тут не нужен
фанатики-вендоненавистники - ненужны.
вот морда наглая.. рекламирует виндософт, а чуть-что - сразу вопит про ненавистников. ты прямо как представитель ЛГБТ. очень похожи методы.
зайти на виндофорумы и заикнится про линукс - сразу забанят. а тут раздолье.
Никто не виноват что винда унылое г, совершенно не пригодное для программирования. Никто не виноват что ничего нормально там не работает и по каждому чиху надо кучу непонятных действий делать.Никто не виноват что в винде нельзя ни один софт вообще нормально собрать без плясок с бубном. И каждый васян городит свой велосипед.
Никто не виноват что люди пишущие софт под венду задолбались это делать и решили попробовать себя в нормальных система. Вот только знаний маловато. Отсюда флатошлаки и прочее недоразумение по принципу как в венде.
От того и убого в флатошлаках всё, откуда идея пришла - так и работает.
> Никто не виноват что винда унылое г, совершенно не пригодное для программирования.Вы прослушали ценное мнение "знатока", умеющего программировать в .md (и еще немного в html, но это неточно)
> Никто не виноват что в винде нельзя ни один софт вообще нормально собрать без плясок с бубном.
Еще одно ценное мнение "знатока". Да, твой .md собирать-то не надо.
Сколько-сколько в ваших прекрасных "нормальных системах" механизмов сборки, и сколько лет надо изучать их волшебные ни с чем несовместимые нескучные язычки?
И каждый васян из гугла - городит свой ни с чем несовместимый велосипед для единственного файла .cpp - который мог бы обойтись комментарием в первых строчках "запустите g++ -o " - если бы васян знал как этот самый g++ запускается.> Вот только знаний маловато. Отсюда флатошлаки и прочее недоразумение по принципу как в венде.
В винде такого мусора чтоб всю винду запаковать вместе с программой на три строчки - отродясь не видали.
Это как раз ваша, л@п4атая технология, и не надо ваших тараканов пересыпать на окружающих. Это ВЫ ниасилили ни версионные библиотеки, ни автоматические системы учета зависимостей (потому что в конечном итоге они тащат весь интернет за любой ерундой), ни сборку куда-то не в хомяк разработчику. Чего с вас, убогих, взять-то.
Слаще морковки-то не едали.
> Сколько-сколько в ваших прекрасных "нормальных системах" механизмов сборки, и сколько лет надо изучать их волшебные ни с чем несовместимые нескучные язычки?Нисколько. Я их вообще не изучал. Ну то есть опыта набираться надо, когда-то я даже не знал для чего нужны файлы include.
> они тащат весь интернет
В snap, flatpak, appimage не собирал, не знаю. Как-то ради своего патча хотел собрать VLC во flatpak, но не осилил. Сделал по старинке. Имхо, эти 3 системы по уровню гемора виндоподобны, но это не точно.
> ниасилили
Это на винде не осилили нормальное пакетирование. А все из-за боязни нарушить обратную совместимость. Хорошо, что я сбежал из этой помойки.
> помойкиЯ признавал это даже когда был виндузятником. Так что не надо спорить. Надо признавать недостатки.
Но оправдывал тем, что зато много разного софта.
Тогда я многого еще не знал.
Например, что многий коммерческий софт тащит opensource либы, причем старые версии, а исходники закрывает.
Чего бы им с коммерческим Mainconcept не договориться? Денег жалко, лучше бесплатно утащить.
Ну крупные корпорации, конечно, договариваются. Иной раз лучше бы они это не делали.
> Где этот Шигорин?На лоре.
> Почему так много скрытой рекламы виндового софта в комментах?Просто многие линуксоиды перешли с винды и рассказывают чем пользовались.
в debian buster:
> $ python3 -m cine_encoder.main
> …
> File "/usr/lib/python3/dist-packages/cine_encoder/ui_main.py", line 480, in setupUi
> palette.setBrush(QtGui.QPalette.Active, QtGui.QPalette.PlaceholderText, brush)
> AttributeError: type object 'QPalette' has no attribute 'PlaceholderText'только что склонировал с житхаба
Засада...
Надо будет подумать как это исправить
А с питоном так всегда. Я даже перстал надеятся что что-то склонированное с гитхаба на питоне может заработать с первого раза у кого-то кроме автора проги.Увы, это уровень. Поэтому они и собирают свои снапошлаки. Потому что добится запуска на компе кроме своего ну просто не в состоянии. Так что и прога будет рабоать так-же.