L-SMASH Works подключает видео и звук к AviSynth+, VapourSynth и AviUtl: читает контейнер, декодирует потоки и передаёт кадры и аудиосэмплы следующему этапу обработки. Это не самостоятельный видеоредактор с монтажной шкалой и общей кнопкой экспорта. Его основная работа происходит раньше монтажа и кодирования — при открытии материала, выборе дорожки, обработке временных меток и переходе к нужному кадру.
Скачать L-SMASH Works бесплатно
Рекомендуемый аналог
ВидеоМАСТЕР
Конвертер видео и аудио для Windows с русским интерфейсом
- Конвертация видео и аудио между популярными форматами
- Подготовка файлов для устройств и публикации
- Обрезка, соединение, звук и субтитры
- Русскоязычный интерфейс для Windows
L-SMASH Works
Программа для работы с видео или аудио на русском языке
- Меньше инструментов для точной локальной коррекции
- Часть расширенных функций доступна только платно
- Набор инструментов зависит от версии и платформы
- Может не подойти для сложного профессионального монтажа
Для фотографа, который также снимает видео, инструмент полезен перед фильтрацией записи, извлечением кадров или пакетным перекодированием. Его оценивают по корректности передачи исходника следующему этапу, а не по набору монтажных эффектов.
Что входит в проект и кто его развивает
Автор исходной реализации L-SMASH Works — Yusuke Nakamura, известный под именем VFR-maniac. Развитие продолжили несколько ответвлений с открытым кодом, включая HomeOfAviSynthPlusEvolution со скриптовыми плагинами и ветку Mr-Ojii, ориентированную прежде всего на классический AviUtl и AviUtl ExEdit2. Это ответвления одного проекта, а не коммерческие редакции с разными оплаченными функциями.
Название легко спутать с L-SMASH — отдельной библиотекой для контейнеров семейства ISO Base Media, включая MP4, и связанных операций мультиплексирования и демультиплексирования. В составе Works эта библиотека отвечает за один из способов чтения контейнера, а декодирование выполняют компоненты FFmpeg. Установка L-SMASH Works не равнозначна установке самостоятельного мультиплексора L-SMASH и не заменяет отсутствующий исполняемый файл мультиплексора в чужой сборке для кодирования.
Основной компонент называется LSMASHSource в средах AviSynth и VapourSynth, а в AviUtl — L-SMASH Works File Reader. В классическом комплекте AviUtl также существуют Muxer, Dumper и Color Space Converter — отдельные модули сборки контейнера, диагностического вывода и преобразования представления цвета. Их возможности нельзя переносить на каждый архив с названием L-SMASH Works.
Актуальный статус и границы этого обзора
По состоянию на 8 сентября 2026 года проект развивается. В HomeOfAviSynthPlusEvolution актуален выпуск 20260824 с номером 1310.0.0.0. Он добавил источники аудио для VapourSynth и исправил обработку разрывов звуковой дорожки, в том числе после ресемплирования и коррекции синхронизации. Поэтому старое описание этой ветки как плагина «только для видео в VapourSynth» уже не соответствует её возможностям.
В автоматических сборках Mr-Ojii для AviUtl и ExEdit2 на эту дату предлагается архив L-SMASH-Works_r1283_Mr-Ojii_Mr-Ojii.zip. Номер r1283 не следует сопоставлять с 1310.0.0.0 как с двумя ступенями одной линейки обновлений: это разные ветки с собственными изменениями и упаковкой. Сначала выбирают принимающую программу и ответвление, затем — подходящий выпуск внутри него.
Скриптовые функции в обзоре рассматриваются для HomeOfAviSynthPlusEvolution 1310.0.0.0, а графические настройки и установка в AviUtl — для Mr-Ojii. Одинаковая подпись параметра не гарантирует одинакового значения по умолчанию в этих вариантах.
Основные параметры
| Параметр | Что получает пользователь |
|---|---|
| Тип продукта | Набор плагинов чтения медиа и связанных инструментов; не самостоятельная монтажная программа |
| Основные среды | AviSynth+, VapourSynth, классический AviUtl и AviUtl ExEdit2 — с соответствующими сборками |
| Платформы | Windows; скриптовые плагины также собираются для Linux и macOS |
| Распространение | Архивы готовых модулей, исходный код; для VapourSynth — пакет vapoursynth-lsmas |
| Чтение контейнеров | Два пути: L-SMASH с libavcodec либо libavformat с libavcodec |
| Навигация по видео | Индексация, обращение к кадрам, управление поиском и обработкой временных меток |
| Работа со звуком | Выбор потока, декодирование, настройка частоты дискретизации и расположения каналов, коррекция временной привязки |
| Результат source-плагина | Кадры и аудиосэмплы для принимающей среды; конечный медиафайл создаёт следующий этап |
| Интерфейс | Функции в скрипте либо окно настроек входного модуля в AviUtl |
| Стоимость | Бесплатное распространение; нет платной активации, пробного таймера и тарифа по минутам |
| Лицензирование | Собственный исходный код — ISC; условия готовых бинарных файлов зависят также от библиотек LGPL/GPL |
| Обработка локального файла | На компьютере пользователя, без обязательной отправки исходника на сервер |
Платформы, установка и выбор комплекта
AviSynth+ и VapourSynth
В Windows скриптовой части соответствует библиотека LSMASHSource.dll. Она загружается принимающей средой, а не запускается двойным щелчком. Для AviSynth+ доступна явная загрузка через LoadPlugin; в VapourSynth используется механизм загрузки плагинов этой среды. Пользователю нужны не только файл библиотеки, но и установленный движок, а для просмотра или сохранения — программа, которая умеет получать от него кадры.
Разрядность выбирают по процессу, который выполняет скрипт. Для 64-разрядной цепочки нужны совместимые 64-разрядные движок и библиотека. Наличие 64-разрядной Windows не превращает старую 32-разрядную монтажную программу в 64-разрядную. При явном подключении удобнее держать конкретную версию плагина в отдельной папке проекта: путь сразу показывает, какая библиотека участвует в обработке.
Для VapourSynth доступен пакет vapoursynth-lsmas 1310.0.0.0. Его требования включают Python 3.10 или новее и VapourSynth R74 или новее. Готовые пакеты опубликованы для Windows x86-64, Linux x86-64 и ARM64, а также macOS на Intel и Apple Silicon. Пакеты macOS этого выпуска рассчитаны на macOS 15.0 и новее; варианты Linux разделены на manylinux с glibc 2.28 и новее и musllinux с musl 1.2 и новее.
Это требования конкретных готовых пакетов, а не универсальные минимальные требования любого исходного кода Works. Пакет для Python содержит вариант VapourSynth: он не устанавливает комплект для AviUtl и не заменяет AviSynth+.
В настроенном окружении VapourSynth нужный выпуск устанавливается командой python -m pip install vapoursynth-lsmas==1310.0.0.0. Важен выбор самого окружения Python: установка в один интерпретатор не делает плагин автоматически доступным другой изолированной среде. При работе с готовой переносимой сборкой обработки сначала учитывают её собственную структуру библиотек, чтобы не добавить вторую конфликтующую копию.
Плагины AviSynth и VapourSynth также собираются из исходного кода для Linux и macOS. Нативная библиотека должна соответствовать системе, архитектуре и API принимающей среды; Windows DLL не является её заменой. Инструменты разработки нужны для самостоятельной сборки, но не для использования готового бинарного пакета.
Классический AviUtl и ExEdit2 — разные точки установки
В классическом AviUtl входной модуль называется lwinput.aui. Комплект для этой среды размещают в папке плагинов AviUtl, после чего в списке входных модулей появляется L-SMASH Works File Reader. Проверка этого списка полезнее поиска ярлыка: именно наличие зарегистрированного читателя подтверждает, что редактор обнаружил модуль.
Для AviUtl ExEdit2 предназначен lwinput.aui2 из каталога AviUtl2 соответствующего архива. Ветка Mr-Ojii использует каталог C:ProgramDataaviutl2Plugin либо папку dataPlugin рядом с aviutl2.exe. Старый путь plugins от классического редактора нельзя механически переносить в новую установку. В настройках входных плагинов ExEdit2 модуль обозначен как L-SMASH Works File Reader for AviUtl2.
Обычное переименование классического lwinput.aui в lwinput.aui2 не добавляет новый программный интерфейс. Отдельный случай — современные универсальные бинарные сборки HomeOfAviSynthPlusEvolution, в которые поддержка AviUtl2 уже включена: для них допустимо имя lwinput.aui2. Это свойство конкретной сборки, а не способ превратить любой старый плагин в совместимый.
В ExEdit2 начиная с beta10 не работает старая схема с InputPipePlugin. При переходе с классического AviUtl необходимо согласовать версии редактора и плагина, а не переносить весь прежний набор .aui, .aui2 и DLL в одну папку.
Цена, лицензии и реальные требования к компьютеру
Коммерческих редакций Free и Pro у рассмотренных веток нет. Не требуется покупать разблокировку декодеров, регистрировать учётную запись или активировать пробный период. Плагин не накладывает водяной знак и не останавливает чтение после оплаченного количества минут. Отдельные платные приложения, в которые он встроен, имеют собственные условия; их стоимость не становится ценой L-SMASH Works.
Собственный код проекта распространяется по ISC. Для готового бинарного комплекта учитываются также лицензии включённых компонентов LGPL/GPL. Разработчику, который встраивает модуль в собственный дистрибутив, необходимо сохранять предусмотренные комплектом лицензионные материалы.
Потребление памяти определяется разрешением и разрядностью кадра, числом одновременно открытых источников, декодерными потоками и кэшами принимающей среды. Для длинных записей нужны место под индексы и доступ к исходному накопителю. Плагин не отменяет ограничений памяти 32-разрядного процесса.
Как устроен интерфейс
Скрипт вместо главного окна
В AviSynth+ интерфейсом служат имена функций и их аргументы. Путь к файлу, выбранный поток, режим поиска и параметры вывода записываются непосредственно в .avs. В VapourSynth те же задачи решаются в Python-скрипте .vpy через пространство имён lsmas. Библиотека не предоставляет собственной панели медиатеки, дорожек монтажа или окна цветокоррекции.
Рабочее пространство разделено между компонентами: редактор текста хранит описание обработки, предпросмотр показывает кадры, журнал сообщает об ошибках, кодировщик сохраняет результат. Эти зоны принадлежат выбранной оболочке. Одна и та же функция источника используется и в графической программе, и в консольном задании.
Номер потока и параметры декодирования видны в проекте, их можно сопоставить с предыдущей редакцией скрипта. Обратная сторона — необходимость понимать синтаксис: неверное имя аргумента или отсутствующая библиотека останавливают выполнение.
Панель L-SMASH Works File Reader
В AviUtl параметры собраны в диалог File Reader. В нём есть переключатели способов чтения, настройки декодирования, блок обработки видео, параметры звука и управление индексами. Поле Preferred decoders задаёт предпочтительные декодеры, threads — число потоков декодирования, а Seek mode и Forward threshold управляют переходами по видео. Это настройки входного модуля, а не качества последующего H.264-экспорта.

