2026-08-09 11:09:24 +03:00
2026-08-09 11:07:22 +03:00
2026-08-09 11:07:22 +03:00
2026-08-09 11:07:22 +03:00
2026-08-09 11:07:22 +03:00
2026-08-09 11:07:22 +03:00
2026-08-09 11:09:24 +03:00

Express Video Encoder

BAT-скрипт для Windows для подготовки видео к отправке через мессенджер Express. Скрипт перекодирует видео в AV1 с помощью FFmpeg / SVT-AV1 и автоматически подбирает видеобитрейт под заданный размер файла.

По умолчанию скрипт старается получить итоговый MP4 размером около 39,5 МБ.

Возможности

  • кодирование видео в AV1 через libsvtav1;
  • двухпроходное кодирование;
  • автоматический расчет видеобитрейта по длительности ролика;
  • целевой размер файла около 39,5 МБ;
  • выбор разрешения;
  • выбор частоты кадров;
  • 10-битный формат yuv420p10le;
  • AAC-аудио 128 кбит/с, стерео;
  • чтение характеристик исходника через FFprobe;
  • сохранение пропорций исходного изображения;
  • удобный запуск перетаскиванием видео на BAT-файл.

Требования

Необходима Windows с PowerShell и FFmpeg, содержащим:

  • ffmpeg.exe;
  • ffprobe.exe;
  • кодировщик libsvtav1.

Скачать FFmpeg для Windows

Готовую полную сборку FFmpeg для Windows можно скачать здесь:

Скачать FFmpeg (.zip)

После распаковки архива найдите в папке bin файлы:

ffmpeg.exe
ffprobe.exe

Их можно скопировать в папку:

express-video-encoder/ffmpeg/

Скрипт ищет FFmpeg в следующем порядке:

  1. В локальной папке ffmpeg внутри репозитория.
  2. В системной переменной PATH.

Для автономного варианта положите файлы сюда:

express-video-encoder/ffmpeg/ffmpeg.exe
express-video-encoder/ffmpeg/ffprobe.exe

Если этих файлов нет, скрипт попробует использовать установленный в системе FFmpeg.

Проверка SVT-AV1

Откройте PowerShell или CMD и выполните:

ffmpeg -encoders | findstr svtav1

В списке должен присутствовать libsvtav1.

Пути к файлам

Скрипт поддерживает пути, содержащие пробелы и русские символы. Видео можно хранить, например, в папках вида:

E:\Моя библиотека\Видео\

Совместимость с путями

Для чтения параметров видео скрипт использует временные файлы, поэтому корректно обрабатывает исходные файлы, расположенные в каталогах с пробелами и русскими символами.

Использование

  1. Скачайте или клонируйте репозиторий.
  2. Положите ffmpeg.exe и ffprobe.exe в папку ffmpeg.
  3. Убедитесь, что используемая сборка FFmpeg поддерживает SVT-AV1.
  4. Перетащите нужный видеофайл мышью на encode-for-express.bat.
  5. Проверьте информацию об исходном видео.
  6. Выберите выходное разрешение.
  7. Выберите частоту кадров.
  8. Подтвердите запуск кодирования.
  9. Дождитесь завершения двух проходов.

Готовый MP4 сохраняется в папку output внутри проекта:

express-video-encoder/output/

Папка создаётся автоматически при первом запуске, если её ещё нет.

Пример имени:

2026-08-09_09-45-12_Express_1920x1080_24fps.mp4

Доступные разрешения

  • 1920×1080 — Full HD;
  • 1600×900;
  • 1536×864;
  • 1280×720 — HD;
  • произвольная ширина и высота.

При масштабировании пропорции исходного видео сохраняются. Если соотношение сторон отличается от выбранного, недостающее пространство заполняется полями.

Частота кадров

Можно выбрать:

  • 24 FPS;
  • 30 FPS;
  • исходную частоту кадров;
  • произвольное значение.

Параметры кодирования

По умолчанию:

Параметр Значение
Видеокодек AV1 / SVT-AV1
Контейнер MP4
Pixel format yuv420p10le
Целевой размер ~39,5 МБ
Аудиокодек AAC
Аудиобитрейт 128 кбит/с
Аудиоканалы 2 (стерео)
Первый проход preset 8
Второй проход preset 3

Основные настройки находятся в начале encode-for-express.bat:

set "TARGET_BYTES=39500000"
set "TARGET_MB=39.5"
set "AUDIO_KBPS=128"
set "OVERHEAD_KBPS=20"
set "FIRST_PASS_PRESET=8"
set "SECOND_PASS_PRESET=3"

Как рассчитывается размер

Скрипт получает длительность видео через FFprobe и рассчитывает доступный видеобитрейт с учетом:

  • целевого размера файла;
  • длительности ролика;
  • аудиобитрейта;
  • небольшого запаса на контейнер MP4.

Итоговый размер может немного отличаться от 39,5 МБ.

Если рассчитанный видеобитрейт оказывается ниже 300 кбит/с, кодирование не запускается. В таком случае рекомендуется выбрать меньшее разрешение либо увеличить целевой размер.

Двухпроходное кодирование

Первый проход анализирует видео и создает служебную статистику.

Второй проход выполняет итоговое кодирование AV1 с использованием рассчитанного битрейта. Временные файлы статистики удаляются после завершения.

Примечания

AV1 обеспечивает высокую эффективность сжатия, но кодирование может занимать значительно больше времени, чем H.264 или H.265.

Скорость особенно зависит от разрешения видео, длительности ролика, процессора и значения preset.

Лицензия

Проект распространяется по лицензии MIT. См. файл LICENSE.

S
Description
BAT-скрипт для Windows для подготовки видео к отправке через мессенджер Express.
Readme MIT
36 KiB
Languages
Batchfile 100%