AviSynth - AviSynth

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

AviSynth это фреймсервер программа для Майкрософт Виндоус разработан Беном Рудиак-Гулдом, Эдвином ван Эггеленом, Клаусом Постом, Ричардом Бергом, Яном Брэбхэмом и другими.[2] это бесплатно программное обеспечение под GNU GPL лицензия.

Редактор сценариев видео

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

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

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

 AviSource ("myAvi.avi") Обрезка (0, 0, 320, 240) Размытие (0,1)

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

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

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

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

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

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

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

"Привет, мир"

Этот пример - Программа "Hello World".

 BlankClip () Subtitle («Привет, мир!»)

Если указанный выше текст введен в текстовый файл с расширением .avs, его можно открыть в Проигрыватель Windows Media или любой из других программ в список ниже, и видео со словами «Hello, world!» будет отображаться.

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

В Подзаголовок функция рисует слова "Hello, world!" поверх ранее созданного пустого видео.

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

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

 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 цветовые пространства чтобы разрешить все виды ввода и вывода видео.[9] Некоторые функции работают только с определенными цветовые пространства, требующие преобразования - например, большинство видео распространяется в 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, odd) .Weave.DoubleWeave.SelectOdd # ... функция возвращает приведенный выше результат в основной скрипт}

AviSynth 3.0 и AviSynth +

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

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

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

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

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

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

AviSynth-совместимые программы

Название программыЛицензияКомментарииДомашняя страница
Adobe Premiere ProСобственная, коммерческаяВерсии 6.0 и новее (до CS4 включительно) имеют доступный плагин импорта AviSynth.Плагин импорта Premiere AviSynth
Avanti GUIПроприетарное, бесплатное ПОAvanti GUI - это бесплатный интерфейс для FFmpeg с возможностью вставить AviSynth в качестве препроцессора.Avanti GUI
AvsPmodGPLAvsPmod - это редактор сценариев AviSynth со встроенным проигрывателем, подсветкой синтаксиса и автозаполнением кода.AvsPmod
Кодировщик Cinema CraftПроприетарныйCinema Craft Encoder - это коммерческий кодировщик MPEG-2, поддерживающий вход AviSynth.Cinema Craft
FFmpegLGPL2.1 +, GPL 2+FFmpeg, скомпилированный для Windows, может получать входные данные AviSynthинструкции
GOM плеерПроприетарное, бесплатное ПО, с рекламойможет воспроизводить файлы .avs
Классический медиаплеерGPLMedia Player Classic может загружать и воспроизводить скрипты AviSynth. Требуется 32-битная версия.Классический медиаплеер
Кодировщик выражений MicrosoftСобственная, условно бесплатнаяMicrosoft Expression Encoder может импортировать и перекодировать файлы .avs.
MPlayerGPLMPlayer может воспроизводить файлы .avs
Мультимедийный пакет NeroСобственная, коммерческаяNero Showtime может воспроизводить файлы AVS
СУПЕРПроприетарное, бесплатное ПО, с рекламойSUPER (упрощенный универсальный проигрыватель, кодировщик и рендерер) бесплатное ПО от eRightSoft, который может кодировать наиболее распространенные форматы видео и имеет полную поддержку AviSynth.СУПЕР
TMPGEncУсловно-бесплатное ПОTMPGEnc это свободный Кодировщик MPEG-1 и MPEG-2. TMPGEnc Plus и TMPGEnc Express - это коммерческие версии TMPGEnc, которые включают расширенные функциональные возможности, а также снятие 30-дневного ограничения на кодирование MPEG-2, присутствующего в TMPGEnc.Pegasys Inc.
Конвертер видео Total]Проприетарное, пробное ПОTotal Video Converter имеет доступный плагин импорта AviSynth.Total Video Converter
VirtualDubGPLVirtualDub - широко используемый универсальный конвертер видео.VirtualDub
VirtualDubModGPLVirtualDubMod содержит несколько специфичных для AviSynth функций, таких как явная поддержка сценариев AviSynth, редактор сценариев AviSynth и многое другое. Однако он не обновлялся с 2006 года и содержит много ошибок.[15]VirtualDubMod
Проигрыватель Windows MediaПроприетарный компонент Windows / бесплатное ПОПроигрыватель Windows Media может загружать и воспроизводить сценарии AviSynth, поэтому это хороший выбор для простого воспроизведения и тестирования. Для его работы могут потребоваться некоторые настройки реестра.Windows Media Home

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

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

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

Смотрите также

Рекомендации

  1. ^ «AviSynth +». GitHub. 2020-06-19. Получено 2020-06-19.
  2. ^ «Авторские права Avisynth». AviSynth Mediawiki. Команда AviSynth. Получено 11 сентября 2015.
  3. ^ "Главная страница - Avisynth". AviSynth Mediawiki. Команда AviSynth. Получено 10 апреля 2013.
  4. ^ "Подробнее об AviSynth - Avisynth". AviSynth Вики. Команда AviSynth. Получено 10 апреля 2013.
  5. ^ а б «Модель выполнения сценария: график фильтров». AviSynth Вики. Команда AviSynth. Получено 25 октября 2019.
  6. ^ «Синтаксис AviSynth: управляющие структуры». AviSynth Вики. Команда Avisynth. Получено 21 сен, 2014.
  7. ^ «Свойства клипа». AviSynth Вики. Команда Avisynth. Получено 27 октября, 2019.
  8. ^ «Переменные скрипта». AviSynth Вики. Команда Avisynth. Получено 14 сен, 2017.
  9. ^ «Конвертировать - Avisynth». AviSynth Вики. Команда AviSynth. Получено 27 октября 2019.
  10. ^ а б "Avisynth 3 - мертвый проект?". Doom9 Forum. Получено 2009-06-17.
  11. ^ «AviSynth v3». AviSynth Mediawiki. Получено 22 сентября 2019.
  12. ^ «AviSynth +». AviSynth Mediawiki. Получено 22 сентября 2019.
  13. ^ «Авс2ЮВ». Akuvian.org. Получено 2011-01-09.
  14. ^ "avxsynth / avxsynth: Linux-порт Avisynth". GitHub. Получено 2017-09-16.
  15. ^ "SourceForge.net: VirtualDubMod: Ошибки". Получено 2009-12-03.

внешняя ссылка