В показанном диалоге настройки аудио расположены отдельно: Audio delay задаёт смещение в сэмплах, Sampling rate — частоту дискретизации, Channel layout — расположение выходных каналов. Ползунки Mix level регулируют вклад каналов при смешивании. Блок Create Index file и Cache directory path отвечает за служебные файлы навигации, а не за папку готовых видео.
Параметр Video scaler в классической реализации относится к восстановлению цветностной информации при преобразовании представления кадра. Это не отдельный инструмент увеличения разрешения с восстановлением деталей.
Старые изображения интерфейса требуют привязки к ревизии. В варианте Mr-Ojii для ExEdit2 настройка VFR->CFR удалена с r1200: определение и преобразование организованы совместно с принимающей программой. С r1204 убраны Libav video index и Libav audio index, поскольку используются возможности многодорожечного ввода ExEdit2. Искать эти поля в современной версии по старому изображению не нужно.
Функции скриптового API и подписи настроек File Reader используют английские названия. Язык меню, окна просмотра и других элементов оболочки определяется принимающей программой и её локализацией.
Два механизма импорта и поддерживаемые форматы
Демультиплексор разбирает контейнер и находит потоки; декодер превращает сжатые пакеты в изображение или звук. Поэтому MP4, H.264 и YUV420P10 обозначают разные уровни: контейнер, способ сжатия и представление уже декодированного кадра.
| Назначение | AviSynth+ | VapourSynth, пространство lsmas |
|---|---|---|
| Видео через L-SMASH | LSMASHVideoSource | LibavSMASHSource |
| Звук через L-SMASH | LSMASHAudioSource | LibavSMASHAudioSource |
| Видео через libavformat | LWLibavVideoSource | LWLibavSource |
| Звук через libavformat | LWLibavAudioSource | LWLibavAudioSource |
Путь L-SMASH предназначен для поддерживаемых контейнеров семейства ISO Base Media и QuickTime, прежде всего MP4 и MOV. В нём используются структура и временная организация этого семейства файлов. Путь LWLibav использует libavformat и охватывает более широкий круг контейнеров, включая Matroska, AVI, WebM и транспортные потоки MPEG. У обоих способов декодирование связано с libavcodec.
Для смешанного набора файлов логично начинать с LWLibav, а специализированный путь оставлять для MP4/MOV и сравнения поведения чтения. В HomeOfAviSynthPlusEvolution у LSMASHVideoSource и LibavSMASHSource есть ограничения производительности вне предварительного просмотра, поэтому выбирать их ради ожидаемого ускорения длинного прохода не стоит.
Совместимость определяется не расширением файла в одиночку, а сочетанием контейнера, кодека, профиля и возможностей сборки. Используются программные декодеры распространённых видеопотоков, а актуальный выпуск включает, в частности, dav1d для AV1 и libvpx для соответствующих потоков VP8/VP9. Наличие знакомого расширения не гарантирует корректность повреждённого файла или наличие каждого дополнительного декодера в самостоятельно собранной библиотеке.
Классический File Reader имеет входы AviSynth Script и VSScript для чтения .avs и .vpy через соответствующие движки. Переключатель не заменяет установку движка: скрипт выполняется его средой, а не декодируется как обычное видео.
Как выбираются дорожки
В LSMASHVideoSource и соответствующем источнике VapourSynth аргумент track со значением 0 включает автоматический выбор первого обнаруженного видеопотока. В LWLibavVideoSource и LWLibavSource используется stream_index: значение -1 выбирает видеопоток с наибольшим разрешением. Это разные правила, и при наличии основного видео, дополнительного ракурса или вспомогательного потока они дают не обязательно одинаковый результат.
Явный stream_index относится к индексу потока внутри контейнера, а не к порядковому номеру только среди видеодорожек. Сначала получают список потоков, затем подставляют индекс нужного видео или звука. Нельзя без проверки переносить номер из поля track другого механизма чтения: названия похожи по назначению, но договорённости о выборе различаются.
Индексация и точное обращение к кадрам
Зачем рядом с видео появляется .lwi
LWLibav строит индекс, чтобы связать положение пакетов и временные метки с последовательностью кадров. При первом обращении это требует анализа исходника. Сохранённый файл .lwi позволяет не повторять полный разбор при каждом следующем открытии. Поэтому длительный первоначальный запуск и заметно более короткий повторный запуск имеют разную природу и не должны сравниваться как одна операция.
По умолчанию индекс создаётся рядом с исходником и получает дополнительное расширение .lwi. Аргумент cachefile позволяет задать конкретное имя, а cachedir — отдельный каталог. При использовании cachedir имена учитывают полный путь исходного файла, чтобы одноимённые записи из разных папок не сталкивались в общей папке индексов.
Индекс не содержит запасной копии изображения и не служит прокси. После удаления .lwi исходное видео остаётся на месте, но следующему открытию вновь понадобится построение индекса. Очистка освобождает лишь место служебного файла, а не объём самих съёмок.
Параметр cache=false в AviSynth или cache=0 в VapourSynth отключает сохранение индексного файла. Он не означает отсутствие анализа потока и не управляет всеми внутренними кэшами кадров принимающей среды. Для разового чтения отказ от постоянного индекса допустим, но регулярное удаление кэша перед каждым заданием лишает последующие запуски его основного преимущества.
Каталог индексов должен быть доступен для записи. Для материала на защищённом носителе разумнее задать такой каталог на локальном диске, чем запускать всю обработку с повышенными правами. Это меняет место служебной записи, но не устраняет чтение самого видео с исходного накопителя.
Поиск, точки доступа и обработка ошибок
Сжатое видео не всегда позволяет получить произвольный кадр независимо от соседних. Для перехода используются точки произвольного доступа — RAP — и декодирование необходимой последовательности после такой точки. Аргумент seek_threshold определяет, когда продолжать последовательное чтение от текущей позиции, а когда переходить к подходящей точке доступа. Его изменение влияет на стратегию навигации, а не на степень сжатия или детализацию изображения.
Режим seek_mode=0 соответствует Normal. При ошибках он предусматривает повторные попытки декодирования. Unsafe и Aggressive сокращают восстановительные действия; в частности, агрессивный режим при фатальной ошибке способен вернуть последний уже выданный кадр. Это объясняет, почему завершившаяся без остановки обработка ещё не является гарантией отсутствия повторённого изображения на повреждённом участке.
Дополнительный параметр rap_verification включает проверку точек доступа при построении индекса. Она требует декодирования и увеличивает работу на этом этапе. При включённой проверке индексирование использует программный декодер независимо от предпочтения аппаратного декодирования основного прохода. После изменения режима проверки требуется удалить соответствующий прежний индекс и построить новый.
После замены исходного файла, изменения контейнера или параметров индексирования прежний .lwi не следует считать автоматически пригодным. При необходимости перестраивают именно связанный индекс, сохраняя исходник и остальные данные проекта.
Частота кадров, временные метки и чересстрочный материал
Параметры fpsnum и fpsden задают числитель и знаменатель выходной частоты при переходе от переменной частоты кадров (VFR) к постоянной (CFR). Например, 30000/1001 и 30/1 — разные значения, несмотря на близкие округлённые подписи в проигрывателе. Для длительной записи такая разница существенна: выбирать частоту следует по требуемой временной организации материала, а не по привычному числу из чужого скрипта.
При включённом преобразовании плагин формирует постоянную частоту добавлением повторов и удалением кадров. Он не рассчитывает промежуточные изображения по движению объектов. Поэтому преобразование в 60 кадров/с само по себе не делает исходную запись с редкими кадрами такой же плавной, как съёмка с реальными 60 кадрами/с.
Без заданной частоты преобразования используется вычисленная средняя частота, а выдача идёт по фактическим кадрам. Для VFR одного среднего числа недостаточно, чтобы описать длительность каждого изображения. Простое присвоение нового значения fps не заменяет согласованной обработки временных меток.
Отдельный случай — AVI-захват с пустыми, или null/drop, кадрами, в том числе записи VirtualDub. Для сохранения этих позиций при чтении через LWLibav явно задают частоту через fpsnum и fpsden. Иначе пустые позиции отбрасываются, нарушая соответствие изображения непрерывной звуковой дорожке.
Параметр repeat обрабатывает флаги повторения полей и кадров, а dominance определяет порядок полей: следовать исходнику, верхнее первым или нижнее первым. Это не замена фильтру деинтерлейсинга. При включённом преобразовании VFR в CFR настройка repeat игнорируется; для материала с ложной чересстрочной разметкой её не следует бездумно оставлять включённой.
Разрядность, цвет и прозрачность
Аргумент format определяет представление декодированных пикселей. В AviSynth+ доступны различные варианты YUV, RGB и полутонового вывода, включая высокую разрядность. Например, YUV420P8 и YUV420P10 отличаются глубиной компонента; YUV422 и YUV444 — организацией цветностной информации. Это параметры передачи кадра следующему фильтру, а не команды сохранить файл с определённым расширением.
Принудительный перевод 10-битного материала в 8-битный до цветокоррекции уменьшает доступную точность. Обратная операция не возвращает уже отброшенные градации. Для обработки исходника с повышенной разрядностью важно согласовать её на всём пути: source-плагин, фильтры, программа просмотра и кодировщик должны работать с выбранным представлением, а не только первый участник цепочки.
Поддержка высокоразрядного декодирования не равна автоматическому преобразованию HDR в SDR. Для такого преобразования требуется отдельная работа с передаточной характеристикой и цветом. Простая смена format не является тональным отображением, а наличие картинки в окне просмотра не подтверждает сохранение HDR-метаданных в конечном контейнере.
Прозрачность также зависит от совместной поддержки исходного кодека, декодера, выходного формата и принимающей программы. Для прозрачного WebM в File Reader используются, в частности, декодеры libvpx и libvpx-vp9. Однако принудительный вывод в представление без альфа-канала исключит прозрачность дальше по цепочке. Чёрный фон в предварительном просмотре и реально потерянный альфа-канал следует различать отдельной проверкой на цветной подложке.
В VapourSynth аргумент variable=1 позволяет представить источник с меняющимися размером или форматом кадров. Это полезно для нестандартного потока, но перекладывает соответствующее требование на последующие фильтры. Фильтр, ожидающий постоянные ширину и высоту, не становится совместимым с переменным материалом только потому, что источнику удалось его прочитать.
Режим dr требует контроля геометрии: при включённом прямом выводе декодера и незаданном format размеры выравниваются согласно требованиям декодера. Для задачи с точным исходным разрешением этот параметр не стоит включать как универсальное ускорение.
Аудио: отдельный источник и отдельная временная шкала
Видеочитатель не добавляет звук автоматически. В AviSynth+ отдельные видео- и аудиоисточники объединяются через AudioDub. В актуальной ветке VapourSynth функции LibavSMASHAudioSource и LWLibavAudioSource возвращают самостоятельный аудиоузел, а не дописывают дорожку к уже выведенному видео.
Параметр av_sync у LWLibavAudioSource включает коррекцию временного смещения звука относительно видео. Это работа с временной привязкой контейнера, а не анализ хлопка, речи или формы волны. Он не синхронизирует автоматически две независимые камеры и не исправляет произвольное изменение скорости записи. Постоянный начальный сдвиг и нарастающий рассинхрон необходимо рассматривать отдельно.
У источника LSMASHAudioSource есть skip_priming, предназначенный для пропуска служебных начальных сэмплов, связанных с задержкой кодера. Эта задача отличается от коррекции контейнерного смещения: задержка кодирования и поздний старт дорожки имеют разные причины. Применять ручное смещение вдобавок к уже выполненной компенсации без проверки означает рисковать двойной коррекцией.
В LWLibavAudioSource параметр fill_agaps=1 заполняет разрывы звуковой шкалы цифровой тишиной. Механизм использует временные границы отсутствующих пакетов и сохраняет непрерывность времени. Для записи с потерянным фрагментом звука это полезнее, чем «схлопнуть» разрыв и сдвинуть весь последующий звук, но отсутствующая речь не восстанавливается: вместо неё остаётся тишина соответствующей длительности.
Аргумент rate задаёт выходную частоту дискретизации, а layout — расположение каналов. Изменение rate включает соответствующее преобразование, но не добавляет исходнику новых акустических деталей. Принудительный переход от многоканальной схемы к stereo означает смешивание, а не простое переименование дорожки. Для последующего сведения желательно сохранить разделение каналов до той стадии, на которой действительно требуется стереоверсия.
В работе с многоканальным материалом недостаточно проверить, что звук вообще слышен. Нужно прослушать центральный канал, боковые или задние каналы и убедиться, что выбран именно требуемый поток. Обозначения схем вроде 5.1 и 5.1(side) различаются расположением каналов. Неправильный layout способен дать формально допустимый, но не соответствующий проекту результат.
Аргумент drc_scale управляет сжатием динамического диапазона в соответствующих AC-3/E-AC-3 потоках на этапе декодирования. Это не общий регулятор громкости проекта и не нормализация под вещательный стандарт.
Что программа действительно выдаёт на выходе
Результат основного source-плагина — доступный принимающей среде клип: последовательность декодированных кадров и, при отдельном подключении, аудиосэмплы. Файл .avs или .vpy сохраняет описание этой цепочки, но не содержит внутри исходное видео. Новый MP4, MKV или другой готовый файл появляется только после работы кодировщика и мультиплексора.
Наличие libavcodec внутри плагина не предоставляет меню кодирования AV1, H.265 или ProRes. Конечный формат определяется внешней программой и её сборкой кодировщиков, а не перечнем декодеров источника.
В VapourSynth утилита VSPipe передаёт выбранный выход скрипта следующей программе или в файл; в зависимости от типа вывода доступны заголовки Y4M, WAV и W64. Раздельные выходы видео и звука требуют отдельной организации итогового мультиплексирования.
Классические дополнительные модули AviUtl имеют собственные, более узкие результаты. L-SMASH Works Muxer работает с контейнерами, производными от ISO Base Media и QuickTime, и предусматривает главы и размещение служебных данных для прогрессивной загрузки. L-SMASH Works Dumper выводит текстовую структуру контейнера в .txt либо временные коды формата v2 в .tmc. Эти операции нельзя приравнивать к рендерингу монтажных эффектов или приписывать каждому варианту LSMASHSource.dll.
Для простой смены контейнера без изменения сжатого потока цепочка через декодированные кадры избыточна. Такой материал обрабатывают мультиплексором или режимом копирования потоков отдельного инструмента. Скриптовой источник нужен тогда, когда последующий этап действительно работает с изображением или звуком, а не только переносит готовые пакеты в новую оболочку.
Аппаратное декодирование и производительность
В HomeOfAviSynthPlusEvolution программный декодер выбирается при prefer_hw=0. Другие значения позволяют предпочесть NVIDIA CUVID, Intel Quick Sync, DXVA2, D3D11, D3D12 или Vulkan. Эти пути относятся к декодированию поддерживаемого потока; работа каждого зависит от сборки, оборудования и поддерживаемого профиля кодека. В текущем Windows-выпуске 32-разрядный вариант собран без Vulkan.
Аргумент decoder позволяет перечислить предпочтительные декодеры по именам. Его явное задание имеет приоритет над prefer_hw, поэтому оставленная в скрипте строка выбора декодера объясняет отсутствие ожидаемого эффекта от изменения аппаратного режима. Для диагностики удобнее сравнивать сначала программный путь без принудительного списка, а затем один осмысленно выбранный аппаратный вариант.
Загрузка блока Video Decode не говорит о том, что всё дальнейшее выполняется на видеокарте. Цветовые преобразования, фильтры, копирование кадров и кодирование относятся к другим частям процесса. Аппаратное чтение не включает автоматически NVENC и не гарантирует передачу кадров без дополнительных копирований. Сравнивать следует время всего задания при одинаковом исходнике и выходных настройках.
Параметр threads=0 оставляет выбор числа декодерных потоков автоматике. Максимальное число потоков в каждом источнике не является обязательным условием максимальной общей скорости. При нескольких параллельных заданиях они делят процессор, память и накопитель; увеличение параллелизма способно перенести ограничение на другой ресурс. Для длинной пакетной работы отдельно измеряют создание индекса и основной проход, иначе повторное использование кэша искажает сравнение.
Автоматизация, локальная работа и приватность
Скриптовый интерфейс позволяет сохранять единые параметры импорта и применять их к нескольким исходникам. Перебор файлов, очередь заданий, формирование имён результатов и повтор после ошибки организуются внешним скриптом или оболочкой. У плагина нет собственной панели пакетного конвертера, но его функции подходят для включения в такую систему.
В автоматизации раздельно задают пути исходника, индекса и результата. Одноимённые input.mp4 из разных папок не должны использовать один вручную назначенный cachefile: служебные данные необходимо однозначно связать с конкретным исходником.
Локальный файл декодируется на компьютере. Для этого не требуется загрузка видео на облачный сервер, учётная запись или постоянная проверка подписки. Интернет нужен для получения обновлений и пакетов, но не является обязательной частью чтения уже доступного локального исходника. Мобильного приложения, браузерного кабинета, совместной облачной монтажной доски и ИИ-генератора кадров в рассматриваемых компонентах нет.
Локальность плагина не равна автоматической защищённости всей рабочей папки. Синхронизацию каталога с облаком, доступ к сетевому хранилищу и отправку журналов определяют другие программы и настройки пользователя. В журнале или скрипте остаются имена файлов и пути; перед публикацией сообщения об ошибке следует убрать персональные сведения и закрытые названия проектов.
Сам плагин — исполняемая библиотека, а .avs и .vpy — исполняемые сценарии. Неизвестный скрипт нельзя считать безобидным видеофайлом только из-за привычной задачи обработки изображения. Для чужого проекта разумно сначала просмотреть его текст, загрузки дополнительных модулей и обращения к файлам, а для установки использовать известное ответвление и предназначенный для него архив.
Пример: получить короткий фрагмент через AviSynth+
Сценарий показывает место источника в реальной цепочке: импортировать MP4, подключить звук, оставить первые сто кадров и сохранить новую просмотровую копию. Он рассчитан на Windows и 64-разрядный AviSynth+ с LSMASHSource.dll из HomeOfAviSynthPlusEvolution 1310.0.0.0. Для сохранения нужна отдельная сборка FFmpeg с поддержкой входа AviSynth и кодировщиков libx264 и AAC.
Для примера нужен локальный input.mp4 длительностью не менее четырёх секунд: постоянные 25 кадров/с, H.264 с 8-битным YUV 4:2:0 в SDR и стереозвук AAC. Рецепт не рассчитан на HDR, переменную частоту и несколько аудиодорожек. Папка C:LSW-Example должна существовать и быть доступна для записи.
- Поместите input.mp4 и подходящую 64-разрядную LSMASHSource.dll в C:LSW-Example. Не заменяйте исходное видео результатом будущего экспорта.
- Создайте обычный текстовый файл review.avs в той же папке и сохраните его в UTF-8. Внесите пять строк, приведённых ниже, именно как отдельные строки скрипта.
- Откройте скрипт в совместимой с AviSynth+ программе просмотра. Дождитесь первоначальной индексации и проверьте, что изображение и звук относятся к нужному файлу.
- После проверки передайте review.avs отдельной программе ffmpeg. Она выполнит кодирование и создаст output.mp4; плагин при этом продолжит отвечать только за чтение источника.
LoadPlugin(“C:LSW-ExampleLSMASHSource.dll”)
a = LWLibavAudioSource(“C:LSW-Exampleinput.mp4”, av_sync=true)
v = LWLibavVideoSource(“C:LSW-Exampleinput.mp4”, prefer_hw=0)
AudioDub(v, a)
Trim(0, 99)
Аудио здесь открывается раньше видео. Для чтения обоих потоков одного файла такой порядок избегает повторного сканирования и перезаписи информации о видео в индексе. AudioDub — функция AviSynth+, которая объединяет видео v и звук a; Trim также принадлежит движку, а не L-SMASH Works. Диапазон 0–99 включает сто кадров, то есть четыре секунды видеоряда при заданных 25 кадрах/с.
Команда сохранения из командной строки Windows выглядит так:
ffmpeg -i “C:LSW-Examplereview.avs” -map 0:v:0 -map 0:a:0 -c:v libx264 -crf 18 -preset medium -pix_fmt yuv420p -c:a aac -b:a 192k “C:LSW-Exampleoutput.mp4”
Команда выбирает по одному потоку видео и аудио; формат пикселей соответствует условиям примера. Получается новая просмотровая копия с потерями, не архивный оригинал. CRF и аудиобитрейт изменяются на стороне FFmpeg, а не source-плагина.
Списки ffmpeg -demuxers и ffmpeg -encoders позволяют проверить наличие входа avisynth и нужных кодировщиков в используемой сборке. Отсутствие этого входа не исправляется сменой параметров LWLibavVideoSource. Так же и ошибка о неизвестном libx264 относится к кодировщику, а не к чтению H.264 из исходника.
Видеоряд результата должен содержать сто кадров с частотой 25 кадров/с. Проверяют и границы звука, а не только округлённую длительность контейнера: кодирование аудио связано с собственными задержками и заполнением пакетов.
Частые проблемы и их диагностика
Поиск причины полезно начинать с этапа, на котором возникает сбой: загрузка библиотеки, выполнение скрипта, чтение контейнера, декодирование, фильтрация или сохранение. Замена всех компонентов одновременно лишает такой диагностики смысла. Минимальный проект с одним источником позволяет отделить ошибку чтения от поведения последующих фильтров.
| Симптом | Что проверить |
|---|---|
| Модуль отсутствует в принимающей программе | Папку установки, архитектуру процесса, поколение API и соответствие .aui/.aui2/DLL выбранной среде |
| Функция или аргумент не найдены | Фактически загруженную версию, имя функции для AviSynth или VapourSynth, отсутствие старой копии в автозагрузке |
| Не открывается путь с кириллицей | Сохранение .avs в UTF-8, точное написание пути и наличие файла по этому адресу |
| Первое открытие очень долгое | Идёт ли индексация, есть ли доступ к накопителю и право записи индекса; сравнивать отдельно первый и повторный проходы |
| После перемотки повторяется кадр | Режим поиска, сообщения декодера и связанный индекс; сравнить последовательное чтение с переходом к тому же месту |
| Звук выбран неправильно | Список потоков и явный stream_index, а не только количество дорожек в проигрывателе |
| Изменение настроек File Reader ничего не даёт | Какой входной модуль действительно открыл файл, и выполнен ли требуемый перезапуск редактора |
| Предпросмотр работает, сохранение — нет | Выходной формат кадров, параметры кодировщика, выбранные потоки, права записи и свободное место в папке результата |
Приоритет входных модулей и перезапуск
В классическом AviUtl несколько читателей претендуют на один тип файла. Настройки L-SMASH Works не меняют работу другого модуля, получившего файл раньше. Проверяют список приоритетов и фактический способ открытия; порядок зависит от установленных читателей и требуемого маршрута ввода.

