# DASH Video Converter 🎬 CLI инструмент для конвертации видео в форматы DASH и HLS с поддержкой GPU ускорения (NVENC), адаптивным стримингом и автоматической генерацией превью. **Возможности:** ⚡ NVENC ускорение • 🎯 DASH + HLS форматы • 📊 Множественные битрейты • 🖼️ Thumbnail спрайты • 📸 Генерация постера • ⏱️ Прогресс в реальном времени ## Быстрый старт ```bash # Использование через npx (без установки) npx @grom13/dvc-cli video.mp4 # Или глобальная установка npm install -g @grom13/dvc-cli dvc-cli video.mp4 ``` **Системные требования:** ```bash # 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 ```bash dvc-cli [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`, `dual` | `-c dual` (по умолчанию) | | `-f, --format` | Формат стриминга | `dash`, `hls`, `both` | `-f both` (по умолчанию) | | `-p, --poster` | Таймкод для постера | `HH:MM:SS` или секунды | `-p 00:00:05` или `-p 10` | ### Примеры использования ```bash # Базовая конвертация (DASH + HLS, dual codec, автопрофили) dvc-cli video.mp4 # Указать выходную директорию dvc-cli video.mp4 ./output # Только выбранные разрешения dvc-cli video.mp4 -r 720,1080,1440 # Высокий FPS для игровых стримов dvc-cli video.mp4 -r 720@60,1080@60 # Только DASH формат dvc-cli video.mp4 -f dash # Только HLS для Safari/iOS dvc-cli video.mp4 -f hls -c h264 # Постер с 5-й секунды dvc-cli video.mp4 -p 5 # Комбинация параметров dvc-cli video.mp4 ./output -r 720,1080@60,1440@60 -c dual -f both -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 сек) - **Постер:** извлекается с 1-й секунды видео (можно изменить через `-p`) - **Параллельное кодирование:** включено **Требования:** Node.js ≥18.0.0, FFmpeg, MP4Box (gpac), опционально NVIDIA GPU для ускорения