LINUX.ORG.RU

QTGMC на Линуксе

 


0

2

Может, кто напишет или ссылочкой поделится, как на Лине делать хорошие рипы с двд с интерлеисом, использовать QTGMC и другие скрипты-приблуды, как их запустить-то вообще даже.
HandBrake c EEDI2 не устраивает.


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

Да вот как раз вижу, что другие с QTGMC превращают старый задрипанный двд внешне, будто это хорошего качества 720р. Не верится, что такое скриптами делается, будто нейронка поработала.

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

Это какой-то набор скриптов, который виндузятники используют в XviD4PSP или MeGUI, теоретически оно и на Лине должно работать нативно через Avidemux или ещё что-то, но ни черта не понятно и инфы нет.

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

Есть, осталось ещё непонятно как AVISynth и прочее как-то вкорячить, чо-то там даже Вайн потребуется, вроде.
Пишут, есть какой-то VapourSynth, как бы тоже самое, что AVISynth, но кроссплатформенное.

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

Я тут погуглил, много гуглил, изучал. Получается QTGMC+VapourSynth юзабелен только в Arch Linux x64. Там все нужные плагины есть в AUR, добавляются и собираются в один клик. На остальных дистрах собирать всё самому это адская боль (удивительно, но у Debian 10 в deb multimedia https://www.deb-multimedia.org/dists/stable/main/binary-amd64/ многое собрано, но вроде не всё). У Ubuntu так вообще кастрированный маленький неофициальный ppa 18.04+. Вместо Arch может прокатить Manjaro, но у нее основные пакеты старее.

Если не хочешь возиться со всем этим, у меня всё собрано в AviSynth Wine Какой видеоредактор накатить на дебиан, чтоб можно было на видео наложить поняш и единорогов? (комментарий) не самое новое, но рабочее. + плагины, которых нет в VS. Я тоже против винды, но иногда просто лень.

http://forum.doom9.org/showthread.php?t=166582 обманывает, там куча зависимостей нужна https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=vapoursynth-plugin-hav...
Arch рулит, да. Жаль, я не люблю роллинг.

Дело в том, что QTGMC это просто метапакет, зависит от кучи библиотек/плагинов. Но качество деинтерлейсинга действительно потрясающее, так как он ещё и убирает шум, уменьшает остаточные «лесенки» (антиалиазинг). Не 100% идеально, впрочем, но это лучшее, что есть.

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

В deb-multimedia постарались на славу, так что, наверное, заведется. В Ubuntu использовать не получится из-за зависимостей, придется ставить Debian Buster второй системой.

Помимо плагинов из репозитория, py файлы с github надо закинуть куда-то в /usr/lib/python3.7/dist-packages

В общем, это всё довольно геморно. И потом на каждый видеофайл надо создавать свой скрипт (в случае DVD нужно извлечь m2v поток или указать все VOB-ы, желательно в D2V Creator). Потом скармливать его кодеру (ffmpeg или x264), потом клеить звук в mkvtoolnix (VapourSynth в отличии от AviSynth не поддерживает звуковые данные). По юзабельности Handbrake просто небо и земля.

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

Попробовал впихнуть репозиторий Дебиана) Да, пишет про зависимости, только я не пойму: в чём проблема доставить зависимости? А если подключить основной репозиторий Дебиана?

Ставить вторую ОС - явно не вариант.
Сомневаюсь, что мне всё равно нужны все плагины АвиСинта, тем более в Вайне и без нормальной многопоточности, оно ж и со всеми ядрами будет кодироваться долго, разница значительная. Так что нужен именно нативный Вапор.

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

Из этого PPA https://launchpad.net/~vapoursynth/ archive/ubuntu/git-ppa ставится? Обрати внимание, там в зависимостях еще какие-то PPA. Пример работы http://www.vapoursynth.com/doc/gettingstarted.html

Ставить вторую ОС - явно не вариант

Можно USB Live с Persistent storage.

в чём проблема доставить зависимости?

Пакеты собирались под определенную версию библиотек (python, ffmpeg и прочее). Может быть прокатит запустить родной для убунты vapoursynth, а плагины накидать дебиановские (выдранные бинарники из deb пакетов). Но сам понимаешь гарантий никаких, зачем тебе этот геморрой? Потренируйся на нормальных сборках (Arch или Debian). Можно опять же в виртуалке, все ядра задействовать, аппаратную виртуализацию включить в биосе - производительность просядет несильно.

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

