Avisynth что это за программа

AviSynth
Тип фрэймсервер цифрового видео
Разработчик разработчики AviSynth
Написана на C++
Операционная система Windows
Аппаратная платформа Microsoft Windows
Последняя версия 2.6.0 Alpha 5(2013-09-18)
Лицензия GNU GPL
Сайт avisynth.nl/index.php/Ma…
Медиафайлы на Викискладе

AviSynth — свободно распространяемая программа с открытым кодом, предназначенная для обработки видеоматериалов, в частности линейного и нелинейного монтажа.

Работает как фрэймсервер, имеющий систему сценариев, редактирование которых позволяет осуществлять нелинейное редактирование любого уровня сложности с высоким уровнем воспроизводимости результатов.

Удобство его в том, что он является для системы фактически виртуальным кодеком, который «декодирует» свои скрипты в видеоданные, т. е. не требует какой-то отдельной поддержки или интегрирования. Главный минус — невозможна обработка потоков без их сжатия-разжатия, что умеет, скажем, VirtualDub, т. е. невозможен lossless-монтаж иначе, чем через использование lossless-кодеков (также известный как нарезка-склейка сжатого потока по ближайшим ключевым кадрам).

Содержание

Использование с другими программами [ править | править код ]

Благодаря множеству различных плагинов, AviSynth позволяет значительно расширить возможности монтажных программ. Например, при помощи плагина Quicktime Import Filter для AviSynth можно импортировать нужный нам файл Apple Quick Time в любую программу, которая поддерживает импорт файлов AviSynth. При этом абсолютно не важно, поддерживает нужная нам программа формат Apple Quick Time или не поддерживает.

Разработчики-энтузиасты часто выпускают плагины, которые позволяют импортировать скрипты AviSynth в различные монтажные программы, которые скрипты AviSynth не поддерживают изначально. Примером может служить Adobe Premiere Pro.

Также может использоваться с VirtualDub [1] , входит в состав Gordian Knot [2] .

Фреймсервер AviSynth является как бы посредником между физическими медиафайлами на жёстком диске и монтажной программой. Это позволяет упростить конечный монтаж за счёт предварительно монтажа посредством AviSynth. Из-за описанного выше недостатка «Дуб» и «Синт» обычно работают в паре, великолепно дополняя друг друга.

Программирование AviSynth [ править | править код ]

AviSynth программируется при помощи скриптовых файлов (*.avs), содержащих команды AviSynth, например, для объединения двух DV файлов «1.avi» и «2.avi» в один:

К фильму «1.avi» фреймсервер AVISynth добавит фильм «2.avi» и передаст полученные кадры в монтажную программу.

Другим примером использования AviSynth может служить перевод снятого на киноплёнку фильма (24 кадра в секунду) в видеоформат (25 кадров в секунду) [3] .

