AviSynth

редактировать
AviSynth
Разработчик (и) Разработчики AviSynth, Doom9 форумчане
Стабильная версия 3.6.1 (AviSynth +) (19 июня 2020 г.; 3 месяца назад (2020-06-19))
Предварительный выпуск 2.6.1 Alpha (17 мая 2016 г.; 4 года назад (2016- 05-17))
Репозиторий Измените это в Wikidata
Написано наC ++
Операционная система Windows
Тип Цифровое видео frameserver
Лицензия GNU GPL
Веб-сайтwww.avisynth.nl

AviSynth программа frameserver для Microsoft Windows, разработанная Беном Рудиак-Гулдом, Эдвином ван Эггеленом, Клаусом Постом, Ричардом Бергом, Яном Брэбэмом и другими. Это бесплатное программное обеспечение под лицензией GNU GPL.

Содержание
  • 1 Редактор сценариев видео
  • 2 Язык сценариев AviSynth
    • 2.1 «Hello World»
    • 2.2 Обработка видео
    • 2.3 Определяется пользователем
  • 3 AviSynth 3.0 и AviSynth +
  • 4 AviSynth для операционных систем, отличных от Windows
  • 5 AviSynth-совместимые программы
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки
Редактор сценариев видео

AviSynth действует как полностью управляемый с помощью сценария (без GUI ). Он эмулирует видеофайл AVI (или аудиофайл WAV ), видимый нижележащим приложением VFW, которое обычно является медиаплеером, или кодировщик .

AviSynth построен на фильтрах, которые очень похожи на фильтры DirectShow, но с другим двоичным интерфейсом . Возможности фильтра включают обрезку, деинтерлейсинг, обратный телесин, работу со статическими изображениями, выполнение базовой цветокоррекции, уменьшение видеошума и многое другое. AviSynth также выполняет традиционные задачи, такие как вырезание, обрезка и изменение последовательности сегментов.

Например, рассмотрим сценарий «myAvi.avs» (простой текстовый файл, сохраненный с расширением «avs»)

AviSource («myAvi.avi») Crop (0, 0, 320, 240) Blur (0.1)

Этот файл сценария можно открыть в большинстве медиаплееров (например, Windows Media Player ). Программа будет воспроизводить видеофайл "myAvi.avi", обрезанный до верхнего левого угла 320 пикселей на 240 пикселей и немного размытый. Операции выполняются в последовательном порядке, поэтому сначала выполняется обрезка, а затем размытие.

Технически AviSynth создает граф фильтра (например, Microsoft GraphEdit, но с дополнительными возможностями), управляемый сценариями, написанными в Язык сценариев AviSynth. Его функциональность может быть расширена за счет использования сторонних фильтров, известных как плагины. Список внешних плагинов поддерживается в AviSynth Filter Collection.

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

Язык сценариев AviSynth

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

Язык в основном работает с аудио / видеоклипами как с встроенным типом данных. Клип представляет собой сложную структуру со многими атрибутами, такими как ширина, высота и продолжительность. В языке также есть несколько других более стандартных типов данных: int, float, bool и string. Их можно использовать для выполнения вычислений, принятия решений и записи текста, такого как субтитры, в видео.

Скрипт имеет единственное возвращаемое значение, которое представляет собой аудио и видео, «видимые» программой, запускающей скрипт. Обычно это последняя строка сценария, но оператор возврата может быть вставлен в любой момент.

«Hello World»

Этот пример представляет собой программу «Hello World».

BlankClip () Subtitle («Hello, world!»)

Если приведенный выше текст вводится в текстовый файл с расширением.avs, его можно открыть в Windows Media Player или любой другой программе в списке под, и видео, содержащее слова "Привет, мир!" будет отображаться.

Функция BlankClip создает новое видео. Скобки в конце слова являются необязательными, поскольку аргументы не передаются, но в данном случае они даны, чтобы указать, что это функция, а не переменная.

Функция Subtitle рисует слова «Hello, world!» поверх ранее созданного пустого видео.

Хотя обе функции принимают гораздо больше аргументов (например, управление размером и длиной пустого видео, а также позиционированием, шрифтом и цветом субтитров), в этом примере они не учитываются; функции используют встроенные аргументы по умолчанию.

Avisynth использует синтаксический сахар, который значительно упрощает написание простых скриптов: неявную переменную с именем Last. Без неявных переменных приведенный выше сценарий должен быть записан следующим образом:

Last = BlankClip () Last = Last.Subtitle ("Hello, world!") Return Last

или как это :

A = BlankClip () B = A.Subtitle ("Hello, world!") Return B

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

A = BlankClip () B = A.Subtitle ("Hello, world!") Return Dissolve (A, B, 30) # 30-кадровое переходное затухание

Обработка видео

Этот пример берет реальное видео, применяет некоторую простую обработку и возвращает его в вывод.

AviSource ("C: \ Example.avi") ReduceBy2 () GreyScale ()

Функция AviSource используется для загрузки видео AVI из реального места. Чтобы открыть другие типы мультимедиа, вместо этого можно использовать функцию DirectShowSource. ReduceBy2 делит вертикальный и горизонтальный размер видео пополам, а GreyScale удаляет всю информацию о цвете.

Фильтры AviSynth работают во многих цветовых пространствах RGB и YUV , чтобы обеспечить все виды ввода и вывода видео. Некоторые функции работают только с определенными цветовыми пространствами , требующими преобразования - например, большинство видео распределяются в цветовом пространстве YUV, но большая часть цветокоррекции выполняется в одно из пространств RGB. Сценарий коррекции цвета может выглядеть следующим образом:

DirectShowSource ("movie.mp4") # Цветовое пространство YV12 ConvertToRGB32 RGBAdjust (1.0, 0.95, 1.0) # уменьшение Зеленый канал ConvertToYV12

Определяется пользователем

Язык сценариев AviSynth позволяет пользователям определять свои собственные функции.

Это пример функции, которая позволяет переходить от одного клипа к другому без повреждения строк чересстрочной развертки.

clip1 = AVISource ("video1.avi") clip2 = AVISource ("video2.avi") # вызов пользовательской функции, которая определена ниже: interlaced_dissolve (clip1, clip2, 30) #... сценарий возвращает указанный выше результат вызывающей программе # определяемая пользователем функция: # растворение от clip1 к clip2 более 30 кадров function interlaced_dissolve (clip clip1, clip clip2, int iter) {clip1 = clip1.SeparateFields evn1 = clip1.SelectEven odd1 = clip1.SelectOdd clip2 = clip2.SeparateFields evn2 = clip2.SelectEven odd2 = clip2.SelectOdd evn = Dissolve (evn1, evn2, iter) odd = Dissolve (odd1, odd2, iter) Interleave (evn, odd2, iter) Interleave (evn, odd).Weeave.DoubleWedOwed #... функция возвращает указанный выше результат в основной скрипт}
AviSynth 3.0 и AviSynth +

AviSynth 3.0 был полной переписью AviSynth 2.x, и направлена ​​на преодоление ограничений AviSynth 2.x. Добавление улучшений, таких как абстрактная модель цветового пространства , в которой новые цветовые пространства (включая два с 45-битной глубиной) могут поддерживаться с помощью механизма подключаемых модулей, улучшенное управление кешем для повышения производительности и использование Ruby, а не на родном языке, используемом в текущих версиях.

AviSynth 3.0 должен был быть доступен для других операционных систем, кроме Windows, вместо этого полагаясь на GStreamer, расширяя поддержку таких платформ, как Linux, Mac OS X и BSD. Разработка застопорилась с августа 2007 года.

Самая последняя и современная версия AviSynth на сегодняшний день - это AviSynth +, первоначально являвшаяся форком официального AviSynth 2.xx, но с тех пор AviSynth + получил широкое признание. и стала основной реализацией. Он переписал большую часть исходного кода AviSynth и представил долгожданные функции, такие как 64-битная поддержка, многопоточность, глубокие цветовые пространства, поддержка последних компиляторов., новые конструкции сценариев (новые конструкции потока управления, такие как циклы) и повышенная производительность во многих областях. В то же время он сохранил 100% совместимость с серией AviSynth 2.5 / 2.6 как для фильтров, так и для хост-приложений. На момент написания (2019-05) он также активно поддерживается.

