Files
create-vod/README_RU.md
2026-01-22 11:44:00 +03:00

6.3 KiB
Raw Permalink Blame History

Create VOD 🎬

🇺🇸 English README: https://gromlab.ru/vod/create-vod/src/branch/master/README.md

CLI инструмент для конвертации видео в форматы DASH и HLS с поддержкой аппаратного ускорения (NVENC / Intel QSV / AMD AMF / VAAPI), адаптивным стримингом и автоматической генерацией превью.

Возможности:

  • Аппаратное ускорение: NVENC / Intel QSV / AMD AMF / VAAPI (автовыбор по приоритету)
  • 🎯 Форматы: DASH и HLS (оба из одних сегментов)
  • 📊 Профили качества: множественные битрейты и FPS, авто или кастом
  • 🖼️ Превью: thumbnail спрайты + VTT, постер с первого кадра
  • ⏱️ Прогресс: CLI прогресс-бары по профилям и общему этапу

Install

Для корректной работы CLI требуется установленые в системе FFmpeg и MP4Box.

# Arch Linux
sudo pacman -S ffmpeg gpac

# Ubuntu/Debian
sudo apt install ffmpeg gpac

# macOS
brew install ffmpeg gpac

Быстрый старт

Перед запуском убедитесь, что в системе установлены FFmpeg и MP4Box (см. Install).

npx @gromlab/create-vod video.mp4

Результат: В текущей директории появится структура выходных файлов:

video/
├── manifest.mpd       # DASH манифест
├── master.m3u8        # HLS мастер-плейлист
├── poster.jpg         # Постер с указанного таймкода
├── thumbnails.jpg     # Спрайт превью
├── thumbnails.vtt     # Таймкоды превью
├── audio/             # Аудиосегменты (init + m4s)
├── 1080p/             # Сегменты H.264 1080p
├── 720p/              # Сегменты H.264 720p
├── 480p/              # Сегменты H.264 480p
├── 360p/              # Сегменты H.264 360p
├── 1080p-av1/         # Сегменты AV1 1080p (если выбран av1)
└── ...                # Остальные профили/кодеки по схеме {profile}-{codec}

Параметры CLI

create-vod <input-video> [output-dir] [-r resolutions] [-c codec] [-p poster-timecode] [-e encoder] [-d decoder] [-m]

Основные параметры

Параметр Описание По умолчанию Обязательный
input-video Путь к входному видео файлу -
output-dir Директория для выходных файлов . (текущая папка)

Опциональные ключи

Ключ Описание Значения / формат По умолчанию Пример
-r, --resolutions Выбор профилей качества 360, 720@60, 1080-60 авто -r 720,1080,1440@60
-c, --codec Видео кодек(и) h264, av1 (через пробел или запятую) h264 -c h264,av1
-p, --poster Таймкод для постера HH:MM:SS или секунды 00:00:00 -p 00:00:05 или -p 10
-e, --encoder Видео энкодер auto, nvenc, qsv, amf, vaapi, videotoolbox, v4l2, cpu auto -e nvenc
-d, --decoder Видео декодер (hwaccel) auto, nvenc, qsv, vaapi, videotoolbox, v4l2, cpu auto -d cpu
-m, --muted Отключить аудио дорожку в выходных файлах flag off -m

Примеры использования

# Базовая конвертация (DASH + HLS, авто кодек, автопрофили)
npx @gromlab/create-vod video.mp4

# Указать выходную директорию
npx @gromlab/create-vod video.mp4 ./output

# Только выбранные разрешения
npx @gromlab/create-vod video.mp4 -r 720,1080,1440

# Высокий FPS для игровых стримов
npx @gromlab/create-vod video.mp4 -r 720@60,1080@60

# Постер с 5-й секунды
npx @gromlab/create-vod video.mp4 -p 5

# Комбинация параметров
npx @gromlab/create-vod video.mp4 ./output -r 720,1080@60,1440@60 -p 00:00:10

# Без звука
npx @gromlab/create-vod video.mp4 -m

Поддерживаемые разрешения

Разрешение Стандартное название FPS варианты
360 360p (640×360) 30, 60, 90, 120
480 480p (854×480) 30, 60, 90, 120
720 720p HD (1280×720) 30, 60, 90, 120
1080 1080p Full HD (1920×1080) 30, 60, 90, 120
1440 1440p 2K (2560×1440) 30, 60, 90, 120
2160 2160p 4K (3840×2160) 30, 60, 90, 120

Примечание: Высокие FPS (60/90/120) создаются автоматически только если исходное видео поддерживает соответствующий FPS.

Автоматические настройки

  • Длительность сегментов: 2 секунды
  • NVENC: автоопределение (GPU если доступен, иначе CPU)
  • Профили качества: автоматический выбор на основе разрешения исходного видео
  • Битрейт: динамический расчет по формуле BPP (Bits Per Pixel)
  • Превью спрайты: генерируются автоматически (160×90px, интервал 1 сек)
  • Постер: извлекается с начала видео (кадр 0:00:00, можно изменить через -p)
  • Параллельное кодирование: включено

Требования: Node.js ≥18.0.0, FFmpeg, MP4Box (gpac), опционально NVIDIA GPU для ускорения