В предыдущем посте ( https://pikabu.ru/story/obrabotka_240_fps_slowmotion_video_s. ) пара человек высказалось за пост об установке и настройке Avisynth. Данный пост рассчитан на новичков, поэтому особо вдаваться в тонкости работы программы не будем, кто захочет в сети есть куча информации.

Читайте также:  Дешевые смартфоны с отпечатком пальца

Итак, что же такое Avisynth? AviSynth это нелинейный видео-редактор, контролируемый скриптовым языком или, перефразируя, скриптовый язык для обработки видео. AviSynth выступает в качестве промежуточного звена между приложением и физическим файлом, позволяя «на лету» выполнять различные преобразования. Иначе говоря, Avisynth работает как фрэймсервер, имеющий систему сценариев, редактирование которых позволяет осуществлять нелинейное редактирование любого уровня сложности с высоким уровнем воспроизводимости результатов.

Последняя официальная версия 2.6 была выпущена в далеком 2015 году и она не поддерживает мультипоточный режим работы. Поэтому использовать в работе мы будем форк программы под названием Avisynth+, он поддерживает 64bit и мультипоточность. Скачать последнюю версию программы можно здесь: https://github.com/pinterf/AviSynthPlus/releases .

После установки самого Avisynth+ нужно установить плагины. Лучше всего это сделать, скачав StaxRIP2 ( https://github.com/Revan654/staxrip/releases/tag/2.0.0.0 ), он хорош тем, что в нем полный набор свежих плагинов, ничего не надо будет дополнительно искать. Устанавливать его необязательно, достаточно распаковать папку Plugins из архива.

Теперь нужно определиться, какой программой будем открывать скрипт. Если нужно контролировать визуально работу скриптов, можно скачать VirtualDub2 ( https://sourceforge.net/projects/vdfiltermod/files/ ). Если уверены в результате, можно воспользоваться просто оболочкой кодировщиком, например Simple x264/x265 Launcher ( https://github.com/lordmulder/Simple-x264-Launcher/releases/. ).

Итак, настало время написать скрипт. Для примера я приведу скрипт, использованный в предыдущем посте про обработку 240fps видео. Создаем простой текстовый файл с расширением avs и копируем туда такой текст (вам, соответственно, нужно будет правильно указать пути к распакованной папке Plugins из Staxrip и к вашему оригинальному видеофайлу):

#AVS+ x64 Plugins

LoadPlugin(avdir + STAXdir + "avs
nedi3
nedi3.dll")

LoadPlugin(avdir + STAXdir + "avsmasktools2masktools2.dll")

LoadPlugin(avdir + STAXdir + "avsmvtools2mvtools2.dll") #Loaded in Stab

LoadPlugin(avdir + STAXdir + "avsyadifmod2yadifmod2.dll")

LoadPlugin(avdir + STAXdir + "avsRgToolsRgTools.dll")

LoadPlugin(avdir + STAXdir + "avsFFT3DFilterfft3dfilter.dll")

LoadPlugin(avdir + STAXdir + "avsTDeintTDeint.dll")

LoadPlugin(avdir + STAXdir + "avsMedianBlur2MedianBlur2.dll")

Import(avdir + STAXdir + "avsSMDegrainSMDegrain.avsi")

Import(avdir + STAXdir + "avsQTGMCQTGMC.avsi")

LoadPlugin(avdir + STAXdir + "avsDSS2modavss.dll")

LoadPlugin(avdir + STAXdir + "avsL-SMASH-WorksLSMASHSource.dll")

После создания avs скрипта, запускаем VirtualDub2 или Simple x264/x265 Launcher и открываем в них скрипт. Если вы все сделали правильно, то VirtualDub2 должен показать первый кадр из видео. Ну а дальше нажимаем Save As, выбираем контейнер, кодек и запускаем процесс кодирования. Скорость на моем i5-2500 конечно не поражает, но вполне терпимо:

В этой статье будет рассказано о том, что такое AviSynth и его применение в походных условиях, не без помощи VirtualDub, конечно.

AviSynth это нелинейный видео-редактор, контролируемый скриптовым языком или, перефразируя, скриптовый язык для обработки видео. AviSynth выступает в качестве промежуточного звена между приложением и физическим файлом, позволяя «на лету» выполнять различные преобразования. Текстовый файл (AVS скрипт), в котором содержатся различные команды, множество программ может открывать как обычный видео-файл (VirtualDub, Adobe Premiere, Windows Media Player, Media Player Classic, e t.c.). Технически, AviSynth выступает в роли VFW (Video For Windows) кодека для текстового файла. AviSynth поддерживает различные плагины, которых существует громандная куча. (кроме своих ещё и от VirtualDub). Качать здесь.

Читайте также:  Как открыть скрытую игру на андроиде

Что это нам может дать?

  1. Расширение функциональности программ для обработки и воспроизведения видео. Например, добавление поддержки ранее не поддерживаемых видео (и аудио, кстати) форматов. Применение различных эффектов и фильтров;
  2. Автоматизация процесса обработки видео. AviSynth скрипты, при помощи какого-нибудь другого скриптового языка, можно генерировать на лету;
  3. Упрощение и ускорение небольших операций по обработке видео. Вместо ползаний по графическим меню, зачастую, бывает удобнее и быстрее вбить пару-тройку небольших команд в текстовый файл. Помимо этого, в дальнейшем, этот текстовый файл можно использовать для других источников, просто заменив имя исходного файла. Можно создать коллекцию шаблонов на часто выполняемые операции.

Что такое VirtualDub?

В этой статье я не буду подробно останавливаться на этом замечательном редакторе, просто отмечу, что это своего рода перочинный ножик для обработки видео. Что-то отрезать, поменять дорожку, посмотреть небольшую статистику и т.п. в этой программе можно сделать очень быстро. Единственно, что обидно, это то, что в стандартной поставке программа не понимает новые типы контейнеров, но это исправляется различными форками. Качать здесь.

Пример 1. Пережатие видео для слабых компьютеров.

Практически всё новое видео сейчас выходит в HD, но существует много пользователей, мощности компьютеров которых не позволяют насладиться просмотром. Программным решением данной ситуации будет сжать видео с меньшим разрешением. Для этого существует целый спектр программ, но в большинстве своём, они либо неудобны, перегружены ненужным функционалом, либо удобны, но не поддерживают желаемые форматы файлов, либо стоят денег. При помощи AviSynth и VirtualDub мы научимся обрабатывать любой тип файла, для которого установлен DirectShow кодек (проще говоря, который в состоянии воспроизвести ваш Windows Media Player).

В качестве объекта для экспериментов возьмём Ghost in the Shell, уменьшим его размер и сделаем хардсаб (внедрим субтитры в видеоряд).

Кадр из исходного видео:

Укажем AviSynth, что нам требуется открыть файл при помощи DirectShow фильтра. При помощи этих же фильтров их открывает WMP. Откройте блокнот и напишите:

У меня получилось:

DirectShowSource("e:Ghost In The Shell Movie 1.mkv")

Сохраните файл с расширением avs и попробуйте открыть в VirtualDub. Хотя он в стандартной поставке не поддерживает mkv – файл откроется. VirtualDub определит содержимое как несжатое видео. Хорошо, закройте VirtualDub, откройте скрипт и допишите следующую строку:

Читайте также:  Как перепрошить планшет huawei mediapad 10 fhd

Этой командой AviSynth поменяет размер исходного видео. Существует несколько различных способов изменить размер, одни быстрее, другие медленнее. Вы можете ознакомиться с ними в документации (есть и на русском, кстати).

В итоге у меня получился скрипт:

DirectShowSource("e:Ghost In The Shell Movie 1.mkv")
Lanczos4Resize(800,430)

Сохраните его и откройте в VirtualDub. Вы увидите, что картинка поменяла размер, у меня она стала вот такой:

Осталось сделать хардсаб. Для этого воспользуемся командой:

В результате у меня получился скрипт:

DirectShowSource("e:Ghost In The Shell Movie 1.mkv")
Lanczos4Resize(800,430)
TextSub("e:Ghost In The Shell Movie 1.SRT")

и вот такая вот картинка:

Всё, можно сжимать, например XviD с небольшим битрейтом и смотреть. Однако, полученный файл не стоит распространять, мы же делали его исключительно для личного просмотра. 🙂

Пример 2.

Следующая задача, которая встречается довольно часто, склеивание видео файлов, которые имеют разный битрейт, разное разрешение, разные форматы и даже, возможно, разную частоту кадров. При помощи AviSynth это делается настолько легко, что даже немного обидно.

Итак, у нас есть следующие пациенты:

    Ghost in the Shell – H264, 1280×688, 23.98fps, MKV



Teenage Mutant Ninja Turtles – XVID, 512×384, 23.98fps, AVI



От Винта — DivX 5, 720×528, 25.00fps, AVI

В реальной жизни такой зоопарк соединять не приходится, но я хочу подчеркнуть возможности AviSynth.

Откроем блокнот и запишем следующее:

return video1 + video2 + video3

Этими командами мы создали три переменных типа видео, соединили в один длинный кусок и вернули его для воспроизведения. Если попытаться запустить скрипт сейчас, то появится сообщение об ошибке, потому что параметры у файлов разные. Для начала приведём их к одинаковому разрешению (я буду приводить к 720×480), чтобы не поломать аспект добавим чёрных полосок (letterbox), приведём fps к 25 и приведём sample rate звука к одной величине (44100).

v > v > v > v >
v > v > v > v > v >
v > v > v > v > v >
return video1 + video2 + video3

Командой Trim я оставил от каждого файла сотню кадров. Просто так. 🙂

Вот и всё. Скрипт делается копипастой буквально за несколько секунд, а времени экономит целую кучу. Его выполнение не требует ни временных файлов на диске, ни ужасающих объёмов ОЗУ.

Результаты его исполнения:

Отдельное спасибо пользователю drunk без инвайта которого эта публикация не произошла бы.