Двач.hk прислал битые данные.
Вы видите копию треда, сохраненную 22 июня 2019 года.
Можете попробовать обновить страницу, чтобы увидеть актуальную версию.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
avisynth.png17,5 Мб, 320x512
AVISYNTH-THREAD Windows 7: New Opera 2534165 В конец треда | Веб
AviSynth — свободно распространяемая программа с открытым кодом, предназначенная для обработки видеоматериалов, в частности линейного и нелинейного монтажа.
Простыми словами - мощный инструмент с множеством фильтров, которые в большинстве случаев доступны только в коммерческих продуктах, занимаемых много места на жестком диске. Использование этого инструмента не очень удобное, но результаты зачастую того стоят. Я решил использовать AviSynth из-за того, что он оказался самым простым вариантом для увеличения частоты кадров путем интерполяции, подобный метод есть в "Adobe After Effects" и в "Adobe Media Encoder", начиная с версии CS6, но это слишком тяжеловесный софт, да и настроек в нем маловато. Потом оказалось, что дефекты некоторых чересстрочных видео смог устранить только фильтр QTGMC, никакой другой, даже коммерческий исправить фильтр дефект не смог.
Для удобства использования я сделал скрипт, который делает avs-скрипты по шаблону для отдельного файла или для директории. Эти скрипты можно открыть с помощью "FFMPEG" и в том числе пакетно сконвертировать в стандартный видеофайл.
УВЕЛИЧЕНИЕ ЧАСТОТЫ КАДРОВ ВИДЕО ПУТЕМ ИНТЕРПОЛЯЦИИ Windows 7: New Opera 2 2534195
Скрипт с плагинами - в прикрпленном файле avisynth.png (нужно открыть архиватором и распаковать).
Для начала нужно установить сам AviSynth: https://github.com/pinterf/AviSynthPlus/releases/download/r2772-MT/AviSynthPlus-MT-r2772-with-vc_redist.exe . Проверить его можно путем создания файла "test.avs" со строкой: Version() , затем перетащить этот файл в плеер и если AviSynth установился правильно, то будет показана его версия. В распакованную директорию со скриптами нужно добавить бинарник "FFMPEG.EXE": https://ffmpeg.zeranoe.com/builds/ , если он не установлен в системе.
Теперь нужно просто перетянуть видео файл (AVI, MP4) на скрипт "generate-avs.bat" и нажать ENTER. В директории GENERATED_SCRIPTS должен появится скрипт "название_видео_файла.avs". Затем нужно запустить скрипт "encode.bat", нажать ENTER и начнется кодировка в видео файл в директорию со скриптами с шаблоном по умолчанию для увеличения частоты кадров путем интерполяции.
Windows 10: Firefox based 3 2534197
Почему не VapourSynth? Я просто новичок, мне интересно с какого фреймворка желательно начать изучение?
Windows 7: New Opera 4 2534199
>>34197
Под VapourSynth есть далеко не все плагины, которые писались только под AviSynth (NNEDI3, EEDI3, InterFrame).
Windows 10: Firefox based 5 2534364
>>34165 (OP)
Бамп
Ubuntu Linux: Firefox based 6 2534963
Так и не понял, как пользоваться им в линуксе
Windows 10: Firefox based 7 2534965
Ubuntu Linux: Firefox based 8 2534984
>>34965
Сто чаёв тебе.
Linux: Chromium based 9 2535002
Годная программа?
Windows 8: Firefox based 10 2535026
>>34195

> в прикрпленном файле avisynth.png


А где сам прикреплённый файл?
Поделись ссылкой на команды для скриптов AviSynth, можно на английском.
Windows 10: Firefox based 11 2535030
>>35026

> А где сам прикреплённый файл?


Изображение в ОП-посте. Просто открой его архиватором.
Linux: Firefox based 12 2535231
>>34984
AvxSynth сильно урезан. Тут, уж, лучше сразу VapourSynth пользовать. Или таки AviSynth+ под wine.