AviSynth для операционных систем, отличных от Windows

AviSynth 2.xx может использоваться в операционных системах, отличных от Windows, с использованием Wine. Для работы со скриптами VirtualDub / VirtualDubMod можно использовать как в Windows. Для взаимодействия между AviSynth под Wine и, например, FFmpeg, работающим на хосте Linux, может использоваться. Avs2YUV - это программа командной строки Windows, которая запускается под Wine и отображает выходные данные сценария AviSynth в stdout, который затем передается по конвейеру в FFmpeg. Avs2YUV также поддерживает запись в именованный канал .

Существует порт AviSynth для Linux под названием AvxSynth.

AviSynth-совместимые программы
Название программыЛицензияКомментарииДомашняя страница
Adobe Premiere Pro Собственная, коммерческаяВерсии 6.0 и более поздние (до CS4 включительно) имеют доступный плагин импорта AviSynth.Плагин импорта Premiere AviSynth
Собственное бесплатное ПОГрафический интерфейс Avanti - это бесплатный интерфейс для FFmpeg с возможностью вставки AviSynth в качестве препроцессора.Avanti GUI
GPLAvsPmod - это редактор сценариев AviSynth со встроенным проигрывателем, подсветкой синтаксиса и автозаполнением кода.AvsPmod
Cinema Craft EncoderСобственныйCinema Craft Encoder - коммерческий кодировщик MPEG-2, поддерживающий вход AviSynth.Cinema Craft
FFmpeg LGPL2.1 +, GPL 2+FFmpeg, скомпилированный для Windows, может получать входные AviSynthинструкции
GOM Player Собственное, бесплатное ПО,с поддержкой рекламы может воспроизводить файлы.avs.
Media Player Classic GPLMedia Player Classic может загружать и воспроизводить скрипты AviSynth. Требуется 32-битная версия.Media Player Classic
Microsoft Expression Encoder Собственный, условно-бесплатныйMicrosoft Expression Encoder может импортировать и перекодировать файлы.avs.
MPlayer GPLMPlayer может воспроизводить файлы.avs
Nero Multimedia Suite Собственный, коммерческийNero Showtime может воспроизводить файлы avs
SUPER Проприетарное, бесплатное программное обеспечение с поддержкой рекламыSUPER (Simplified Universal Player, Encoder and Renderer) - это бесплатное программное обеспечение от eRightSoft, которое может кодировать большинство распространенных видеоформатов и имеет полную поддержку AviSynth.SUPER
TMPGEnc Условно-бесплатное ПОTMPGEnc - это бесплатный кодировщик MPEG-1 и MPEG-2. TMPGEnc Plus и TMPGEnc Express - это коммерческие версии TMPGEnc, которые включают расширенные функциональные возможности, а также снятие 30-дневного ограничения на кодирование MPEG-2, присутствующего в TMPGEnc.Pegasys Inc.
Total Video Converter]Запатентованное пробное ПОTotal Video Converter имеет доступный плагин импорта AviSynth.Total Video Converter
VirtualDub GPLVirtualDub - широко используемый универсальный конвертер видео.VirtualDub
VirtualDubMod GPLVirtualDubMod содержит несколько специфичных для AviSynth функций, таких как явная поддержка сценариев AviSynth, редактор сценариев AviSynth и многое другое. Однако он не обновлялся с 2006 года и содержит множество ошибок.VirtualDubMod
Windows Media Player Проприетарный компонент Windows / бесплатного программного обеспеченияWindows Media Player может загружать и воспроизводить AviSynth скрипты, поэтому это хороший выбор для простого воспроизведения и тестирования. Для его работы могут потребоваться некоторые настройки реестра.Windows Media Home

Кроме того, в настоящее время создано несколько программ, которые принимают только сценарии AviSynth в качестве входных данных, тем самым упрощая сами программы, но предоставляя пользователям все возможности AviSynth для ввода.

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

Хотя сценарии AviSynth предназначены для легкого открытия в простых программах редактирования текста, существует несколько редакторов, специально предназначенных для редактирования сценариев AviSynth, например AvsPMod.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-12 19:59:02
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте