Этого треда уже нет.
Это копия, сохраненная 22 июня 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Это копия, сохраненная 22 июня 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
17,5 Мб, 320x512
AviSynth — свободно распространяемая программа с открытым кодом, предназначенная для обработки видеоматериалов, в частности линейного и нелинейного монтажа.
Простыми словами - мощный инструмент с множеством фильтров, которые в большинстве случаев доступны только в коммерческих продуктах, занимаемых много места на жестком диске. Использование этого инструмента не очень удобное, но результаты зачастую того стоят. Я решил использовать AviSynth из-за того, что он оказался самым простым вариантом для увеличения частоты кадров путем интерполяции, подобный метод есть в "Adobe After Effects" и в "Adobe Media Encoder", начиная с версии CS6, но это слишком тяжеловесный софт, да и настроек в нем маловато. Потом оказалось, что дефекты некоторых чересстрочных видео смог устранить только фильтр QTGMC, никакой другой, даже коммерческий исправить фильтр дефект не смог.
Для удобства использования я сделал скрипт, который делает avs-скрипты по шаблону для отдельного файла или для директории. Эти скрипты можно открыть с помощью "FFMPEG" и в том числе пакетно сконвертировать в стандартный видеофайл.
Простыми словами - мощный инструмент с множеством фильтров, которые в большинстве случаев доступны только в коммерческих продуктах, занимаемых много места на жестком диске. Использование этого инструмента не очень удобное, но результаты зачастую того стоят. Я решил использовать AviSynth из-за того, что он оказался самым простым вариантом для увеличения частоты кадров путем интерполяции, подобный метод есть в "Adobe After Effects" и в "Adobe Media Encoder", начиная с версии CS6, но это слишком тяжеловесный софт, да и настроек в нем маловато. Потом оказалось, что дефекты некоторых чересстрочных видео смог устранить только фильтр QTGMC, никакой другой, даже коммерческий исправить фильтр дефект не смог.
Для удобства использования я сделал скрипт, который делает avs-скрипты по шаблону для отдельного файла или для директории. Эти скрипты можно открыть с помощью "FFMPEG" и в том числе пакетно сконвертировать в стандартный видеофайл.
Скрипт с плагинами - в прикрпленном файле 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 и начнется кодировка в видео файл в директорию со скриптами с шаблоном по умолчанию для увеличения частоты кадров путем интерполяции.
Для начала нужно установить сам 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 и начнется кодировка в видео файл в директорию со скриптами с шаблоном по умолчанию для увеличения частоты кадров путем интерполяции.
Почему не VapourSynth? Я просто новичок, мне интересно с какого фреймворка желательно начать изучение?
>>34197
Под VapourSynth есть далеко не все плагины, которые писались только под AviSynth (NNEDI3, EEDI3, InterFrame).
Под VapourSynth есть далеко не все плагины, которые писались только под AviSynth (NNEDI3, EEDI3, InterFrame).
>>34165 (OP)
Бамп
Бамп
>>34195
А где сам прикреплённый файл?
Поделись ссылкой на команды для скриптов AviSynth, можно на английском.
> в прикрпленном файле avisynth.png
А где сам прикреплённый файл?
Поделись ссылкой на команды для скриптов AviSynth, можно на английском.
>>34984
AvxSynth сильно урезан. Тут, уж, лучше сразу VapourSynth пользовать. Или таки AviSynth+ под wine.
>>35002
Скриптовый нелинейный видеоредактор. Нуфф сказал. Была бы под него нормальная IDE, был бы годнотой. Лютейшей годнотой. А в том виде, в котором есть с девяностых, оно употребимо только очень частно. Хотя я использую AviSynth как единственную NLE с этого вашего 1999 года. Но я и не клипы ваяю и не видеоблохер.
AvxSynth сильно урезан. Тут, уж, лучше сразу VapourSynth пользовать. Или таки AviSynth+ под wine.
>>35002
Скриптовый нелинейный видеоредактор. Нуфф сказал. Была бы под него нормальная IDE, был бы годнотой. Лютейшей годнотой. А в том виде, в котором есть с девяностых, оно употребимо только очень частно. Хотя я использую AviSynth как единственную NLE с этого вашего 1999 года. Но я и не клипы ваяю и не видеоблохер.
Как сделать ресайз, чтобы разрешение, допустим, по высоте? В ffmpeg, это делается одной командой - scale=640:-1, а как тут?
И почему местная cut-команда, может вырезать только по кадрам(опция trim(100,200), а если я хочу по таймингу, как в ffmpeg(-ss 00:20 -to 00:30)?
И почему местная cut-команда, может вырезать только по кадрам(опция trim(100,200), а если я хочу по таймингу, как в ffmpeg(-ss 00:20 -to 00:30)?
>>35332
Когда был школьником-студентом в 90-е и первой половине нулевых, рипал фильмы и аниме, оцифровывал и сводил любительские съёмки (репортажка; преимущественно детские праздники, прогулки и бытовуха) своих друзей и родственников. Там тоже есть всякое разное, от обратного телекино и реставрации, до авторинга DVD и сведения с титрами. Никогда никакой художки, т. к. не умею и не претендую — чисто техническая работа.
В настоящее время очень плотно работаю по специальности (радиоинженерю) в интересах силовиков. Работа такая, что не заскучаешь. Одно время хотел видео кодеры с компенсацией движения исследовать, но сколько раз не принимался — так и бросал из-за работы.
>>35264
Насколько помню, в Avisynth функции *resize() не допускают подобной нотации, и нужно выходной размер растра указывать явно. Но это не так критично, как невозможность указывать математические выражения и ссылаться на числовые переменные при записи аргументов функций.
В функциях современного VapourSynth тоже указывать нужно явно, но там в основе Python, так что с математикой там без проблем.
Очевидно, чтобы не играть в эти игры с PTS и не проигрывать. FFmpeg вынужден работать с PTS, т. к. он работает с готовым к просмотру видео, а фреймсерверы могут и абстрагироваться от PTS и править видеоряд как дискретное множество данных безотносительно временных меток. Просто удобнее работать с видеорядом непосредственно, а время смены кадра — это дополнительная абстракция.
Когда был школьником-студентом в 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 и править видеоряд как дискретное множество данных безотносительно временных меток. Просто удобнее работать с видеорядом непосредственно, а время смены кадра — это дополнительная абстракция.
Вы хоть отпишитесь, скрипты норм работают? А то долго мне пришлось допиливать, чтоб нормально воспринимались и файлы и директории.
>>36338
Ну, хз. Можно было бы и получше команду для кодирования поставить. А почему без звука?
Кстати, подскажи, как сделать простой батник, который бы просто запускал ffmpeg, потом .avs файл, а потом кодировал бы все в output файл. Как у тебя в батнике, но проще.Я просто не сильно разбираюсь в программировании.
> do ffmpeg -i "a" -b:v 3M -an "%OUTPUT_DIRECTORY%~na-ENCODED.mp4"
Ну, хз. Можно было бы и получше команду для кодирования поставить. А почему без звука?
Кстати, подскажи, как сделать простой батник, который бы просто запускал ffmpeg, потом .avs файл, а потом кодировал бы все в output файл. Как у тебя в батнике, но проще.Я просто не сильно разбираюсь в программировании.
168 Кб, 2000x1821
>>36630
Это я для себя выставлял, чтоб использовать модуль MPEG2Source для обработки контента с DVD, он предназначен только для видео. Убери параметр -an и будет со звуком.
Делать все одним скриптом не стоит. Лучше сгенерить avs-скрипты, а потом уже подгонять видео, проигрывая avs-скрипт в ffplay или каком-то плеере. AviSynth херит "Aspect Ratio", если оно было указано в контейнере, все равно его вручную надо выставлять. Если видео скачано с какого-то онлайн-сервиса, то этой проблемы не будет.
Добавил скрипт в пикрелейтед, который генерит .avs, кодирует видео с помощью FFMPEG и удаляет .avs. Его нужно добавить в директорию к остальным скриптам. Нужно просто перетянуть на его видеофайл, нажать ENTER и он начнет кодировать видео. Проверь, работает у тебя или нет?
> А почему без звука?
Это я для себя выставлял, чтоб использовать модуль MPEG2Source для обработки контента с DVD, он предназначен только для видео. Убери параметр -an и будет со звуком.
> Кстати, подскажи, как сделать простой батник, который бы просто запускал ffmpeg, потом .avs файл, а потом кодировал бы все в output файл. Как у тебя в батнике, но проще.
Делать все одним скриптом не стоит. Лучше сгенерить avs-скрипты, а потом уже подгонять видео, проигрывая avs-скрипт в ffplay или каком-то плеере. AviSynth херит "Aspect Ratio", если оно было указано в контейнере, все равно его вручную надо выставлять. Если видео скачано с какого-то онлайн-сервиса, то этой проблемы не будет.
Добавил скрипт в пикрелейтед, который генерит .avs, кодирует видео с помощью FFMPEG и удаляет .avs. Его нужно добавить в директорию к остальным скриптам. Нужно просто перетянуть на его видеофайл, нажать ENTER и он начнет кодировать видео. Проверь, работает у тебя или нет?
>>36696 (Del)
Есть возможность запустить под VapourSynth QTGMC, не говоря уже о плагиных без открытых исходников?
Есть возможность запустить под VapourSynth QTGMC, не говоря уже о плагиных без открытых исходников?
>>36782
Это вайпер, по всей доске развлекается, игнорируй его.
Это вайпер, по всей доске развлекается, игнорируй его.
115 Кб, 732x334
>>36774
Заметил проёб при использовании названий файлов с пробелами, немного исправил.
Заметил проёб при использовании названий файлов с пробелами, немного исправил.
>>36931
Работает, вроде. И тот, что в шапке.
Но хотелось бы узнать, что написать в батнике, чтобы при его открытие(батника), запускался бы ffmpeg, который бы выбирал мой avs скрипт, и делал двухпроходное кодирование видео, потом кодирование звука, а потом все это выводил в выходной файл.
Типа, как я думаю:
ffmpeg -i "ссылка на мой avs.скрипт" (первый проход без звука)(второй проход без звука)(кодирование звука без видео)(объёдинение в выходной файл) out.mp4
Параметры проходов, кодирования звука я поставлю сам, мне просто нужен пример.
Объяснил, как ртом.
Работает, вроде. И тот, что в шапке.
Но хотелось бы узнать, что написать в батнике, чтобы при его открытие(батника), запускался бы ffmpeg, который бы выбирал мой avs скрипт, и делал двухпроходное кодирование видео, потом кодирование звука, а потом все это выводил в выходной файл.
Типа, как я думаю:
ffmpeg -i "ссылка на мой avs.скрипт" (первый проход без звука)(второй проход без звука)(кодирование звука без видео)(объёдинение в выходной файл) out.mp4
Параметры проходов, кодирования звука я поставлю сам, мне просто нужен пример.
Объяснил, как ртом.
268 Кб, 720x720
>>36956
generate-avs-encode-two-pass.bat: берет звук с .avs, работает с аудио-видео модулями.
generate-avs-encode-two-pass-mux.bat: берет звук с исходного файла, конвертирует его в отдельный файл, затем объединяет с видео.
generate-avs-encode-two-pass.bat: берет звук с .avs, работает с аудио-видео модулями.
generate-avs-encode-two-pass-mux.bat: берет звук с исходного файла, конвертирует его в отдельный файл, затем объединяет с видео.
4,9 Мб, mp4,
854x480, 0:27
854x480, 0:27
>>36984
Хорошо, что добавили фильтр. Когда-то ждал его. Но с настройками по умолчанию он работает хуже, чем SVPFlow.
Хорошо, что добавили фильтр. Когда-то ждал его. Но с настройками по умолчанию он работает хуже, чем SVPFlow.
>>36996
Вот клип https://my-files.ru/zsfrfk там творятся темные чересстрочные чудеса. Мне бы рецепт как его излечить от чересстрочности.
Вот клип https://my-files.ru/zsfrfk там творятся темные чересстрочные чудеса. Мне бы рецепт как его излечить от чересстрочности.
>>36782
За восемь лет это и многое самое популярное портировано. Плюс, есть кое-какая двоичная совместимость.
> QTGMC
За восемь лет это и многое самое популярное портировано. Плюс, есть кое-какая двоичная совместимость.
>>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 находиться в той же директории, где и батник.
Что я делаю не так, что батник не запускается? Где ошибка?
@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 находиться в той же директории, где и батник.
>>37064
Что ты мучаешься с батниками? Пиши на lua, у него интерпретатор крошечный и синтаксис приемлемый.
>SET "
Что ты мучаешься с батниками? Пиши на lua, у него интерпретатор крошечный и синтаксис приемлемый.
48 Кб, 256x256
>>37064
Ты убрал условия, которые определяют, является ли ввод файлом или директорией.
Ты убрал условия, которые определяют, является ли ввод файлом или директорией.
52 Кб, 256x256
>>37064
И если хочешь, чтоб все было в одной директории, то нужно менять и пути к плагинам в TEMPLATE-1.txt.
И если хочешь, чтоб все было в одной директории, то нужно менять и пути к плагинам в TEMPLATE-1.txt.
>>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ПРОХОДА (да?), а что такое ("а")?
Повторюсь, я в программирование полный ноль.
Нет, ты все пытаешься написать код, основываясь на твоём 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ПРОХОДА (да?), а что такое ("а")?
Повторюсь, я в программирование полный ноль.
497 Кб, 256x256
>>37247
В этом посте >>37187 я приложил скрипт без вопросов. Просто на него перетягивается видеофайл или папка с видеофайлами и начинается обработка.
INPUT_DIRECTORY - входной файл или директория с файлом .avs, определяется далее и в зависимости от значения переменная меняется - для файла - file.ext, для директории - directory/. Если файл или папка перетягивается на скрипт, то становится INPUT_DIRECTORY. Можно убрать вторую часть скрипта и указывать вручную, но зачем? Я уже удалил все вопросы и оставил только возможность перетащить файл/папку на скрипт начинается обработка.
PUSHD %~dp0 - установить текущей директорией директорию, где находится скрипт.
Это переменная от выполнения "for %a", в которой записан сканируемый исходный файл или список файлов в директории.
FFMPEG лучше прописать в системную переменную PATH в винде, чтоб всегда был доступен.
Еще один скрпит с путем к FFMPEG в пикрилейтед.
В этом посте >>37187 я приложил скрипт без вопросов. Просто на него перетягивается видеофайл или папка с видеофайлами и начинается обработка.
INPUT_DIRECTORY - входной файл или директория с файлом .avs, определяется далее и в зависимости от значения переменная меняется - для файла - file.ext, для директории - directory/. Если файл или папка перетягивается на скрипт, то становится INPUT_DIRECTORY. Можно убрать вторую часть скрипта и указывать вручную, но зачем? Я уже удалил все вопросы и оставил только возможность перетащить файл/папку на скрипт начинается обработка.
PUSHD %~dp0 - установить текущей директорией директорию, где находится скрипт.
> а что такое ("а")?
Это переменная от выполнения "for %a", в которой записан сканируемый исходный файл или список файлов в директории.
FFMPEG лучше прописать в системную переменную PATH в винде, чтоб всегда был доступен.
Еще один скрпит с путем к FFMPEG в пикрилейтед.
>>37344
Работает, да,но..Типа, кодирует, применяя фильтры интерполяции, которые берет из сгенерированого .avs. А зачем "генерить" avs, чтобы потом его "автоматом" удалить? И потом, хотелось бы просто перетащить файл, запустить двухпроходное кодирование, которое бы подцепляло мой avs файл, предварительно расположенный в этой же папке, где и batник. ВоТъ..
Работает, да,но..Типа, кодирует, применяя фильтры интерполяции, которые берет из сгенерированого .avs. А зачем "генерить" avs, чтобы потом его "автоматом" удалить? И потом, хотелось бы просто перетащить файл, запустить двухпроходное кодирование, которое бы подцепляло мой avs файл, предварительно расположенный в этой же папке, где и batник. ВоТъ..
>>37376
А, или можно просто заменить содержимое двух (кстати, почему два файла?) TEMPLATE.txt файлов, записав туда нужные команды для avs, которое генерит твой батник.. Хм.
А, или можно просто заменить содержимое двух (кстати, почему два файла?) TEMPLATE.txt файлов, записав туда нужные команды для avs, которое генерит твой батник.. Хм.
>>37382
Так это и есть главная особенность скрипта. Пришлось разбить на две части, чтоб быстрее происходила обработка. Работает так: Перенаправление первой части в скрипт > добавление модуля с именем файла > добавление второй части. Файл в скрипте должен указываться после загрузки всех плагинов, но до функций.
Так это и есть главная особенность скрипта. Пришлось разбить на две части, чтоб быстрее происходила обработка. Работает так: Перенаправление первой части в скрипт > добавление модуля с именем файла > добавление второй части. Файл в скрипте должен указываться после загрузки всех плагинов, но до функций.
>>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
заменяется на полное имя первого найденного
файла. Если переменная ПУТЬ не определена или
в результате поиска не найден ни один файл,
то этот модификатор заменяется на пустую
строку.
Открываешь 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
заменяется на полное имя первого найденного
файла. Если переменная ПУТЬ не определена или
в результате поиска не найден ни один файл,
то этот модификатор заменяется на пустую
строку.
А можно вырезать несколько участков в видео?
Например,
trim (100,200)
trim (500, 600)
trim (800,1000)
Например,
trim (100,200)
trim (500, 600)
trim (800,1000)
>>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)
Разумеется.
Функция 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)
>>34165 (OP)
Я так и не понял, зачем это, когда есть ffmpeg,
Я так и не понял, зачем это, когда есть ffmpeg,
>>37696
А ты пытался?
А ты пытался?
>>37541
А как мне вырезать два отрезка из видео, вставить между ними "затухание"(FadeIO2), а потом объединить в выходное видео?
clip1 = Trim(2523, 4007)
clip2 = Trim(6180, 6732)
clip3 = FadeIO2(clip1, clip2, 95)
это не работает, в чем ошибка?
А как мне вырезать два отрезка из видео, вставить между ними "затухание"(FadeIO2), а потом объединить в выходное видео?
clip1 = Trim(2523, 4007)
clip2 = Trim(6180, 6732)
clip3 = FadeIO2(clip1, clip2, 95)
это не работает, в чем ошибка?
>>37696
В FFMPEG есть далеко не все фильтры. Я бы очень хотел, чтоб все фильтры AviSynth были кроссплатформенными и доступными в FFMPEG. А нормально портировали в FFMPEG, начиная с 2010 года, только фильтры от MPlayer и еще некоторые. Не дождавшись, пришлось разбираться с AviSynth.
В FFMPEG есть далеко не все фильтры. Я бы очень хотел, чтоб все фильтры AviSynth были кроссплатформенными и доступными в FFMPEG. А нормально портировали в FFMPEG, начиная с 2010 года, только фильтры от MPlayer и еще некоторые. Не дождавшись, пришлось разбираться с AviSynth.
124 Кб, 1680x980
>>37773
Ошибка синтаксическая у тебя.
Идём и смотрим http://avisynth.nl/index.php/Trim
Синтаксис такой:
Trim(clip, int first_frame, int last_frame [, bool pad] )
Т. е. функция принимает как минимум три аргумента:
- clip — имя переменной исходного видеоряда;
- first_frame — целочисленное значение номера первого кадра;
- last_frame — целочисленное значение номера последнего кадра.
В моём примере в >>37541 используется постфиксная (объектная) нотация. Форма записи, при которой опускается первый аргумент, а в качестве первого аргумента при вызове функции используется видеоряд, возвращаемый выражением, написанным до точки. Т. е. оператор «.» (точка) работает слева направо (исходное значение слева, функция-обработчик указывается справа и результат будет передан вправо до конца строки), а оператор «=» (присвоение, определение) — справа налево (выражение справа от оператора и до конца строки будет полностью вычислено, а результат будет передан в переменную слева от оператора).
Такая форма записи нужна для компактного человекочитаемого способа изложения сценария, чтобы не теряться во вложенных скобках. Также форма такая очень полезна для записи выражения в несколько строк. Например (две последние строчки из >>37541
можно записать так):
(см. пикрел)
Ошибка синтаксическая у тебя.
Идём и смотрим http://avisynth.nl/index.php/Trim
Синтаксис такой:
Trim(clip, int first_frame, int last_frame [, bool pad] )
Т. е. функция принимает как минимум три аргумента:
- clip — имя переменной исходного видеоряда;
- first_frame — целочисленное значение номера первого кадра;
- last_frame — целочисленное значение номера последнего кадра.
В моём примере в >>37541 используется постфиксная (объектная) нотация. Форма записи, при которой опускается первый аргумент, а в качестве первого аргумента при вызове функции используется видеоряд, возвращаемый выражением, написанным до точки. Т. е. оператор «.» (точка) работает слева направо (исходное значение слева, функция-обработчик указывается справа и результат будет передан вправо до конца строки), а оператор «=» (присвоение, определение) — справа налево (выражение справа от оператора и до конца строки будет полностью вычислено, а результат будет передан в переменную слева от оператора).
Такая форма записи нужна для компактного человекочитаемого способа изложения сценария, чтобы не теряться во вложенных скобках. Также форма такая очень полезна для записи выражения в несколько строк. Например (две последние строчки из >>37541
можно записать так):
(см. пикрел)
Какой лучше всего использовать фильтр для деблокинга и для автоматической регулировки уровней?
>>34195
Как заэнкодить без потери качества? Мне после интерполяции ещё обрабатывать и эффекты накладывать надо.
Как заэнкодить без потери качества? Мне после интерполяции ещё обрабатывать и эффекты накладывать надо.
>>71642
Сам спросил, сам нашёл. В encode.bat нужно так строчку изменить
do ffmpeg -i "a" -c:v huffyuv "%OUTPUT_DIRECTORY%~na-ENCODED.avi"
Если сравнивать с Adobe After Effects (с параметрами по умолчанию), то у AVISYNTH в среднем картинка чётче, но артефактов больше, иногда сильно зернистые промежуточные кадры получаются.
Как, что и где можно подкрутить, чтобы улучшить результат?
Сам спросил, сам нашёл. В encode.bat нужно так строчку изменить
do ffmpeg -i "a" -c:v huffyuv "%OUTPUT_DIRECTORY%~na-ENCODED.avi"
Если сравнивать с Adobe After Effects (с параметрами по умолчанию), то у AVISYNTH в среднем картинка чётче, но артефактов больше, иногда сильно зернистые промежуточные кадры получаются.
Как, что и где можно подкрутить, чтобы улучшить результат?
Тред утонул или удален.
Это копия, сохраненная 22 июня 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Это копия, сохраненная 22 июня 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.