>>35002
Скриптовый нелинейный видеоредактор. Нуфф сказал. Была бы под него нормальная IDE, был бы годнотой. Лютейшей годнотой. А в том виде, в котором есть с девяностых, оно употребимо только очень частно. Хотя я использую AviSynth как единственную NLE с этого вашего 1999 года. Но я и не клипы ваяю и не видеоблохер.
Windows 8: Firefox based 13 2535264
Как сделать ресайз, чтобы разрешение, допустим, по высоте? В ffmpeg, это делается одной командой - scale=640:-1, а как тут?
И почему местная cut-команда, может вырезать только по кадрам(опция trim(100,200), а если я хочу по таймингу, как в ffmpeg(-ss 00:20 -to 00:30)?
Windows 10: Firefox based 14 2535332
>>35231

> Но я и не клипы ваяю и не видеоблохер.


А чем занимаешься?
Linux: Firefox based 15 2535684
>>35332
Когда был школьником-студентом в 90-е и первой половине нулевых, рипал фильмы и аниме, оцифровывал и сводил любительские съёмки (репортажка; преимущественно детские праздники, прогулки и бытовуха) своих друзей и родственников. Там тоже есть всякое разное, от обратного телекино и реставрации, до авторинга DVD и сведения с титрами. Никогда никакой художки, т. к. не умею и не претендую — чисто техническая работа.
В настоящее время очень плотно работаю по специальности (радиоинженерю) в интересах силовиков. Работа такая, что не заскучаешь. Одно время хотел видео кодеры с компенсацией движения исследовать, но сколько раз не принимался — так и бросал из-за работы.

>>35264

> Как сделать ресайз, чтобы разрешение, допустим, по высоте? В ffmpeg, это делается одной командой - scale=640:-1, а как тут?


Насколько помню, в Avisynth функции *resize() не допускают подобной нотации, и нужно выходной размер растра указывать явно. Но это не так критично, как невозможность указывать математические выражения и ссылаться на числовые переменные при записи аргументов функций.
В функциях современного VapourSynth тоже указывать нужно явно, но там в основе Python, так что с математикой там без проблем.

> И почему местная cut-команда, может вырезать только по кадрам(опция trim(100,200), а если я хочу по таймингу, как в ffmpeg(-ss 00:20 -to 00:30)?


Очевидно, чтобы не играть в эти игры с PTS и не проигрывать. FFmpeg вынужден работать с PTS, т. к. он работает с готовым к просмотру видео, а фреймсерверы могут и абстрагироваться от PTS и править видеоряд как дискретное множество данных безотносительно временных меток. Просто удобнее работать с видеорядом непосредственно, а время смены кадра — это дополнительная абстракция.
Windows 7: New Opera # OP 16 2536338
Вы хоть отпишитесь, скрипты норм работают? А то долго мне пришлось допиливать, чтоб нормально воспринимались и файлы и директории.
Windows 8: Firefox based 17 2536630
>>36338

> do ffmpeg -i "a" -b:v 3M -an "%OUTPUT_DIRECTORY%~na-ENCODED.mp4"


Ну, хз. Можно было бы и получше команду для кодирования поставить. А почему без звука?
Кстати, подскажи, как сделать простой батник, который бы просто запускал ffmpeg, потом .avs файл, а потом кодировал бы все в output файл. Как у тебя в батнике, но проще.Я просто не сильно разбираюсь в программировании.
gears.png168 Кб, 2000x1821
Windows 7: New Opera 18 2536774
>>36630

> А почему без звука?


Это я для себя выставлял, чтоб использовать модуль MPEG2Source для обработки контента с DVD, он предназначен только для видео. Убери параметр -an и будет со звуком.

> Кстати, подскажи, как сделать простой батник, который бы просто запускал ffmpeg, потом .avs файл, а потом кодировал бы все в output файл. Как у тебя в батнике, но проще.


Делать все одним скриптом не стоит. Лучше сгенерить avs-скрипты, а потом уже подгонять видео, проигрывая avs-скрипт в ffplay или каком-то плеере. AviSynth херит "Aspect Ratio", если оно было указано в контейнере, все равно его вручную надо выставлять. Если видео скачано с какого-то онлайн-сервиса, то этой проблемы не будет.
Добавил скрипт в пикрелейтед, который генерит .avs, кодирует видео с помощью FFMPEG и удаляет .avs. Его нужно добавить в директорию к остальным скриптам. Нужно просто перетянуть на его видеофайл, нажать ENTER и он начнет кодировать видео. Проверь, работает у тебя или нет?
Windows 7: New Opera 19 2536782
>>36696 (Del)
Есть возможность запустить под VapourSynth QTGMC, не говоря уже о плагиных без открытых исходников?
Windows 10: Firefox based 20 2536797
>>36782
Это вайпер, по всей доске развлекается, игнорируй его.
filmreel.png115 Кб, 732x334
Windows 7: New Opera # OP 21 2536931
>>36774
Заметил проёб при использовании названий файлов с пробелами, немного исправил.
Windows 8: Firefox based 22 2536956
>>36931
Работает, вроде. И тот, что в шапке.
Но хотелось бы узнать, что написать в батнике, чтобы при его открытие(батника), запускался бы ffmpeg, который бы выбирал мой avs скрипт, и делал двухпроходное кодирование видео, потом кодирование звука, а потом все это выводил в выходной файл.

Типа, как я думаю:
ffmpeg -i "ссылка на мой avs.скрипт" (первый проход без звука)(второй проход без звука)(кодирование звука без видео)(объёдинение в выходной файл) out.mp4
Параметры проходов, кодирования звука я поставлю сам, мне просто нужен пример.

Объяснил, как ртом.
film-reel.png268 Кб, 720x720
Windows 7: New Opera 23 2536978
>>36956
generate-avs-encode-two-pass.bat: берет звук с .avs, работает с аудио-видео модулями.
generate-avs-encode-two-pass-mux.bat: берет звук с исходного файла, конвертирует его в отдельный файл, затем объединяет с видео.
bomfunk.mp49,1 Мб, mp4,
854x480, 0:50
Windows 7: New Opera 24 2536982
Android: Mobile Safari 25 2536984
>>34195
В ффмпег уже есть фильтр для интерполяции
-lavfi minterpolate=fps=60
1.mp44,9 Мб, mp4,
854x480, 0:27
Windows 7: New Opera 26 2536992
>>36984
Хорошо, что добавили фильтр. Когда-то ждал его. Но с настройками по умолчанию он работает хуже, чем SVPFlow.
Windows 7: Firefox based 27 2536996
Сможете перевести в прогрессив древний клип, а то у меня получается не очень?
Windows 7: Firefox based 28 2537001
>>36996
Вот клип https://my-files.ru/zsfrfk там творятся темные чересстрочные чудеса. Мне бы рецепт как его излечить от чересстрочности.
Linux: Firefox based 29 2537036
>>36782

> QTGMC


За восемь лет это и многое самое популярное портировано. Плюс, есть кое-какая двоичная совместимость.
Windows 8: Firefox based 30 2537064
>>36956
Что я делаю не так, что батник не запускается? Где ошибка?

@echo off
SET "INPUT_DIRECTORY=c:\User\ffmpeg-20190403-ee16d14-win64-static\bin\"
SET "FFMPEG_PARAMETERS_PASS-1=-c:v libvpx -pix_fmt yuv420p -speed 0 -qmin 0 -qmax 20 -b:v 1M -tile-columns 1 -row-mt 1 -auto-alt-ref 1 -an -sn -dn -pass 1 -f webm NUL"
SET "FFMPEG_PARAMETERS_PASS-2=-c:v libvpx -pix_fmt yuv420p -speed 0 -qmin 0 -qmax 20 -b:v 1M -tile-columns 1 -row-mt 1 -auto-alt-ref 1 -an -sn -dn -pass 2 -f webm pass2.webm"

PUSHD %~dp0

for a in ("%INPUT_DIRECTORY%.avs") do ^
ffmpeg -i "
a" "%FFMPEG_PARAMETERS_PASS-1%" & ^
ffmpeg -i "%%a" "%FFMPEG_PARAMETERS_PASS-2%" & ^
del ffmpeg2pass-0.log
& ^

Файл .avs находиться в той же директории, где и батник.
Windows 7: Firefox based 31 2537076
>>37064

>SET "


Что ты мучаешься с батниками? Пиши на lua, у него интерпретатор крошечный и синтаксис приемлемый.
batch.png48 Кб, 256x256
Windows 7: New Opera 32 2537187
>>37064
Ты убрал условия, которые определяют, является ли ввод файлом или директорией.
drag-and-drop.png52 Кб, 256x256
Windows 7: New Opera 33 2537199
>>37064
И если хочешь, чтоб все было в одной директории, то нужно менять и пути к плагинам в TEMPLATE-1.txt.
Windows 8: Firefox based 34 2537247
>>37199
Нет, ты все пытаешься написать код, основываясь на твоём batнике, с вопросом о выборе типа файла и прочее. Я же пытаюсь, на основе твоих команд сделать свой батник, в котором уже прописан путь к моему avs. Вот, например,
@echo off -типа, я понял, это не показывать команды в командной строке
SET "INPUT_DIRECTORY=c:\User\ffmpeg-20190403-ee16d14-win64-static\bin\" - это я понял, переменная, которая указывает путь для входной директории(опять же, что указывать файл или папку?
SET "FFMPEG_PARAMETERS_PASS-1=-c:v libvpx -pix_fm бла-бла-бла - это переменная первого прохода(да?), ниже - для второго прохода .

PUSHD %~dp0 - что это я не понял.

for a in ("%INPUT_DIRECTORY%.avs") do ^
ffmpeg -i "a" "%FFMPEG_PARAMETERS_PASS-1%" & ^ - типа, выполнить "ffmpeg -i ПУТЬкAVS ПЕРЕМЕННАЯ1ПРОХОДА (да?), а что такое ("а")?
Повторюсь, я в программирование полный ноль.
drag-and-drop.png497 Кб, 256x256
Windows 7: New Opera 35 2537344
>>37247
В этом посте >>37187 я приложил скрипт без вопросов. Просто на него перетягивается видеофайл или папка с видеофайлами и начинается обработка.
INPUT_DIRECTORY - входной файл или директория с файлом .avs, определяется далее и в зависимости от значения переменная меняется - для файла - file.ext, для директории - directory/. Если файл или папка перетягивается на скрипт, то становится INPUT_DIRECTORY. Можно убрать вторую часть скрипта и указывать вручную, но зачем? Я уже удалил все вопросы и оставил только возможность перетащить файл/папку на скрипт начинается обработка.
PUSHD %~dp0 - установить текущей директорией директорию, где находится скрипт.

> а что такое ("а")?


Это переменная от выполнения "for %a", в которой записан сканируемый исходный файл или список файлов в директории.
FFMPEG лучше прописать в системную переменную PATH в винде, чтоб всегда был доступен.
Еще один скрпит с путем к FFMPEG в пикрилейтед.
Windows 8: Firefox based 36 2537376
>>37344
Работает, да,но..Типа, кодирует, применяя фильтры интерполяции, которые берет из сгенерированого .avs. А зачем "генерить" avs, чтобы потом его "автоматом" удалить? И потом, хотелось бы просто перетащить файл, запустить двухпроходное кодирование, которое бы подцепляло мой avs файл, предварительно расположенный в этой же папке, где и batник. ВоТъ..
Windows 8: Firefox based 37 2537382
>>37376
А, или можно просто заменить содержимое двух (кстати, почему два файла?) TEMPLATE.txt файлов, записав туда нужные команды для avs, которое генерит твой батник.. Хм.
Windows 7: New Opera 38 2537384
>>37382
Так это и есть главная особенность скрипта. Пришлось разбить на две части, чтоб быстрее происходила обработка. Работает так: Перенаправление первой части в скрипт > добавление модуля с именем файла > добавление второй части. Файл в скрипте должен указываться после загрузки всех плагинов, но до функций.
Windows 7: New Opera 39 2537386
>>37382
Главное оставить структуру нетронутой (пустые строки вначале и конце не убирать).
Windows 8: Firefox based 40 2537394
>>37384
>>37386
Нет, правда, спасибо, что помогаешь дуракам с Двачей..
А вот это %%~na., это имя выходного файла? А расскажи, что эти символы означают?
Windows 7: New Opera 41 2537397
>>37394
Открываешь cmd.exe > for /?. Там все расписано:

Операции подстановки ссылок на переменные команды FOR
также расширены. Допускается применение следующих
синтаксических конструкций:
%~I - из переменной %I удаляются обрамляющие кавычки (")
%~fI - переменная %I расширяется до полного имени файла
%~dI - из переменной %I выделяется только имя диска
%~pI - из переменной %I выделяется только путь к файлу
%~nI - из переменной %I выделяется только имя файла
%~xI - из переменной %I выделяется расширение имени файла
%~sI - полученный путь содержит только короткие имена
%~aI - переменная %I расширяется до атрибутов файла
%~tI - переменная %I расширяется до даты /времени файла
%~zI - переменная %I расширяется до размера файла
%~$ПУТЬ:I - проводится поиск по каталогам, заданным в
переменной среды ПУТЬ, и переменная %I
заменяется на полное имя первого найденного
файла. Если переменная ПУТЬ не определена или
в результате поиска не найден ни один файл,
то этот модификатор заменяется на пустую
строку.
Windows 8: Firefox based 42 2537477
А можно вырезать несколько участков в видео?
Например,
trim (100,200)
trim (500, 600)
trim (800,1000)
Linux: Firefox based 43 2537541
>>37477
Разумеется.
Функция trim() возвращает переменную типа clip, значение которой можно присвоить поименованной переменной. Значение последнего определённого клипа хранится в специальной переменной last. Ключевое слово return принимает выражение, которое при выполнении должно вернуть тот самый клип, который весь скрипт даст на выход. Вот пример (cкрипт вернёт соединённые clip_a и clip_b, наложенные с прозрачностью 50% поверх clip_c):
clip_l = last
clip_a = clip_l.trim(100, 200)
clip_b = clip_l.trim(500, 600)
clip_c = clip_l.trim(800, 1000)
return clip_c.Overlay(clip_a ++ clip_b, opacity=0.5, ignore_conditional=true, pc_range=true)
Windows 10: Chromium based 44 2537696
>>34165 (OP)
Я так и не понял, зачем это, когда есть ffmpeg,
Linux: Firefox based 45 2537728
>>37696
А ты пытался?
Windows 8: Firefox based 46 2537773
>>37541
А как мне вырезать два отрезка из видео, вставить между ними "затухание"(FadeIO2), а потом объединить в выходное видео?

clip1 = Trim(2523, 4007)
clip2 = Trim(6180, 6732)
clip3 = FadeIO2(clip1, clip2, 95)

это не работает, в чем ошибка?
Windows 7: New Opera # OP 47 2537838
>>37696
В FFMPEG есть далеко не все фильтры. Я бы очень хотел, чтоб все фильтры AviSynth были кроссплатформенными и доступными в FFMPEG. А нормально портировали в FFMPEG, начиная с 2010 года, только фильтры от MPlayer и еще некоторые. Не дождавшись, пришлось разбираться с AviSynth.
Screenshot20190409215426.png124 Кб, 1680x980
Linux: Firefox based 48 2538199
>>37773
Ошибка синтаксическая у тебя.
Идём и смотрим http://avisynth.nl/index.php/Trim
Синтаксис такой:
Trim(clip, int first_frame, int last_frame [, bool pad] )
Т. е. функция принимает как минимум три аргумента:
- clip — имя переменной исходного видеоряда;
- first_frame — целочисленное значение номера первого кадра;
- last_frame — целочисленное значение номера последнего кадра.
В моём примере в >>37541 используется постфиксная (объектная) нотация. Форма записи, при которой опускается первый аргумент, а в качестве первого аргумента при вызове функции используется видеоряд, возвращаемый выражением, написанным до точки. Т. е. оператор «.» (точка) работает слева направо (исходное значение слева, функция-обработчик указывается справа и результат будет передан вправо до конца строки), а оператор «=» (присвоение, определение) — справа налево (выражение справа от оператора и до конца строки будет полностью вычислено, а результат будет передан в переменную слева от оператора).
Такая форма записи нужна для компактного человекочитаемого способа изложения сценария, чтобы не теряться во вложенных скобках. Также форма такая очень полезна для записи выражения в несколько строк. Например (две последние строчки из >>37541
можно записать так):
(см. пикрел)
Windows 7: New Opera 49 2565578
Windows 7: New Opera 50 2565977
Какой лучше всего использовать фильтр для деблокинга и для автоматической регулировки уровней?
Windows 8: Firefox based 51 2571642
>>34195
Как заэнкодить без потери качества? Мне после интерполяции ещё обрабатывать и эффекты накладывать надо.
Windows 8: Firefox based 52 2573232
>>71642
Сам спросил, сам нашёл. В encode.bat нужно так строчку изменить
do ffmpeg -i "a" -c:v huffyuv "%OUTPUT_DIRECTORY%~na-ENCODED.avi"
Если сравнивать с Adobe After Effects (с параметрами по умолчанию), то у AVISYNTH в среднем картинка чётче, но артефактов больше, иногда сильно зернистые промежуточные кадры получаются.
Как, что и где можно подкрутить, чтобы улучшить результат?
Обновить тред
Двач.hk прислал битые данные.
Вы видите копию треда, сохраненную 22 июня 2019 года.
Можете попробовать обновить страницу, чтобы увидеть актуальную версию.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /s/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски