АвиСинт
Эта статья нуждается в дополнительных цитатах для проверки . ( ноябрь 2009 г. ) |
![]() Логотип АвиСинт | |
Разработчик(и) | Разработчики AviSynth, Doom9 сообщество |
---|---|
Первоначальный выпуск | 19 мая 2000 г |
Стабильная версия | 2.6.0 (31 мая 2015 г [±] | )
Предварительный выпуск | 2.6.1 Альфа 1 (17 мая 2016 г [±] | )
Репозиторий | |
Написано в | С++ , ассемблер |
Операционная система | Windows , Linux , MacOS |
Платформа | х86 и х86-64 |
Тип | цифровых видеокадров Сервер |
Лицензия | GNU GPL |
Веб-сайт | www |
AviSynth — это программа фрейм-сервера для Microsoft Windows , Linux и macOS, первоначально разработанная Беном Рудиаком-Гулдом, Эдвином ван Эггеленом, Клаусом Постом, Ричардом Бергом и Яном Брэбэмом в мае 2000 года. [1] а затем подхвачен и поддерживается сообществом открытого исходного кода, которое активно и по сей день. Это бесплатное программное обеспечение , распространяемое по лицензии GNU General Public License .
Скриптовый видеоредактор
[ редактировать ]AviSynth действует как нелинейный видеоредактор, полностью управляемый скриптами (без графического интерфейса ). [2] Он эмулирует AVI видеофайл WAV (или аудиофайл ), как его видит нижестоящее приложение VFW , которым обычно является медиаплеер , программное обеспечение для редактирования видео или кодировщик . [3]
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 , но с дополнительными возможностями). [4] управляется скриптами, написанными на языке сценариев AviSynth . Его функциональность может быть расширена за счет использования сторонних фильтров, известных как плагины . Список внешних плагинов хранится в коллекции фильтров AviSynth .
AviSynth — это сервер кадров : вызывающая программа запрашивает аудио/видеокадры, а скрипт обслуживает их . Вызывающая программа может вызывать кадры в любом порядке, позволяя ей приостанавливать, переходить вперед или назад и т. д., как и в случае с физическим файлом.
Язык сценариев AviSynth
[ редактировать ]Язык сценариев — это язык потоков данных : [4] парадигма программирования , описывающая ориентированный граф данных, передаваемых между операциями. В нем отсутствуют некоторые структуры управления процедурным программированием , [5] но он содержит множество функций, знакомых программистам, включая переменные , отдельные типы данных , условные выражения и сложные выражения .
Язык работает в основном с аудио/видеоклипом как со встроенным типом данных. Клип представляет собой сложную структуру со множеством атрибутов, таких как ширина, высота и продолжительность. [6] В языке также есть несколько других, более стандартных типов данных: int , float , bool и string . [7] Их можно использовать для выполнения вычислений, принятия решений и написания текста, например субтитров к видео.
Скрипт имеет единственное возвращаемое значение , которое представляет собой аудио и видео, «видимые» программой, выполняющей скрипт. Обычно это последняя строка сценария, но оператор возврата может быть вставлен в любой момент.
"Привет, мир"
[ редактировать ]Этот пример представляет собой программу «Hello World» .
BlankClip() Subtitle("Hello, world!")
Если приведенный выше текст ввести в текстовый файл с расширением .avs, его можно будет открыть в проигрывателе Windows Media или любой другой программе из списка ниже , а видеоролик, содержащий слова «Hello, world!» будет отображаться.
The Функция BlankClip создает новое видео. Круглые скобки в конце слова необязательны, поскольку аргументы не передаются, но в данном случае они задаются для указания, что это функция, а не переменная.
The Функция субтитров рисует слова «Привет, мир!» поверх ранее созданного пустого видео.
Хотя обе функции принимают гораздо больше аргументов (например, управление размером и длиной пустого видео, а также расположением, шрифтом и цветом субтитров), в этом примере они не учитываются; функции используют встроенные аргументы по умолчанию.
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-frame cross fade
Видеообработка
[ редактировать ]В этом примере берется фактическое видео, применяется простая обработка и возвращается на выходе.
AviSource("C:\Example.avi") ReduceBy2() GreyScale()
The Функция AviSource используется для загрузки видео AVI из реального места. Чтобы открыть другие типы носителей, DirectShowSource . Вместо этого можно использовать функцию УменьшитьBy2 делит вертикальный и горизонтальный размер видео пополам и GreyScale удаляет всю информацию о цвете.
Фильтры AviSynth работают во многих RGB и YUV, цветовых пространствах обеспечивая все виды видеовхода и вывода. [8] Определенные функции работают только с определенными цветовыми пространствами , требующими преобразования — например, большинство видео распространяется в цветовом пространстве YUV , но большая часть цветокоррекции выполняется в одном из пространств RGB . Сценарий цветокоррекции может выглядеть так:
DirectShowSource("movie.mp4") # YV12 color space ConvertToRGB32 RGBAdjust(1.0, 0.95, 1.0) # decrease Green channel ConvertToYV12
Определяется пользователем
[ редактировать ]Язык сценариев AviSynth позволяет пользователям определять свои собственные функции.
Это пример функции, позволяющей переходить из одного клипа в другой, не повреждая переплетающиеся линии.
clip1 = AVISource("video1.avi") clip2 = AVISource("video2.avi") # call the user-defined function which is defined below: interlaced_dissolve(clip1, clip2, 30) # ...the script returns the above result to the calling program # user-defined function: # dissolve from clip1 to clip2 over 30 frames 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 # ...the function returns the above result to the main script }
АвиСинт 3.0 и АвиСинт+
[ редактировать ]AviSynth 3.0 представлял собой полную переработку AviSynth 2.x и был направлен на преодоление ограничений AviSynth 2.x. Добавление таких улучшений, как абстрактная модель цветового пространства , в которой новые цветовые пространства (в том числе два с глубиной 45 бит) могут поддерживаться с помощью механизма подключаемых модулей, лучшее управление кэшем для повышения производительности и использование Ruby вместо используемого отечественного языка. в текущих версиях. [9]
AviSynth 3.0 должен был быть доступен для других операционных систем, кроме Windows , вместо этого он полагался на GStreamer , расширяя поддержку таких платформ, как Linux , Mac OS X и BSD . Разработка застопорилась с августа 2007 года. [9] [10]
AviSynth+ — это ответвление официального AviSynth 2.xx, в котором представлены долгожданные функции, такие как поддержка 64-бит , многопоточность , глубокие цветовые пространства , поддержка последних компиляторов, новые конструкции сценариев (новые конструкции потока управления, такие как циклы) и повышение производительности во многих областях. [11] В то же время он сохранил 100% совместимость с серией AviSynth 2.5/2.6, как для фильтров, так и для хост-приложений. На момент написания статьи (2023-06 гг.) он также активно поддерживается.
AviSynth для операционных систем, отличных от Windows
[ редактировать ]AviSynth 2.xx можно использовать в операционных системах, отличных от Windows, с помощью Wine . Для работы по скриптам VirtualDub / VirtualDubMod можно использовать как и в Windows. Для взаимодействия между AviSynth под Wine и, например, FFmpeg, работающим на хосте Linux, Avs2YUV можно использовать . Avs2YUV — это программа командной строки Windows , которая запускается под Wine и отображает выходные данные сценария AviSynth на стандартный вывод , который затем передается по конвейеру в FFmpeg. Avs2YUV также поддерживает запись в именованный канал . [12]
Существует порт AviSynth для Linux под названием AvxSynth. [13]
Программы, совместимые с AviSynth
[ редактировать ]Название программы | Лицензия | Комментарии | Домашняя страница |
---|---|---|---|
Adobe Премьера Про | Собственный, коммерческий | В версиях 6.0 и более поздних (вплоть до CS4) доступен плагин импорта AviSynth. | Плагин импорта Premiere AviSynth |
Следующий графический интерфейс | Проприетарное, бесплатное ПО | Avanti GUI — это бесплатный интерфейс для FFmpeg с возможностью вставки AviSynth в качестве препроцессора. | Следующий графический интерфейс |
РесПмод | лицензия GPL | AvsPmod — редактор сценариев AviSynth со встроенным проигрывателем, подсветкой синтаксиса и автодополнением кода. | РесПмод |
Кодер Cinema Craft | Собственный | Cinema Craft Encoder — это коммерческий кодер MPEG-2, поддерживающий вход AviSynth. | Кино Крафт |
FFmpeg | LGPL2.1+, GPL 2+ | FFmpeg, скомпилированный для Windows, может получать входные данные AviSynth | инструкции |
ГОМ Игрок | Проприетарное, бесплатное ПО, с поддержкой рекламы | может воспроизводить файлы .avs | |
Медиаплеер классический | лицензия GPL | Media Player Classic способен загружать и воспроизводить сценарии AviSynth. Нужна 32-битная версия. | Медиаплеер классический |
Кодировщик выражений Microsoft | Собственный, бесплатный | Microsoft Expression Encoder может импортировать и перекодировать файлы .avs. | |
MPlayer | лицензия GPL | MPlayer может воспроизводить файлы .avs | |
Мультимедийный пакет Nero | Собственный, коммерческий | Nero Showtime может воспроизводить файлы AVS | |
СУПЕР | Проприетарное, бесплатное ПО, с поддержкой рекламы | SUPER (Simplified Universal Player, Encoder and Renderer) — это бесплатная программа от eRightSoft, которая может кодировать большинство распространенных видеоформатов и имеет полную поддержку AviSynth. | СУПЕР |
ТМПГЕНк | Условно-бесплатное/бесплатное ПО | TMPGEnc — бесплатный кодер MPEG-1 и MPEG-2. TMPGEnc Plus и TMPGEnc Express — это коммерческие версии TMPGEnc, которые включают расширенные функциональные возможности, а также снимают 30-дневное ограничение на кодирование MPEG-2, присутствующее в TMPGEnc. | Пегасис Инк. |
Полный видео конвертер | Собственная пробная версия | Total Video Converter имеет плагин импорта AviSynth. | Полный видео конвертер |
ВиртуалДуб | лицензия GPL | VirtualDub — широко используемый универсальный видеоконвертер. | ВиртуалДуб |
ВиртуалДубМод | лицензия GPL | VirtualDubMod содержит несколько функций, специфичных для AviSynth, таких как явная поддержка сценариев AviSynth, редактор сценариев AviSynth и многое другое. Однако он не обновлялся с 2006 года и содержит множество ошибок. [14] | ВиртуалДубМод |
Проигрыватель Windows Media | Собственный компонент Windows/бесплатное ПО | Проигрыватель Windows Media способен загружать и воспроизводить сценарии AviSynth, поэтому он является хорошим выбором для простого воспроизведения и тестирования. Для работы могут потребоваться некоторые настройки реестра. | Главная страница Windows Media |
Кроме того, сейчас создано несколько программ, которые принимают на вход только сценарии AviSynth, тем самым упрощая сами программы, но предоставляя пользователям полную мощь AviSynth для ввода.
Существует также несколько приложений пакетного кодирования, которые объединяют AviSynth с аудио- и видеокодировщиками и мультиплексорами командной строки, образуя универсальное модульное настраиваемое приложение для кодирования видео. MeGUI — пример такого рода приложений.
Хотя сценарии AviSynth предназначены для легкого открытия в простых программах редактирования текста, существует несколько редакторов, предназначенных специально для редактирования сценариев AviSynth, таких как AvsPMod .
![]() | Этот раздел нуждается в расширении . Вы можете помочь, добавив к нему . ( май 2008 г. ) |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ «Ависинт Копирайт» . АвиСинт Медиавиики . Команда АвиСинт . Проверено 11 сентября 2015 г.
- ^ "Главная страница - Ависинт " АвиСинт МедиаВики . Команда АвиСинт . Получено 10 апреля.
- ^ «Подробнее об AviSynth — Avisynth» . АвиСинт Wiki . Команда АвиСинт . Проверено 10 апреля 2013 г.
- ^ Перейти обратно: а б «Модель выполнения сценария: граф фильтра» . АвиСинт Wiki . Команда АвиСинт . Проверено 25 октября 2019 г.
- ^ «Синтаксис AviSynth: структуры управления» . АвиСинт Wiki . Команда Ависинт . Проверено 21 сентября 2014 г.
- ^ «Свойства клипа» . АвиСинт Wiki . Команда Ависинт . Проверено 27 октября 2019 г.
- ^ «Переменные сценария» . АвиСинт Wiki . Команда Ависинт . Проверено 14 сентября 2017 г.
- ^ «Конвертировать — Ависинт» . АвиСинт Wiki . Команда АвиСинт . Проверено 27 октября 2019 г.
- ^ Перейти обратно: а б «Avisynth 3 – мертвый проект?» . Форум Дум9 . Проверено 17 июня 2009 г.
- ^ АвиСинт v3 " АвиСинт МедиаВики . Получено 22 сентября.
- ^ «АвиСинт+ » АвиСинт МедиаВики . Получено 22 сентября.
- ^ «Авс2ЮВ» . Акувиан.орг . Проверено 9 января 2011 г.
- ^ «avxsynth/avxsynth: порт Avisynth для Linux» . Гитхаб . Проверено 16 сентября 2017 г.
- ^ «SourceForge.net: VirtualDubMod: Ошибки» . Проверено 3 декабря 2009 г.
Внешние ссылки
[ редактировать ]- Домашняя страница AviSynth: (английский) (японский)
- Коллекция фильтров AviSynth
- Форумы AviSynth Doom9
- Домашняя страница разработки AviSynth 3.0