После изменения настроек File Reader встречается сообщение о необходимости заново запустить AviUtl. Следует сохранить работу и перезапустить редактор, а не лишь закрыть диалог: до этого сравнение не подтверждает, что новый параметр применён.

Синхронизация, изображение и журнал
Постоянный сдвиг звука проверяют по начальным смещениям дорожек и уже применённой компенсации. Нарастающее расхождение требует проверки частоты кадров, временных меток, пропусков и разрывов звука. Случайное добавление фиксированной задержки способно выровнять один момент, но не устраняет изменение расхождения к концу записи.
Для чёрного изображения после изменения Preferred decoders сначала убирают случайно перенесённые принудительные имена декодеров и возвращают понятную базовую конфигурацию. Изменения проверяют на одном файле без остальных фильтров.
В скриптовой ветке ff_loglevel управляет подробностью сообщений FFmpeg внутри плагина. Это собственная шкала аргумента: 3 соответствует ошибкам, 4 — предупреждениям, 7 — отладочному выводу. Не следует подставлять сюда числовые уровни из другого интерфейса FFmpeg. В ветке Mr-Ojii для ExEdit2 с r1265 сообщения об ошибках выводятся в журнал принимающей программы, поэтому отсутствие всплывающего окна не означает отсутствие ошибки.
Как проверить результат, а не только успешный запуск
Первый показанный кадр подтверждает лишь начало чтения. Для значимого проекта проверяют начало, середину и конец, несколько переходов назад и вперёд, а также последовательный проход через проблемный участок. После обновления библиотеки полезно сравнивать один и тот же исходник без изменения фильтров и настроек кодирования.
У готового файла проверяют число и типы потоков, разрешение, частоту кадров, длительности видео и аудио, формат пикселей и число звуковых каналов. Для этого подходит, например, команда ffprobe -v error -show_streams -show_format “C:LSW-Exampleoutput.mp4”. Эти сведения описывают структуру результата, но не заменяют просмотр движения, оценку цвета и прослушивание синхронных событий.
Плюсы и минусы
Плюсы ✔️
- Два механизма чтения контейнеров позволяют выбирать между специализированным путём L-SMASH и более широким охватом libavformat.
- Сохранение индекса избавляет повторные открытия от полного разбора того же источника.
- Потоки, временная привязка, формат пикселей и параметры декодирования задаются явно и сохраняются в проекте.
- Источники видео и аудио включаются в автоматизированные цепочки AviSynth+ и VapourSynth; у актуальной ветки есть оба типа источников для обеих сред.
- Локальная обработка не требует подписки и загрузки съёмок в облачный сервис.
Минусы ❌
- Для законченного результата необходимы принимающий движок и инструменты просмотра или кодирования; отдельного универсального приложения нет.
- Ответвления, поколения AviUtl и архитектуры библиотек требуют внимательного выбора совместимого комплекта.
- Первичная индексация занимает время и создаёт дополнительные служебные данные на диске.
- Режимы обработки ошибок способны скрыть сбой возвратом прежнего кадра, поэтому одного сообщения об успешном завершении недостаточно.
- Сохранение цвета, разрядности, альфа-канала и временной структуры зависит от последующих участников цепочки, а не только от успешного импорта.
Кому подойдёт
Программа подойдёт пользователям AviSynth+ и VapourSynth, которым нужен управляемый источник для фильтрации, подготовки кадров и повторяемой обработки. Явно выбранный поток и способ чтения сохраняются в проекте для следующего прохода.
File Reader пригодится пользователям AviUtl, которые расширяют возможности ввода и готовы различать классический редактор и ExEdit2. Здесь важны совместимая установка, приоритет модулей и базовые настройки без случайных параметров старого архива.
Кому не подойдёт
Инструмент не подходит для задачи «открыть ролик, визуально обрезать и сразу получить MP4» без настройки программной цепочки. Он также не заменяет ретушь фотографий, автоматическое улучшение изображения или совместный облачный монтаж.
Не стоит строить обработку через декодированные кадры ради одной смены контейнера. Для такого задания разумнее инструмент копирования потоков. Отдельная альтернатива нужна и там, где конкретный материал продолжает давать ошибки чтения после проверки сборки, индекса и временных параметров.
Альтернативы для разных задач
FFMS2 — другой источник для тех же скриптовых сред
FFMS2 предоставляет библиотеку на основе FFmpeg и плагины для AviSynth и VapourSynth. Это наиболее близкий по роли вариант: он также нужен для декодирования и доступа к кадрам, а не вместо монтажного редактора. Его имеет смысл сравнивать с LWLibav на одном проблемном файле при одинаковых требованиях к временной шкале.
При переходе меняются функции источника, аргументы и служебные данные. Поскольку используется то же семейство библиотек FFmpeg, смена плагина не гарантирует исправления любого дефекта контейнера.
BestSource — источник с отдельными средствами выбора дорожек
BestSource работает как библиотека и как плагин AviSynth+/VapourSynth. Помимо источников изображения и звука, интерфейс VapourSynth предусматривает TrackInfo и Metadata для сведений о потоках и метаданных. Это полезно в автоматизации, где правило выбора дорожки строится по её характеристикам, а не фиксируется одним заранее известным номером.
У него также есть ограничения: навигация по MPEG/TS/VOB и некоторым форматам звука с потерями бывает медленной. Это альтернатива организации доступа, но не основание обещать одинаковую скорость на всех исходниках.
FFmpeg — когда нужен готовый файл без скриптового источника
Консольный FFmpeg самостоятельно читает, фильтрует, кодирует и собирает медиафайлы. Для смены контейнера, копирования выбранных потоков или преобразований, уже доступных его фильтрам, отдельный скриптовой источник не обязателен. Взамен пользователь работает с параметрами командной строки FFmpeg, а не с фильтрами AviSynth или VapourSynth.
Shutter Encoder — графический путь для конвертации
Shutter Encoder использует FFmpeg, но предоставляет окно выбора файлов, параметры кодирования, предварительный просмотр обрезки и очередь обработки. Он уместнее для пользователя, которому нужен самостоятельный инструмент подготовки просмотровых копий или перекодирования. Это не сменный source-плагин внутри прежнего скрипта, а переход к другой организации всей задачи.
FAQ
Сохранит ли скриптовая обработка все субтитры, вложения и главы исходного MKV?
Нет автоматического переноса всего контейнера через функции источника видео и аудио. Они передают выбранное изображение и звук, а не полную структуру исходного MKV. Сохранение дополнительных дорожек, вложений и глав организуют отдельно на этапе подготовки выходного контейнера. Для архивирования всего оригинала одного скрипта недостаточно.
Почему короткий Trim не делает первоначальную индексацию такой же короткой?
Сначала создаётся источник с необходимыми данными для доступа к кадрам, затем применяется ограничение выходного диапазона. Trim выбирает отдаваемую часть клипа, но не превращает предварительный разбор исходного контейнера в чтение только этих нескольких секунд. Это особенно заметно при первом обращении к длинной записи без готового индекса.
Можно ли читать только звук без создания видеоклипа?
Да: для этого предназначены самостоятельные аудиоисточники и принимающая среда, поддерживающая такой выход. В AviSynth+ объединение через AudioDub нужно при совмещении с видео, а не для самого декодирования звука. В VapourSynth аудио назначают отдельным выходом. Поведение старого Dummy reader классического AviUtl не является общим требованием всех версий плагина.
Можно ли считать совпадение двух способов чтения независимой проверкой декодера?
Не полностью. Пути L-SMASH и LWLibav различаются разбором контейнера, но используют libavcodec для декодирования. Их сопоставление помогает локализовать проблему временных меток или демультиплексирования, однако не создаёт два полностью независимых декодера. Для ответственного материала проверяют также результат внешним проигрывателем и сопоставляют ожидаемую структуру и длительность.
Что передать другому участнику проекта для воспроизводимой обработки?
Для передачи проекта нужны исходные файлы, скрипт, точное обозначение ветки и версии библиотеки, перечень фильтров и параметры внешнего кодирования. Пути должны соответствовать папкам другого компьютера. Одна DLL не описывает монтаж, а один индекс — зависимости всей обработки.
Итог: выбирать по месту в рабочей цепочке
Для существующего проекта AviSynth+ или VapourSynth L-SMASH Works полезен как настраиваемый источник: выбор определяется корректностью чтения, временной привязкой и совместимостью выходных кадров с фильтрами. Для регулярной обработки важнее зафиксированная сборка и понятное размещение индексов, чем постоянная смена параметров в поиске абстрактного ускорения.
В AviUtl решающим становится соответствие File Reader поколению редактора; перенос старого комплекта в ExEdit2 не является обычным обновлением файла. А для разовой конвертации без скриптов разумнее готовый графический инструмент. Сильная сторона этого проекта раскрывается там, где нужен контроль над импортом, а не замена всего процесса монтажа одним плагином.








