Этого треда уже нет.
Это копия, сохраненная 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 в среднем картинка чётче, но артефактов больше, иногда сильно зернистые промежуточные кадры получаются.
Как, что и где можно подкрутить, чтобы улучшить результат?
Тред утонул или удален.
Это копия, сохраненная 22 июня 2019 года.

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

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