X264 VFW — кодировщик H.264 для Windows¶
X264 VFW — это программный модуль (драйвер) видеокодирования, основанный на свободном кодировщике x264 и реализующий интерфейс VFW (Video for Windows). Он позволяет приложениям под управлением Windows, использующим устаревший API Video for Windows, кодировать видео в формат H.264/MPEG-4 AVC. Модуль распространяется бесплатно и является одним из наиболее распространённых способов получить доступ к кодировщику x264 в программах, не поддерживающих более новые интерфейсы DirectShow или VapourSynth.
¶Контекст: что такое VFW
Video for Windows (VFW) — это мультимедийный интерфейс программирования, представленный Microsoft в 1992 году в составе Windows 3.1. Он предназначен для захвата, редактирования и воспроизведения видеофайлов. VFW базируется на технологии AVI (Audio Video Interleave) и предоставляет набор функций для работы с видеопотоками.
К началу 2000-х годов VFW считался устаревшей технологией: ему на смену пришёл DirectShow, а затем Media Foundation. Тем не менее множество приложений — в первую очередь утилиты для нарезки DVD (например, VirtualDub и его форк AviSynth), программы видеозахвата и старые редакторы — продолжали использовать VFW-интерфейс для подключения внешних кодировщиков (codec wrappers). Для поддержки современных кодеков в таких программах требовался компонент-посредник, преобразующий вызовы VFW в вызовы актуального кодировщика. Именно такой посредник и представляет собой X264 VFW.
¶Кодировщик x264
В основе модуля лежит x264 — свободная библиотека для кодирования видео в формат H.264/MPEG-4 AVC, написанная на языке C. Проект создан в 2004 году французским разработчиком Лораном Меньяром (Laurent Aimar) и в дальнейшем развивался сообществом. x264 поддерживает широкий набор возможностей стандарта H.264: разные профили и уровни, B-кадры, справочные кадры, адаптивное распределение битрейта, several алгоритмы определения движения, работу с несколькими ссылками и др.
x264 считается одним из наиболее эффективных программных кодировщиков H.264 и широко используется в индустрии: в серверных системах транскодирования, стриминговых платформах, инструментах кодирования с открытым исходным кодом (например, FFmpeg, HandBrake). Проект лицензирован по GPL, что позволяет свободно использовать и модифицировать его исходный код, в том числе для создания обёрток вроде X264 VFW.
¶Назначение и принцип работы
X264 VFW выполняет роль «моста» между приложением, использующим устаревший интерфейс Video for Windows, и библиотекой x264. При установке модуль регистрируется в системе как VFW-драйвер (codec) и появляется в списке доступных кодеков в программах, работающих через VFW.
Принцип работы выглядит следующим образом:
- Пользователь в программе (например, VirtualDub) выбирает в списке кодеков X264 VFW.
- Приложение передаёт модулю несжатые видеокадры (обычно в формате YUV) через интерфейс VFW.
- Модуль преобразует данные в формат, понятный библиотеке x264, и запускает кодирование.
- Полученный H.264-поток возвращается в приложение и записывается в контейнер AVI (реже — в другие контейнеры).
Таким образом, старые программы, изначально не знавшие о существовании H.264, получают возможность создавать файлы с современным видеокодеком.
¶Настройки и возможности
Через диалог настроек X264 VFW пользователь может задавать параметры кодирования: целевой битрейт или уровень сжатия (CRF), количество B-кадров, тип анализа движения, размер GOP, использование CABAC, работу с несколькими ссылочными кадрами и другие опции, доступные в ядре x264. Часть параметров доступна в виде предустановленных профилей.
Стоит отметить, что VFW-интерфейс накладывает ограничения: он не поддерживает некоторые возможности, доступные при работе через DirectShow или FFmpeg, например корректную обработку изменяющейся разрешающей способности или сложных структур GOP. Для полного доступа к функциональности x264 рекомендуется использовать более новые интерфейсы интеграции.
¶Применение
Основная область применения X264 VFW — локальное кодирование видеофайлов в AVI-контейнер с кодеком H.264 в программах, поддерживающих только VFW. Типовые сценарии:
- нарезка и перекодирование DVD-дисков с помощью VirtualDub;
- обработка видео в AviSynth-скриптах через VirtualDub;
- запись видеопотока с видеозахватывающих устройств в сжатом виде;
- создание файлов AVI с H.264 для старых плееров и редакторов.
В 2010-е годы популярность X264 VFW постепенно снизилась: на смену VFW-обёрткам пришли DirectShow-фильтры (например, LAV Filters), интеграция с FFmpeg и графические утилиты вроде HandBrake, которые работают с x264 напрямую. Тем не менее модуль продолжает использоваться в нишевых сценариях и в среде энтузиастов, работающих со старым программным обеспечением.
¶Связанные проекты
Помимо X264 VFW, существуют аналогичные VFW-обёртки для других кодеков — например, XviD VFW (обёртка над кодеком XviD, MPEG-4 ASP) и X265 VFW (обёртка над кодировщиком H.265/HEVC). Последняя позволяет записывать видео в формате HEVC в AVI-контейнер через старые программы, хотя совместимость такого сочетания ограничена.