без нормальной многопоточности

У меня MT (Multi Threading) версия AviSynth. Но, чтобы многопоточность задействовалась, тогда надо вписывать в начало скрипта SetMTMode(5) а в конце Distributor(). Но, я думаю, двухъядерник и без этого нагрузится полностью, еще ведь кодер потребляет ресурсы раздельно. Обсуждение https://rutracker.org/forum/viewtopic.php?t=4733376

оно ж и со всеми ядрами будет кодироваться долго

Если использовать не Slower пресет, а Faster или Fast (качество все равно очень хорошее, намного лучше обычных деинтерлейсеров), то не очень долго, особенно SD. На мой взгляд утяжеление пресета влияет на уровень удаления шума. Спорная технология, ведь удалять шум в общем-то никто не просил и не всегда это нужно.

Сомневаюсь, что мне всё равно нужны все плагины АвиСинта

У меня не все, а только те, что мне нужны, не очень много.

Значит, переименовываешь cxarchive в tar.gz, распаковываешь. Ставишь в wine сначала ST avisynth https://sourceforge.net/projects/avisynth2/ потом MT http://forum.doom9.org/showthread.php?t=148782 (просто закинуть dll с заменой в system32). Кидаешь плагины в папку avisynth\plugins (оттуда они автоматом подгружаются). Создаешь avs скрипт с таким содержимым:

ffms2("z:\home\user\video.mkv", atrack=-1)
ConvertToYV12(interlaced=true)
QTGMC(preset="Faster", Sharpness=0.4, Edithreads=1)
#Crop
#BicubicResize
Если нужна половинная частота, то добавляешь через запятую FPSDivisor=2 и закидываешь этот avs в VirtualDub (для предпросмотра) или в wine ffmpeg.exe для кодирования.
wine ffmpeg.exe -i script.avs -c:v libx264 -preset medium -crf 17 -aspect 16:9 -c:a libvorbis -b:a 224k -ac 2 output.mkv

* Может понадобиться через winetricks поставить vc2015 или vc2017 и fftw3.dll, libfftw3f-3.dll закинуть в system32. Если VirtualDub будет показывать черный экран, в его настройках отключить DirectX вывод.
# комментирование, для временного отключения фильтра.

Вместо ffms2 для MPEG2 (MPG и VOB) можно использовать DGIndex. Сначала им создать d2v проект (скормив ЕМУ видеофайлы), а в avs прописать уже d2v:

MPEG2Source("project.d2v", cpu=0)
В настройках должно быть Honor Pulldown Flags, если в d2v Film<97%. Если Film>97% (актуально только для NTSC), то можно выставить Force Film (заново создав проект), главное не забыть потом убрать обратно на Honor для других исходников.

Дело в том, что ffms2 иногда неправильно определяет fps у MKV MPEG2. Может, например, выдать 50p вместо 25p, где каждый второй кадр дубль.

И еще, если даже VIDEO=100%, это может быть NTSC Telecine 2:3 Pulldown и надо делать не деинтерлейс, а IVTC. Обычно, если 3 кадра прогрессивных, а потом 2 интерлейсных чередуются, то это Telecine. Вот качественный скрипт для этого случая:

MPEG2Source("project.d2v", cpu=0)
ConvertToYV12(interlaced=true)
interp = nnedi3(field=-1, qual=2)
tmmask = TMM(order=-1, field=-1)
deint = TDeint(order=-1, field=-1, edeint=interp, slow=2, emask=tmmask)
TFM(order=-1, mode=3, clip2=deint, slow=2)
TDecimate(mode=2, rate=23.976023976)
В DGindex при этом должно быть Honor Pulldown Flags, так как IVTC делает AviSynth.

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

Спорная технология

Не все знают, что QTGMC сначала удаляет шум, что приводит к замыливанию, а потом, чтобы «вернуть» детали, искусственно задирает четкость (параметр Sharpness не рекомендуется увеличивать сильно, будет перешарп).
Если положить ffmpeg.exe в C:\Windows, из консоли можно просто обращаться через ffmpeg. Его можно обновить до последней версии https://ffmpeg.zeranoe.com/builds/
В настройках Wine удобно назначить на букву y - home директорию (в CrossOver по умолчанию так).

