chore: обновить метаданные пакета и документацию
This commit is contained in:
112
README.md
112
README.md
@@ -1,26 +1,28 @@
|
||||
# DASH Video Converter 🎬
|
||||
# Create VOD 🎬
|
||||
|
||||
CLI инструмент для конвертации видео в форматы DASH и HLS с поддержкой аппаратного ускорения (NVENC / Intel QSV / AMD AMF / VAAPI), адаптивным стримингом и автоматической генерацией превью.
|
||||
🇷🇺 Russian README: https://gromlab.ru/vod/create-vod/src/branch/master/README_RU.md
|
||||
|
||||
**Возможности:**
|
||||
- ⚡ Аппаратное ускорение: NVENC / Intel QSV / AMD AMF / VAAPI (автовыбор по приоритету)
|
||||
- 🎯 Форматы: DASH и HLS (оба из одних сегментов)
|
||||
- 📊 Профили качества: множественные битрейты и FPS, авто или кастом
|
||||
- 🖼️ Превью: thumbnail спрайты + VTT, постер с первого кадра
|
||||
- ⏱️ Прогресс: CLI прогресс-бары по профилям и общему этапу
|
||||
CLI tool to convert videos to DASH and HLS with hardware acceleration (NVENC / Intel QSV / AMD AMF / VAAPI), adaptive streaming, and automatic thumbnails/poster.
|
||||
|
||||
## Быстрый старт
|
||||
**Features:**
|
||||
- ⚡ Hardware acceleration: NVENC / Intel QSV / AMD AMF / VAAPI (auto priority)
|
||||
- 🎯 Formats: DASH and HLS (shared segments)
|
||||
- 📊 Quality profiles: multiple bitrates/FPS (auto or custom)
|
||||
- 🖼️ Preview: thumbnail sprite + VTT, poster from the first frame
|
||||
- ⏱️ Progress: per-profile and overall CLI progress bars
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Использование через npx (без установки)
|
||||
# Run via npx (no install)
|
||||
npx @gromlab/create-vod video.mp4
|
||||
|
||||
# Или глобальная установка
|
||||
# Or install globally
|
||||
npm install -g @gromlab/create-vod
|
||||
create-vod video.mp4
|
||||
```
|
||||
|
||||
**Системные требования:**
|
||||
**System requirements:**
|
||||
```bash
|
||||
# Arch Linux
|
||||
sudo pacman -S ffmpeg gpac
|
||||
@@ -32,80 +34,80 @@ sudo apt install ffmpeg gpac
|
||||
brew install ffmpeg gpac
|
||||
```
|
||||
|
||||
**Результат:** В текущей директории будет создана папка `video/` с сегментами в папках `{profile}-{codec}/`, манифестами DASH и HLS в корне, постером и превью спрайтами.
|
||||
**Output:** A folder `video/` in the current directory with segments under `{profile}-{codec}/`, DASH/HLS manifests in the root, poster, and thumbnail sprite/VTT.
|
||||
|
||||
## Параметры CLI
|
||||
## CLI Usage
|
||||
|
||||
```bash
|
||||
create-vod <input-video> [output-dir] [-r resolutions] [-c codec] [-f format] [-p poster-timecode]
|
||||
```
|
||||
|
||||
### Основные параметры
|
||||
### Main arguments
|
||||
|
||||
| Параметр | Описание | По умолчанию | Обязательный |
|
||||
|----------|----------|--------------|--------------|
|
||||
| `input-video` | Путь к входному видео файлу | - | ✅ |
|
||||
| `output-dir` | Директория для выходных файлов | `.` (текущая папка) | ❌ |
|
||||
| Argument | Description | Default | Required |
|
||||
|---------------|------------------------------|---------|----------|
|
||||
| `input-video` | Path to input video file | - | ✅ |
|
||||
| `output-dir` | Output directory | `.` | ❌ |
|
||||
|
||||
### Опциональные ключи
|
||||
### Options
|
||||
|
||||
| Ключ | Описание | Формат | Пример |
|
||||
|------|----------|--------|--------|
|
||||
| `-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` |
|
||||
| `--accel` | Аппаратный ускоритель | `auto`, `nvenc`, `qsv`, `amf`, `cpu` | `--accel nvenc` |
|
||||
| Option | Description | Format | Example |
|
||||
|--------|----------------------------|----------------------------|---------------------------------|
|
||||
| `-r, --resolutions` | Quality profiles | `360`, `720@60`, `1080-60` | `-r 720,1080,1440@60` |
|
||||
| `-c, --codec` | Video codec | `h264`, `av1`, `dual` | `-c dual` (default) |
|
||||
| `-f, --format` | Streaming format | `dash`, `hls`, `both` | `-f both` (default) |
|
||||
| `-p, --poster` | Poster timecode | `HH:MM:SS` or seconds | `-p 00:00:05` or `-p 10` |
|
||||
| `--accel` | Hardware accelerator | `auto`, `nvenc`, `qsv`, `amf`, `cpu` | `--accel nvenc` |
|
||||
|
||||
### Примеры использования
|
||||
### Examples
|
||||
|
||||
```bash
|
||||
# Базовая конвертация (DASH + HLS, dual codec, автопрофили)
|
||||
# Default (DASH + HLS, dual codec, auto profiles)
|
||||
create-vod video.mp4
|
||||
|
||||
# Указать выходную директорию
|
||||
# Custom output directory
|
||||
create-vod video.mp4 ./output
|
||||
|
||||
# Только выбранные разрешения
|
||||
# Selected resolutions
|
||||
create-vod video.mp4 -r 720,1080,1440
|
||||
|
||||
# Высокий FPS для игровых стримов
|
||||
# High FPS
|
||||
create-vod video.mp4 -r 720@60,1080@60
|
||||
|
||||
# Только DASH формат
|
||||
# DASH only
|
||||
create-vod video.mp4 -f dash
|
||||
|
||||
# Только HLS для Safari/iOS
|
||||
# HLS only (Safari/iOS)
|
||||
create-vod video.mp4 -f hls -c h264
|
||||
|
||||
# Постер с 5-й секунды
|
||||
# Poster from 5th second
|
||||
create-vod video.mp4 -p 5
|
||||
|
||||
# Комбинация параметров
|
||||
# Combined parameters
|
||||
create-vod video.mp4 ./output -r 720,1080@60,1440@60 -c dual -f both -p 00:00:10
|
||||
```
|
||||
|
||||
### Поддерживаемые разрешения
|
||||
### Supported resolutions
|
||||
|
||||
| Разрешение | Стандартное название | 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 |
|
||||
| Resolution | Label | FPS options |
|
||||
|------------|----------------|------------------|
|
||||
| `360` | 360p (640×360) | 30, 60, 90, 120 |
|
||||
| `480` | 480p (854×480) | 30, 60, 90, 120 |
|
||||
| `720` | 720p (1280×720)| 30, 60, 90, 120 |
|
||||
| `1080` | 1080p (1920×1080)| 30, 60, 90, 120|
|
||||
| `1440` | 1440p (2560×1440)| 30, 60, 90, 120|
|
||||
| `2160` | 2160p (3840×2160)| 30, 60, 90, 120|
|
||||
|
||||
**Примечание:** Высокие FPS (60/90/120) создаются автоматически только если исходное видео поддерживает соответствующий FPS.
|
||||
High FPS (60/90/120) are generated only if the source supports that FPS.
|
||||
|
||||
## Автоматические настройки
|
||||
## Defaults & Automation
|
||||
|
||||
- **Длительность сегментов:** 2 секунды
|
||||
- **NVENC:** автоопределение (GPU если доступен, иначе CPU)
|
||||
- **Профили качества:** автоматический выбор на основе разрешения исходного видео
|
||||
- **Битрейт:** динамический расчет по формуле BPP (Bits Per Pixel)
|
||||
- **Превью спрайты:** генерируются автоматически (160×90px, интервал 1 сек)
|
||||
- **Постер:** извлекается с начала видео (кадр 0:00:00, можно изменить через `-p`)
|
||||
- **Параллельное кодирование:** включено
|
||||
- Segment duration: 2 seconds
|
||||
- Hardware accel: auto-detect (GPU if available, else CPU)
|
||||
- Profiles: auto-selected based on source resolution
|
||||
- Bitrate: BPP-based dynamic calculation
|
||||
- Thumbnails: auto sprite (160×90, 1s interval) + VTT
|
||||
- Poster: first frame (0:00:00, configurable via `-p`)
|
||||
- Parallel encoding: enabled
|
||||
|
||||
**Требования:** Node.js ≥18.0.0, FFmpeg, MP4Box (gpac), опционально NVIDIA GPU для ускорения
|
||||
**Requirements:** Node.js ≥18.0.0, FFmpeg, MP4Box (gpac), optional NVIDIA/Intel/AMD GPU for acceleration
|
||||
|
||||
113
README_RU.md
Normal file
113
README_RU.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# 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 прогресс-бары по профилям и общему этапу
|
||||
|
||||
## Быстрый старт
|
||||
|
||||
```bash
|
||||
# Использование через npx (без установки)
|
||||
npx @gromlab/create-vod video.mp4
|
||||
|
||||
# Или глобальная установка
|
||||
npm install -g @gromlab/create-vod
|
||||
create-vod 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
|
||||
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`, `dual` | `-c dual` (по умолчанию) |
|
||||
| `-f, --format` | Формат стриминга | `dash`, `hls`, `both` | `-f both` (по умолчанию) |
|
||||
| `-p, --poster` | Таймкод для постера | `HH:MM:SS` или секунды | `-p 00:00:05` или `-p 10` |
|
||||
| `--accel` | Аппаратный ускоритель | `auto`, `nvenc`, `qsv`, `amf`, `cpu` | `--accel nvenc` |
|
||||
|
||||
### Примеры использования
|
||||
|
||||
```bash
|
||||
# Базовая конвертация (DASH + HLS, dual codec, автопрофили)
|
||||
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 -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 сек)
|
||||
- **Постер:** извлекается с начала видео (кадр 0:00:00, можно изменить через `-p`)
|
||||
- **Параллельное кодирование:** включено
|
||||
|
||||
**Требования:** Node.js ≥18.0.0, FFmpeg, MP4Box (gpac), опционально NVIDIA GPU для ускорения
|
||||
@@ -8,7 +8,7 @@
|
||||
npm login
|
||||
```
|
||||
|
||||
Введите credentials для аккаунта с доступом к организации `@grom13`.
|
||||
Введите credentials для аккаунта с доступом к организации `@gromlab`.
|
||||
|
||||
### Шаг 2: Сборка проекта
|
||||
|
||||
@@ -41,7 +41,20 @@ npm pack
|
||||
npm publish --access public
|
||||
```
|
||||
|
||||
⚠️ **Важно:** Флаг `--access public` обязателен для scoped пакетов (`@grom13/...`), иначе NPM попытается опубликовать как приватный пакет (требует платную подписку).
|
||||
⚠️ **Важно:** Флаг `--access public` обязателен для scoped пакетов (`@gromlab/...`), иначе NPM попытается опубликовать как приватный пакет (требует платную подписку).
|
||||
|
||||
### Токен и 2FA
|
||||
- Создайте новый npm-токен с отмеченным чекбоксом **"Bypass two-factor authentication (2FA)"**.
|
||||
- Добавьте/обновите `~/.npmrc` перед публикацией:
|
||||
```
|
||||
@gromlab:registry=https://registry.npmjs.org/
|
||||
//registry.npmjs.org/:_authToken=<TOKEN>
|
||||
```
|
||||
- После этого публикуйте:
|
||||
```
|
||||
npm publish --access public
|
||||
```
|
||||
|
||||
|
||||
### Шаг 5: Проверка публикации
|
||||
|
||||
@@ -114,7 +127,7 @@ npm install @gromlab/create-vod
|
||||
|
||||
### Ошибка: "You do not have permission to publish"
|
||||
|
||||
Решение: Убедитесь что вы авторизованы (`npm whoami`) и имеете доступ к организации `@grom13`.
|
||||
Решение: Убедитесь что вы авторизованы (`npm whoami`) и имеете доступ к организации `@gromlab`.
|
||||
|
||||
### Ошибка при сборке
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@gromlab/create-vod",
|
||||
"author": "Gromov Sergei",
|
||||
"version": "0.1.3",
|
||||
"version": "0.1.4",
|
||||
"description": "DASH/HLS video converter with hardware acceleration (NVENC/QSV/AMF/VAAPI), thumbnails and poster generation",
|
||||
"type": "module",
|
||||
"main": "./dist/index.js",
|
||||
@@ -61,4 +61,4 @@
|
||||
"dependencies": {
|
||||
"cli-progress": "^3.12.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user