5.5 KiB
5.5 KiB
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 прогресс-бары по профилям и общему этапу
Быстрый старт
# Использование через npx (без установки)
npx @gromlab/create-vod video.mp4
# Или глобальная установка
npm install -g @gromlab/create-vod
create-vod video.mp4
Системные требования:
# Arch Linux
sudo pacman -S ffmpeg gpac
# Ubuntu/Debian
sudo apt install ffmpeg gpac
# macOS
brew install ffmpeg gpac
Результат: В текущей директории будет создана папка video/ с сегментами в папках {profile}-{codec}/, манифестами DASH и HLS в корне, постером и превью спрайтами.
Параметры CLI
create-vod <input-video> [output-dir] [-r resolutions] [-c codec] [-f format] [-p poster-timecode]
Основные параметры
| Параметр | Описание | По умолчанию | Обязательный |
|---|---|---|---|
input-video |
Путь к входному видео файлу | - | ✅ |
output-dir |
Директория для выходных файлов | . (текущая папка) |
❌ |
Опциональные ключи
| Ключ | Описание | Значения / формат | По умолчанию | Пример |
|---|---|---|---|---|
-r, --resolutions |
Выбор профилей качества | 360, 720@60, 1080-60 |
авто | -r 720,1080,1440@60 |
-c, --codec |
Видео кодек | h264, av1 |
авто (h264 + AV1 при наличии HW) | -c h264 |
-f, --format |
Формат стриминга | dash, hls |
авто (dash + hls) | -f dash |
-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 |
Примеры использования
# Базовая конвертация (DASH + HLS, авто кодек, автопрофили)
create-vod video.mp4
# Указать выходную директорию
create-vod video.mp4 ./output
# Только выбранные разрешения
create-vod video.mp4 -r 720,1080,1440
# Высокий FPS для игровых стримов
create-vod video.mp4 -r 720@60,1080@60
# Только DASH формат
create-vod video.mp4 -f dash
# Только HLS для Safari/iOS
create-vod video.mp4 -f hls -c h264
# Постер с 5-й секунды
create-vod video.mp4 -p 5
# Комбинация параметров
create-vod video.mp4 ./output -r 720,1080@60,1440@60 -p 00:00:10
Поддерживаемые разрешения
| Разрешение | Стандартное название | 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 для ускорения