Да, если не хочешь раскатывать все заново в Wine, можно просто импортировать http://www.mediafire.com/file/zzom2u4vk92y1h3/Avisynth.cxarchive/file в CrossOver. Создавалось в 16.2.5

Ну, а лично я винду не уважаю и Wine особо не жалую, поэтому буду раскатывать нативный VapourSynth в Debian. А недостающие плагины просить разработчиков портировать.

Но не все такие, кому-то важно ехать, а не шашечки. Правда, это скучно. Но как тест сгодится.

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

Из этого PPA https://launchpad.net/~vapoursynth/ archive/ubuntu/git-ppa ставится?

«Следующие пакеты имеют неудовлетворённые зависимости: vapoursynth : Зависит: vapoursynth-ffms2 но он не может быть установлен E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.»
«Failed to build: amd64 i386 ffms2 8 weeks ago Failed to build: i386 arm64 armhf ppc64el s390x amd64»

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

Значит сломанный ppa, ffms2 не собран. Как это феерично для убунты.

Поставь нужные зависимости оттуда через Gdebi (для Ubuntu 18.04 x64):
cython3
cython
libzimg
А vapoursynth45 распакуй и скопируй бинарники в систему:

/usr/bin/vspipe
/usr/lib/python3/dist-packages/*
/usr/lib/x86_64-linux-gnu/*
Поставь зависимости:
sudo apt-get install libass9 libavcodec57 libavformat57 libavutil55 libgcc1 python3 libpython3.6 libtesseract4
ffms2 импорт работать не будет, так что только несжатые AVI можно открывать.

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

/usr/lib/x86_64-linux-gnu/vapoursynth/
Но правильнее тогда уж собрать из исходников. Там из сторонних зависимостей требуется только свежий cython и zimg, но они есть в ppa. Сборочные зависимости:
sudo apt-get install build-essential nasm git libavcodec-dev libavformat-dev libavutil-dev libass-dev python3-pip python3-dev cython3 autoconf libtool libtesseract-dev
Взято отсюда. Я бы собирал 45. Для 46 нужен zimg 2.9, а в ppa собран только zimg 2.8. Так что для 46 придется самому собирать еще zimg.

Когда-то давно я собирал из исходников под Debian, не хотелось подключать deb-multimedia репозиторий.

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

ffms2 импорт работать не будет, так что только несжатые AVI можно открывать

Это тогда полностью бесполезный софт получается, если бы было «только mkv» - куда ни шло, но не avi.

Как-нибудь потом займусь, надоела эта необоснованная возня. И сами Avi\VapourSynth выглядят отвратно с какими-то конфигами и скриптами... Сам иногда немного что-то на баше делаю или жабоскрипте, но тут необоснованно всё усложняют.

Спасибо, всё равно в будущем пригодится всё написанное.

Ros ()

Настоятельно рекомендую поставить Debian в dualboot. Там QTGMC работает, только что проверил. Итак, вот, что я сделал:
1. Поставил Debian 10
2. Подключил deb-multimedia репозиторий
3. Установил в Synaptic ВСЕ пакеты vapoursynth* и ffmpeg (кроме vapoursynth-dev)
4. Скопировал файлы adjust.py, havsfunc.py, mvsfunc.py и nnedi3_resample.py в /usr/lib/python3/dist-packages (через sudo cp)
5. Создал следующий скрипт script.vpy:

import vapoursynth as vs
import havsfunc as haf
core = vs.get_core(2)
core.max_cache_size = 200
video = core.ffms2.Source(source='/home/denis/input.m2v')
video = haf.QTGMC(video, Preset='Faster', FPSDivisor=2, Sharpness=0.4, TFF=True)
video.set_output()
6. Запустил в терминале ffmpeg:
vspipe --y4m script.vpy - | ffmpeg -i pipe: -c:v libx264 -preset medium -crf 16 -aspect 16:9 output.mkv
7. PROFIT

Наблюдения:
a. VapourSynth очень много ест памяти по сравнению с AviSynth, чревато своппингом и зависанием, приходится его ограничивать параметром core.max_cache_size. На машине с 2 Гб RAM - 200 комфортное значение. Если у тебя 16 Гб RAM имеет смысл значение увеличить или вовсе строчку удалить.
b. vs.get_core(2) выставить равное числу ядер или меньше. Имеет смысл оставить просто пустые скобки () для автовыбора значения, что и предлагается по умолчанию, кстати.
c. Если нужно получить 50p или 60p вместо 25p и 29.97p, параметр FPSDivisor=2 нужно удалить. Если на видео честный интерлейс (каждый кадр полноценный), лучше кодировать в 50/60p.
d. Чем выше Sharpness, тем выше четкость. Максимальное значение 1.0. Главное не переусердствовать.
e. TFF=True - верхнее поле первое (Top Field First). TFF=False - нижнее поле первое. VapourSynth не умеет определять автоматически. Посмотреть можно в MediaInfo. Неправильное значение чревато дерготней (актуально только для 50/60p).
f. DVD можно перепаковать в MKV программой MakeMKV.
g. Регистр имеет значение. Предполагается, что файлы без указания путей лежат в домашней папке.

необоснованно всё усложняют

Да, там ничего особо сложного нет. У VapourSynth есть графический редактор VSEdit, где есть предпросмотр. Открываешь скрипт и нажимаешь F5.

Вместо Debian 10 можно поставить Manjaro. Тогда п.2-4 делать не надо, просто установить havsfunc-git из AUR.

Ссылки для п.4, также продублированы в web archive (25 Jul 2019):
https://raw.githubusercontent.com/dubhater/vapoursynth-adjust/master/adjust.py
https://raw.githubusercontent.com/HomeOfVapourSynthEvolution/havsfunc/master/...
https://raw.githubusercontent.com/HomeOfVapourSynthEvolution/mvsfunc/master/m...
https://raw.githubusercontent.com/mawen1250/VapourSynth-script/master/nnedi3_...

Хорошо бы сравнить результаты VapourSynth и AviSynth покадрово, а также скорость работы.
Поддержкой установки VapourSynth в Ubuntu больше не занимаюсь.

anonymous ()

Завел Вапор и плагины хотя бы на попробовать из этого ppa https://launchpad.net/~mc3man/ archive/ubuntu/bionic-prop Так-то это не дело, да и плагины ставятся в папку «/usr/lib/python3/dist-packages/vsscript», а работать должны из «/usr/lib/python3/dist-packages/».
Попробовать Manjaro что ли глянуть)

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

У меня не получилось собрать ни 45, ни 46 под Ubuntu 16.04, наверное, слишком старая система.

плагины ставятся в папку... а работать должны

В описании одного из плагина я читал, что все равно куда, главное, чтобы python их увидел.

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

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

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

Дело в том, что ffms2 иногда неправильно определяет fps у MKV MPEG2. Может, например, выдать 50p вместо 25p, где каждый второй кадр дубль.

Встретил такое. Но проще оказалось сделать так:

video = core.ffms2.Source(source='input.mkv', fpsnum=30000, fpsden=1001)

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

Не надо, QTGMC - не только качественный деинтерлеис, он ещё антиалиасинг делает, фильтры шумоподавления и резкости хороши, лучше, чем в ffmpeg.

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

А Yadif не такое уж говно. Если фильм с нормальным интерлейсом, то он справляется отлично. Хотя, интерлейсных фильмов можно пересчитать по пальцам одной руки, я знаю парочку, в основном арт-хаусные.

Отличная плавность там и никаких артефактов, как от искусственного уплавнения. Все бы так снимали, и ведь возможность есть, технология интерлейса существует с незапамятных времен. Другое дело, что 24 fps фильмы не снимают с такими вольностями камеры и используют большую выдержку, поэтому деинтерлейс 50i>25p смотрится очень печально, а 24 fps фильмы терпимо.

Хотя, давно у меня была интерлейсная DV камера и мне не нравилось, как Yadif в Avidemux оставлял зазубрины на наклонных линиях. Я думаю, зависит от контента. Если на профессиональной качественной камере сделано и передано без лишних посредников (каналов связи), то норм.

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

Yadif во-первых делает дерганую картинку, если не делать Yadif-2x, во-вторых, эти зазубрины остаются везде, независимо от контента. Опытным путем я выяснил, перебирая все доступные в ffmpeg деинты на проблематичном и показательном куске видео, что w3fdif ведет себя наилучшим образом, даже лучше, чем nnedi, плавность остается прежней, даже без x2, зазубрин не появляется. Да, nnedi глаже, видимых артефактов почти не остается, но с другой стороны, и мыльней.

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

x2 понятное дело. Если при x1 нет дерготни, значит деинтерлейсер делает смаз в движении. Так, например, работает «5-и точечный ФНЧ» в ffdshow. И надо еще смотреть, чтобы верх и низ картинки не дергались (дрожание).

независимо от контента

Я позже залью отрывок, на котором видно, что после Yadif нет никаких зазубрин.

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

Нет никаких смазов у w3fdif.

Я позже залью отрывок, на котором видно, что после Yadif нет никаких зазубрин.

Так они появляются при горизонтальном движении объектов с четкими краями на экране.

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

залью отрывок

Yadif https://ulozto.net/file/6CkCqrHKWkxi/yadif-mkv
Source https://ulozto.net/file/vboALL8554AI/source-mkv
Даже в VLC норм. Но таких чистых исходников еще поискать.

Только надо иметь в виду, что это 50p и из-за некратности с частотой монитора 60Hz не будет 100% плавности. По идее нужно переключать монитор на 100Hz.

Так они появляются при горизонтальном движении объектов с четкими краями на экране

На проводах еще раньше были.

Нет никаких смазов
Плавность остается прежней

Такого не бывает. Физику не обманешь. У тебя там, наверное, не настоящий интерлейс, а псевдоинтерлейс или транскод какой-нибудь, где много подводных камней, почему в одних деинтерлейсерах плавнее.

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

QTGMC однозначно лучше (на проблемном материале). Но QTGMC убирает шум, а некоторые его любят.

w3fdif был разработан Би Би Си. Нравится вам это или нет.
Если выбирать между w3fdif и yadif, мне больше понравился w3fdif, но у него есть недостатки.
1. yadif. Менее шумное изображение (это плохо), более мыльное, но меньше мерцания (не дергается так верх и низ картинки)
2. w3fdif более шумное изображение (как в оригинале, видимо), более четкое, но больше дергаются края. Выводит только в x2 частоту вроде.

Вообще, если посмотреть покадрово, то видно, что у w3fdif нет коррекции дрожания строк. То есть ПОСЛЕ него надо делать небольшой кроп сверху и снизу. Но w3fdif однозначно четче в покадровом сравнении. Однако будет ли вас доставать эта дерготня в середине картинки даже после кропа? yadif в этом плане стабильнее.

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

У QTGMC есть одна маааленькая проблема, прям малюсенькая. Это ладно, если вы делаете рип какого-нибудь DVD-фильма, 720x480, 90 минут, все дела.. Но если вам нужно рипнуть какой-нибудь сериал в 1080i?. Тоже самое и к NNEDI, хотя он даже быстрее QTGMC работает, особенно с малым количеством нейронов в нейросети. И вот тут-то уже былому энтузиазму приходит конец, кодировать со скоростью 0.1 кадр в секунду. Я думаю, большинство мамкиных релизеров с трекера сольются сразу, у них не принято и качество пресета кодера с medium поднимать, не удивлюсь, если они его еще и опускают, какой там качественный деинтерлейсинг, ребята. Поэтому, как минимум, мы не можем ворваться на Рутрекер и сказать, ваши релизы - говно, Миша, давай по-новой. Остается лишь жрать зазубренные релизы, а учитывая специфику такого кино, то и ремуксы уже не достать, это не Мстители или Человек-Паук.

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

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

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

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

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

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

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

Что интересно, аниме Air 2005 года, имеющее какой-то самый проблемный интерлейсинг, что ни один деинтерлейсер его нормально не берет, никто «хваленому» в аниме-кругах QTGMC так до сих пор и не скормил. Это и есть те самые жадные релизеры, а я знаю, что спрос есть.

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

Залей отрывок, я посмотрю. В аниме бывает Double Hard Telecine, это когда в одном видео две частоты сидят. Например, титры двигаются 29.97p, а само видео 23.976p. Я не умею с таким бороться. Это надо AnimeIVTC фильтр подключать, на рутрекере есть спецы. Но фильтр реально крутой, он может даже вшитый Hard Telecine убрать, если ресайза по вертикали не было, я юзал один раз.

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

Вшитый в смысле деинтерлейснутый (неадаптивным простым деинтерлейсером) и ресайзнутый по горизонтали 720>640. То есть 3 прогрессивных кадра + 2 бленда (29.97). Из этого делает 4 нормальных кадра (23.976), а два бленда магическим образом складываются в полноценный кадр.

anonymous ()