WikiDer > AviSynth
Эта статья нужны дополнительные цитаты для проверка. (Ноябрь 2009 г.) (Узнайте, как и когда удалить этот шаблон сообщения) |
Разработчики) | Разработчики AviSynth, Doom9 форумчане |
---|---|
Стабильный выпуск | 3.6.1 (AviSynth +)[1] (19 июня 2020 г. ) [±] |
Предварительный выпуск | 2.6.1 Альфа (17 мая 2016 г.[±] | )
Репозиторий | |
Написано в | C ++ |
Операционная система | Windows |
Тип | Цифровое видео фреймсервер |
Лицензия | GNU GPL |
Интернет сайт | www |
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 |
AvsPmod | GPL | AvsPmod - это редактор сценариев AviSynth со встроенным проигрывателем, подсветкой синтаксиса и автозаполнением кода. | AvsPmod |
Кодировщик Cinema Craft | Проприетарный | Cinema Craft Encoder - это коммерческий кодировщик MPEG-2, поддерживающий вход AviSynth. | Cinema Craft |
FFmpeg | LGPL2.1 +, GPL 2+ | FFmpeg, скомпилированный для Windows, может получать входные данные AviSynth | инструкции |
GOM плеер | Проприетарное, бесплатное ПО, с рекламой | может воспроизводить файлы .avs | |
Классический медиаплеер | GPL | Media Player Classic может загружать и воспроизводить скрипты AviSynth. Требуется 32-битная версия. | Классический медиаплеер |
Кодировщик выражений Microsoft | Собственная, условно бесплатная | Microsoft Expression Encoder может импортировать и перекодировать файлы .avs. | |
MPlayer | GPL | MPlayer может воспроизводить файлы .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 |
VirtualDub | GPL | VirtualDub - широко используемый универсальный конвертер видео. | VirtualDub |
VirtualDubMod | GPL | VirtualDubMod содержит несколько специфичных для AviSynth функций, таких как явная поддержка сценариев AviSynth, редактор сценариев AviSynth и многое другое. Однако он не обновлялся с 2006 года и содержит много ошибок.[15] | VirtualDubMod |
Проигрыватель Windows Media | Проприетарный компонент Windows / бесплатное ПО | Проигрыватель Windows Media может загружать и воспроизводить сценарии AviSynth, поэтому это хороший выбор для простого воспроизведения и тестирования. Для его работы могут потребоваться некоторые настройки реестра. | Windows Media Home |
Кроме того, сейчас создано несколько программ, которые принимают Только Сценарии AviSynth в качестве входных данных - тем самым упрощая сами программы, но предоставляя пользователям полную мощность AviSynth для ввода.
Также существует несколько приложений пакетного кодирования, которые связывают AviSynth с аудио- и видеокодерами и мультиплексорами командной строки, чтобы обеспечить универсальное модульное настраиваемое приложение для кодирования видео. MeGUI является примером такого приложения.
Хотя сценарии AviSynth предназначены для легкого открытия в простых программах редактирования текста, существует несколько редакторов, специально предназначенных для редактирования сценариев AviSynth, таких как AvsPMod.
Эта секция нуждается в расширении. Вы можете помочь добавляя к этому. (Май 2008 г.) |
Смотрите также
Рекомендации
- ^ «AviSynth +». GitHub. 2020-06-19. Получено 2020-06-19.
- ^ «Авторские права Avisynth». AviSynth Mediawiki. Команда AviSynth. Получено 11 сентября 2015.
- ^ "Главная страница - Avisynth". AviSynth Mediawiki. Команда AviSynth. Получено 10 апреля 2013.
- ^ "Подробнее об AviSynth - Avisynth". AviSynth Вики. Команда AviSynth. Получено 10 апреля 2013.
- ^ а б «Модель выполнения сценария: график фильтров». AviSynth Вики. Команда AviSynth. Получено 25 октября 2019.
- ^ «Синтаксис AviSynth: управляющие структуры». AviSynth Вики. Команда Avisynth. Получено 21 сен, 2014.
- ^ «Свойства клипа». AviSynth Вики. Команда Avisynth. Получено 27 октября, 2019.
- ^ «Переменные скрипта». AviSynth Вики. Команда Avisynth. Получено 14 сен, 2017.
- ^ «Конвертировать - Avisynth». AviSynth Вики. Команда AviSynth. Получено 27 октября 2019.
- ^ а б "Avisynth 3 - мертвый проект?". Doom9 Forum. Получено 2009-06-17.
- ^ «AviSynth v3». AviSynth Mediawiki. Получено 22 сентября 2019.
- ^ «AviSynth +». AviSynth Mediawiki. Получено 22 сентября 2019.
- ^ «Авс2ЮВ». Akuvian.org. Получено 2011-01-09.
- ^ "avxsynth / avxsynth: Linux-порт Avisynth". GitHub. Получено 2017-09-16.
- ^ "SourceForge.net: VirtualDubMod: Ошибки". Получено 2009-12-03.
внешняя ссылка
- Домашняя страница AviSynth: (Английский) (Японский)
- Коллекция фильтров AviSynth
- Форумы Doom9 по AviSynth
- Домашняя страница разработки AviSynth 3.0