Программы


Ответить в тред Ответить в тред

Check this out!
<<
Назад | Вниз | Каталог | Обновить тред | Автообновление
51 12 15

AVISYNTH-THREAD Аноним (Microsoft Windows 7: New Opera) 05/04/19 Птн 09:34:17 25341651
avisynth.png (17914Кб, 320x512)
320x512
AviSynth — свободно распространяемая программа с открытым кодом, предназначенная для обработки видеоматериалов, в частности линейного и нелинейного монтажа.
Простыми словами - мощный инструмент с множеством фильтров, которые в большинстве случаев доступны только в коммерческих продуктах, занимаемых много места на жестком диске. Использование этого инструмента не очень удобное, но результаты зачастую того стоят. Я решил использовать AviSynth из-за того, что он оказался самым простым вариантом для увеличения частоты кадров путем интерполяции, подобный метод есть в "Adobe After Effects" и в "Adobe Media Encoder", начиная с версии CS6, но это слишком тяжеловесный софт, да и настроек в нем маловато. Потом оказалось, что дефекты некоторых чересстрочных видео смог устранить только фильтр QTGMC, никакой другой, даже коммерческий исправить фильтр дефект не смог.
Для удобства использования я сделал скрипт, который делает avs-скрипты по шаблону для отдельного файла или для директории. Эти скрипты можно открыть с помощью "FFMPEG" и в том числе пакетно сконвертировать в стандартный видеофайл.
УВЕЛИЧЕНИЕ ЧАСТОТЫ КАДРОВ ВИДЕО ПУТЕМ ИНТЕРПОЛЯЦИИ Аноним (Microsoft Windows 7: New Opera) 05/04/19 Птн 10:14:14 25341952
original-25.mp4 (6433Кб, 960x720, 00:00:25)
960x720
avisynth-60.mp4 (9605Кб, 960x720, 00:00:24)
960x720
Скрипт с плагинами - в прикрпленном файле 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 и начнется кодировка в видео файл в директорию со скриптами с шаблоном по умолчанию для увеличения частоты кадров путем интерполяции.
Аноним (Microsoft Windows 10: Firefox based) 05/04/19 Птн 10:17:46 25341973
Почему не VapourSynth? Я просто новичок, мне интересно с какого фреймворка желательно начать изучение?
Аноним (Microsoft Windows 7: New Opera) 05/04/19 Птн 10:21:51 25341994
>>2534197
Под VapourSynth есть далеко не все плагины, которые писались только под AviSynth (NNEDI3, EEDI3, InterFrame).
Аноним (Microsoft Windows 10: Firefox based) 05/04/19 Птн 14:14:19 25343645
Аноним (Ubuntu Linux: Firefox based) 05/04/19 Птн 18:56:13 25349636
Так и не понял, как пользоваться им в линуксе
Аноним (Microsoft Windows 10: Firefox based) 05/04/19 Птн 18:58:22 25349657
Аноним (Ubuntu Linux: Firefox based) 05/04/19 Птн 19:24:21 25349848
Аноним (Linux: Chromium based) 05/04/19 Птн 19:58:32 25350029
Годная программа?
Аноним (Microsoft Windows 8: Firefox based) 05/04/19 Птн 21:05:18 253502610
>>2534195
> в прикрпленном файле avisynth.png
А где сам прикреплённый файл?
Поделись ссылкой на команды для скриптов AviSynth, можно на английском.
Аноним (Microsoft Windows 10: Firefox based) 05/04/19 Птн 21:14:57 253503011
>>2535026
> А где сам прикреплённый файл?
Изображение в ОП-посте. Просто открой его архиватором.
Аноним (Linux: Firefox based) 05/04/19 Птн 22:34:20 253523112
>>2534984
AvxSynth сильно урезан. Тут, уж, лучше сразу VapourSynth пользовать. Или таки AviSynth+ под wine.

>>2535002
Скриптовый нелинейный видеоредактор. Нуфф сказал. Была бы под него нормальная IDE, был бы годнотой. Лютейшей годнотой. А в том виде, в котором есть с девяностых, оно употребимо только очень частно. Хотя я использую AviSynth как единственную NLE с этого вашего 1999 года. Но я и не клипы ваяю и не видеоблохер.

Аноним (Microsoft Windows 8: Firefox based) 05/04/19 Птн 23:57:43 253526413
Как сделать ресайз, чтобы разрешение, допустим, по высоте? В ffmpeg, это делается одной командой - scale=640:-1, а как тут?
И почему местная cut-команда, может вырезать только по кадрам(опция trim(100,200), а если я хочу по таймингу, как в ffmpeg(-ss 00:20 -to 00:30)?
Аноним (Microsoft Windows 10: Firefox based) 06/04/19 Суб 07:55:24 253533214
>>2535231
> Но я и не клипы ваяю и не видеоблохер.
А чем занимаешься?
Аноним (Linux: Firefox based) 06/04/19 Суб 21:56:23 253568415
>>2535332
Когда был школьником-студентом в 90-е и первой половине нулевых, рипал фильмы и аниме, оцифровывал и сводил любительские съёмки (репортажка; преимущественно детские праздники, прогулки и бытовуха) своих друзей и родственников. Там тоже есть всякое разное, от обратного телекино и реставрации, до авторинга DVD и сведения с титрами. Никогда никакой художки, т. к. не умею и не претендую — чисто техническая работа.
В настоящее время очень плотно работаю по специальности (радиоинженерю) в интересах силовиков. Работа такая, что не заскучаешь. Одно время хотел видео кодеры с компенсацией движения исследовать, но сколько раз не принимался — так и бросал из-за работы.

>>2535264
> Как сделать ресайз, чтобы разрешение, допустим, по высоте? В ffmpeg, это делается одной командой - scale=640:-1, а как тут?
Насколько помню, в Avisynth функции *resize() не допускают подобной нотации, и нужно выходной размер растра указывать явно. Но это не так критично, как невозможность указывать математические выражения и ссылаться на числовые переменные при записи аргументов функций.
В функциях современного VapourSynth тоже указывать нужно явно, но там в основе Python, так что с математикой там без проблем.

> И почему местная cut-команда, может вырезать только по кадрам(опция trim(100,200), а если я хочу по таймингу, как в ffmpeg(-ss 00:20 -to 00:30)?
Очевидно, чтобы не играть в эти игры с PTS и не проигрывать. FFmpeg вынужден работать с PTS, т. к. он работает с готовым к просмотру видео, а фреймсерверы могут и абстрагироваться от PTS и править видеоряд как дискретное множество данных безотносительно временных меток. Просто удобнее работать с видеорядом непосредственно, а время смены кадра — это дополнительная абстракция.
Аноним (Microsoft Windows 7: New Opera) # OP 07/04/19 Вск 12:20:12 253633816
Вы хоть отпишитесь, скрипты норм работают? А то долго мне пришлось допиливать, чтоб нормально воспринимались и файлы и директории.
Аноним (Microsoft Windows 8: Firefox based) 07/04/19 Вск 14:53:25 253663017
>>2536338
> do ffmpeg -i "a" -b:v 3M -an "%OUTPUT_DIRECTORY%~na-ENCODED.mp4"
Ну, хз. Можно было бы и получше команду для кодирования поставить. А почему без звука?
Кстати, подскажи, как сделать простой батник, который бы просто запускал ffmpeg, потом .avs файл, а потом кодировал бы все в output файл. Как у тебя в батнике, но проще.Я просто не сильно разбираюсь в программировании.
Аноним (Microsoft Windows 7: New Opera) 07/04/19 Вск 16:01:04 253677418
gears.png (168Кб, 2000x1821)
2000x1821
>>2536630
> А почему без звука?
Это я для себя выставлял, чтоб использовать модуль MPEG2Source для обработки контента с DVD, он предназначен только для видео. Убери параметр -an и будет со звуком.
> Кстати, подскажи, как сделать простой батник, который бы просто запускал ffmpeg, потом .avs файл, а потом кодировал бы все в output файл. Как у тебя в батнике, но проще.
Делать все одним скриптом не стоит. Лучше сгенерить avs-скрипты, а потом уже подгонять видео, проигрывая avs-скрипт в ffplay или каком-то плеере. AviSynth херит "Aspect Ratio", если оно было указано в контейнере, все равно его вручную надо выставлять. Если видео скачано с какого-то онлайн-сервиса, то этой проблемы не будет.
Добавил скрипт в пикрелейтед, который генерит .avs, кодирует видео с помощью FFMPEG и удаляет .avs. Его нужно добавить в директорию к остальным скриптам. Нужно просто перетянуть на его видеофайл, нажать ENTER и он начнет кодировать видео. Проверь, работает у тебя или нет?
Аноним (Microsoft Windows 7: New Opera) 07/04/19 Вск 16:03:22 253678219
>>2536696
Есть возможность запустить под VapourSynth QTGMC, не говоря уже о плагиных без открытых исходников?
Аноним (Microsoft Windows 10: Firefox based) 07/04/19 Вск 16:09:55 253679720
>>2536782
Это вайпер, по всей доске развлекается, игнорируй его.
Аноним (Microsoft Windows 7: New Opera) # OP 07/04/19 Вск 16:55:59 253693121
filmreel.png (115Кб, 732x334)
732x334
>>2536774
Заметил проёб при использовании названий файлов с пробелами, немного исправил.
Аноним (Microsoft Windows 8: Firefox based) 07/04/19 Вск 17:18:29 253695622
>>2536931
Работает, вроде. И тот, что в шапке.
Но хотелось бы узнать, что написать в батнике, чтобы при его открытие(батника), запускался бы ffmpeg, который бы выбирал мой avs скрипт, и делал двухпроходное кодирование видео, потом кодирование звука, а потом все это выводил в выходной файл.

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

Объяснил, как ртом.
Аноним (Microsoft Windows 7: New Opera) 07/04/19 Вск 18:38:29 253697823
film-reel.png (268Кб, 720x720)
720x720
>>2536956
generate-avs-encode-two-pass.bat: берет звук с .avs, работает с аудио-видео модулями.
generate-avs-encode-two-pass-mux.bat: берет звук с исходного файла, конвертирует его в отдельный файл, затем объединяет с видео.
Аноним (Microsoft Windows 7: New Opera) 07/04/19 Вск 18:46:04 253698224
bomfunk.mp4 (9313Кб, 854x480, 00:00:50)
854x480
Аноним (Google Android: Mobile Safari) 07/04/19 Вск 18:53:12 253698425
>>2534195
В ффмпег уже есть фильтр для интерполяции
-lavfi minterpolate=fps=60
Аноним (Microsoft Windows 7: New Opera) 07/04/19 Вск 19:17:45 253699226
1.mp4 (4991Кб, 854x480, 00:00:27)
854x480
>>2536984
Хорошо, что добавили фильтр. Когда-то ждал его. Но с настройками по умолчанию он работает хуже, чем SVPFlow.
Аноним (Microsoft Windows 7: Firefox based) 07/04/19 Вск 19:29:52 253699627
Сможете перевести в прогрессив древний клип, а то у меня получается не очень?
Аноним (Microsoft Windows 7: Firefox based) 07/04/19 Вск 20:06:08 253700128
>>2536996
Вот клип https://my-files.ru/zsfrfk там творятся темные чересстрочные чудеса. Мне бы рецепт как его излечить от чересстрочности.
Аноним (Linux: Firefox based) 07/04/19 Вск 21:50:56 253703629
>>2536782
> QTGMC
За восемь лет это и многое самое популярное портировано. Плюс, есть кое-какая двоичная совместимость.
Аноним (Microsoft Windows 8: Firefox based) 07/04/19 Вск 22:45:54 253706430
>>2536956
Что я делаю не так, что батник не запускается? Где ошибка?

@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 находиться в той же директории, где и батник.
Аноним (Microsoft Windows 7: Firefox based) 07/04/19 Вск 23:26:31 253707631
>>2537064
>SET "
Что ты мучаешься с батниками? Пиши на lua, у него интерпретатор крошечный и синтаксис приемлемый.
Аноним (Microsoft Windows 7: New Opera) 08/04/19 Пнд 09:57:40 253718732
batch.png (48Кб, 256x256)
256x256
>>2537064
Ты убрал условия, которые определяют, является ли ввод файлом или директорией.
Аноним (Microsoft Windows 7: New Opera) 08/04/19 Пнд 10:38:30 253719933
drag-and-drop.png (52Кб, 256x256)
256x256
>>2537064
И если хочешь, чтоб все было в одной директории, то нужно менять и пути к плагинам в TEMPLATE-1.txt.
Аноним (Microsoft Windows 8: Firefox based) 08/04/19 Пнд 13:41:31 253724734
>>2537199
Нет, ты все пытаешься написать код, основываясь на твоём 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ПРОХОДА (да?), а что такое ("а")?
Повторюсь, я в программирование полный ноль.
Аноним (Microsoft Windows 7: New Opera) 08/04/19 Пнд 16:02:28 253734435
drag-and-drop.png (497Кб, 256x256)
256x256
>>2537247
В этом посте >>2537187 я приложил скрипт без вопросов. Просто на него перетягивается видеофайл или папка с видеофайлами и начинается обработка.
INPUT_DIRECTORY - входной файл или директория с файлом .avs, определяется далее и в зависимости от значения переменная меняется - для файла - file.ext, для директории - directory/. Если файл или папка перетягивается на скрипт, то становится INPUT_DIRECTORY. Можно убрать вторую часть скрипта и указывать вручную, но зачем? Я уже удалил все вопросы и оставил только возможность перетащить файл/папку на скрипт начинается обработка.
PUSHD %~dp0 - установить текущей директорией директорию, где находится скрипт.
> а что такое ("а")?
Это переменная от выполнения "for %a", в которой записан сканируемый исходный файл или список файлов в директории.
FFMPEG лучше прописать в системную переменную PATH в винде, чтоб всегда был доступен.
Еще один скрпит с путем к FFMPEG в пикрилейтед.
Аноним (Microsoft Windows 8: Firefox based) 08/04/19 Пнд 17:03:17 253737636
>>2537344
Работает, да,но..Типа, кодирует, применяя фильтры интерполяции, которые берет из сгенерированого .avs. А зачем "генерить" avs, чтобы потом его "автоматом" удалить? И потом, хотелось бы просто перетащить файл, запустить двухпроходное кодирование, которое бы подцепляло мой avs файл, предварительно расположенный в этой же папке, где и batник. ВоТъ..
Аноним (Microsoft Windows 8: Firefox based) 08/04/19 Пнд 17:09:50 253738237
>>2537376
А, или можно просто заменить содержимое двух (кстати, почему два файла?) TEMPLATE.txt файлов, записав туда нужные команды для avs, которое генерит твой батник.. Хм.
Аноним (Microsoft Windows 7: New Opera) 08/04/19 Пнд 17:12:42 253738438
>>2537382
Так это и есть главная особенность скрипта. Пришлось разбить на две части, чтоб быстрее происходила обработка. Работает так: Перенаправление первой части в скрипт > добавление модуля с именем файла > добавление второй части. Файл в скрипте должен указываться после загрузки всех плагинов, но до функций.
Аноним (Microsoft Windows 7: New Opera) 08/04/19 Пнд 17:13:50 253738639
>>2537382
Главное оставить структуру нетронутой (пустые строки вначале и конце не убирать).
Аноним (Microsoft Windows 8: Firefox based) 08/04/19 Пнд 17:38:26 253739440
>>2537384
>>2537386
Нет, правда, спасибо, что помогаешь дуракам с Двачей..
А вот это %%~na., это имя выходного файла? А расскажи, что эти символы означают?
Аноним (Microsoft Windows 7: New Opera) 08/04/19 Пнд 17:45:31 253739741
>>2537394
Открываешь 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
заменяется на полное имя первого найденного
файла. Если переменная ПУТЬ не определена или
в результате поиска не найден ни один файл,
то этот модификатор заменяется на пустую
строку.
Аноним (Microsoft Windows 8: Firefox based) 08/04/19 Пнд 19:51:30 253747742
А можно вырезать несколько участков в видео?
Например,
trim (100,200)
trim (500, 600)
trim (800,1000)
Аноним (Linux: Firefox based) 08/04/19 Пнд 21:23:50 253754143
>>2537477
Разумеется.
Функция 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)
Аноним (Microsoft Windows 10: Chromium based) 09/04/19 Втр 01:38:21 253769644
>>2534165 (OP)
Я так и не понял, зачем это, когда есть ffmpeg,
Аноним (Linux: Firefox based) 09/04/19 Втр 06:46:11 253772845
Аноним (Microsoft Windows 8: Firefox based) 09/04/19 Втр 10:05:39 253777346
>>2537541
А как мне вырезать два отрезка из видео, вставить между ними "затухание"(FadeIO2), а потом объединить в выходное видео?

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

это не работает, в чем ошибка?
Аноним (Microsoft Windows 7: New Opera) # OP 09/04/19 Втр 12:16:11 253783847
>>2537696
В FFMPEG есть далеко не все фильтры. Я бы очень хотел, чтоб все фильтры AviSynth были кроссплатформенными и доступными в FFMPEG. А нормально портировали в FFMPEG, начиная с 2010 года, только фильтры от MPlayer и еще некоторые. Не дождавшись, пришлось разбираться с AviSynth.
Аноним (Linux: Firefox based) 09/04/19 Втр 21:55:48 253819948
Screenshot20190[...].png (124Кб, 1680x980)
1680x980
>>2537773
Ошибка синтаксическая у тебя.
Идём и смотрим http://avisynth.nl/index.php/Trim
Синтаксис такой:
Trim(clip, int first_frame, int last_frame [, bool pad] )
Т. е. функция принимает как минимум три аргумента:
- clip — имя переменной исходного видеоряда;
- first_frame — целочисленное значение номера первого кадра;
- last_frame — целочисленное значение номера последнего кадра.
В моём примере в >>2537541 используется постфиксная (объектная) нотация. Форма записи, при которой опускается первый аргумент, а в качестве первого аргумента при вызове функции используется видеоряд, возвращаемый выражением, написанным до точки. Т. е. оператор «.» (точка) работает слева направо (исходное значение слева, функция-обработчик указывается справа и результат будет передан вправо до конца строки), а оператор «=» (присвоение, определение) — справа налево (выражение справа от оператора и до конца строки будет полностью вычислено, а результат будет передан в переменную слева от оператора).
Такая форма записи нужна для компактного человекочитаемого способа изложения сценария, чтобы не теряться во вложенных скобках. Также форма такая очень полезна для записи выражения в несколько строк. Например (две последние строчки из >>2537541
можно записать так):
(см. пикрел)
Аноним (Microsoft Windows 7: New Opera) 08/05/19 Срд 21:17:08 256557849
bredor-huinya.mp4 (5096Кб, 768x576, 00:00:13)
768x576
bredor-huinya-50.mp4 (5154Кб, 768x576, 00:00:13)
768x576
Аноним (Microsoft Windows 7: New Opera) 09/05/19 Чтв 18:10:42 256597750
Какой лучше всего использовать фильтр для деблокинга и для автоматической регулировки уровней?
Аноним (Microsoft Windows 8: Firefox based) 19/05/19 Вск 21:28:18 257164251
>>2534195
Как заэнкодить без потери качества? Мне после интерполяции ещё обрабатывать и эффекты накладывать надо.
Аноним (Microsoft Windows 8: Firefox based) 19/05/19 Вск 22:48:39 257323252
>>2571642
Сам спросил, сам нашёл. В encode.bat нужно так строчку изменить
do ffmpeg -i "a" -c:v huffyuv "%OUTPUT_DIRECTORY%~na-ENCODED.avi"
Если сравнивать с Adobe After Effects (с параметрами по умолчанию), то у AVISYNTH в среднем картинка чётче, но артефактов больше, иногда сильно зернистые промежуточные кадры получаются.
Как, что и где можно подкрутить, чтобы улучшить результат?
Настройки X
Ответить в тред X
15000 [S]
Макс объем: 40Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
Стикеры X
Избранное / Топ тредов