Compare commits
8 Commits
b6c191290c
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| b40ae34387 | |||
| 84231d705f | |||
| 2c8d9d1e9e | |||
| 41fe1a7370 | |||
| 55fb1f640a | |||
| 4293b6735a | |||
| 248fe15b62 | |||
| 81add91669 |
43
README.md
43
README.md
@@ -28,20 +28,29 @@ brew install ffmpeg gpac
|
|||||||
Before running, make sure `FFmpeg` and `MP4Box` are installed (see Install).
|
Before running, make sure `FFmpeg` and `MP4Box` are installed (see Install).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Run via npx (no install)
|
|
||||||
npx @gromlab/create-vod video.mp4
|
npx @gromlab/create-vod video.mp4
|
||||||
|
|
||||||
# Or install globally
|
|
||||||
npm install -g @gromlab/create-vod
|
|
||||||
create-vod video.mp4
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Output:** A folder `video/` in the current directory with segments under `{profile}-{codec}/`, DASH/HLS manifests in the root, poster, and thumbnail sprite/VTT (both DASH and HLS are always generated).
|
**Output:** In the current directory you'll get:
|
||||||
|
```
|
||||||
|
video/
|
||||||
|
├── manifest.mpd # DASH manifest
|
||||||
|
├── master.m3u8 # HLS master playlist
|
||||||
|
├── poster.jpg # Poster frame
|
||||||
|
├── thumbnails.{jpg,vtt} # Sprite + VTT cues
|
||||||
|
├── audio/ # Audio init + segments (AAC)
|
||||||
|
├── 1080p/ # H.264 1080p init + segments
|
||||||
|
├── 720p/ # H.264 720p
|
||||||
|
├── 480p/ # H.264 480p
|
||||||
|
├── 360p/ # H.264 360p
|
||||||
|
├── 1080p-av1/ # AV1 1080p (if av1 selected)
|
||||||
|
└── ... # Other profiles/codecs as {profile}-{codec}
|
||||||
|
```
|
||||||
|
|
||||||
## CLI Usage
|
## CLI Usage
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
create-vod <input-video> [output-dir] [-r resolutions] [-c codec] [-p poster-timecode] [-e encoder] [-d decoder]
|
create-vod <input-video> [output-dir] [-r resolutions] [-c codec] [-p poster-timecode] [-e encoder] [-d decoder] [-m]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Main arguments
|
### Main arguments
|
||||||
@@ -60,33 +69,37 @@ create-vod <input-video> [output-dir] [-r resolutions] [-c codec] [-p poster-tim
|
|||||||
| `-p, --poster` | Poster timecode | `HH:MM:SS` or seconds | `00:00:00` | `-p 00:00:05` or `-p 10` |
|
| `-p, --poster` | Poster timecode | `HH:MM:SS` or seconds | `00:00:00` | `-p 00:00:05` or `-p 10` |
|
||||||
| `-e, --encoder` | Video encoder | `auto`, `nvenc`, `qsv`, `amf`, `vaapi`, `videotoolbox`, `v4l2`, `cpu` | `auto` | `-e nvenc` |
|
| `-e, --encoder` | Video encoder | `auto`, `nvenc`, `qsv`, `amf`, `vaapi`, `videotoolbox`, `v4l2`, `cpu` | `auto` | `-e nvenc` |
|
||||||
| `-d, --decoder` | Video decoder (hwaccel) | `auto`, `nvenc`, `qsv`, `vaapi`, `videotoolbox`, `v4l2`, `cpu` | `auto` | `-d cpu` |
|
| `-d, --decoder` | Video decoder (hwaccel) | `auto`, `nvenc`, `qsv`, `vaapi`, `videotoolbox`, `v4l2`, `cpu` | `auto` | `-d cpu` |
|
||||||
|
| `-m, --muted` | Disable audio track | flag | off | `-m` |
|
||||||
|
|
||||||
### Examples
|
### Examples
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Default (DASH + HLS, auto profiles)
|
# Default (DASH + HLS, auto profiles)
|
||||||
create-vod video.mp4
|
npx @gromlab/create-vod video.mp4
|
||||||
|
|
||||||
# Custom output directory
|
# Custom output directory
|
||||||
create-vod video.mp4 ./output
|
npx @gromlab/create-vod video.mp4 ./output
|
||||||
|
|
||||||
# Selected resolutions
|
# Selected resolutions
|
||||||
create-vod video.mp4 -r 720,1080,1440
|
npx @gromlab/create-vod video.mp4 -r 720,1080,1440
|
||||||
|
|
||||||
# High FPS
|
# High FPS
|
||||||
create-vod video.mp4 -r 720@60,1080@60
|
npx @gromlab/create-vod video.mp4 -r 720@60,1080@60
|
||||||
|
|
||||||
# Poster from 5th second
|
# Poster from 5th second
|
||||||
create-vod video.mp4 -p 5
|
npx @gromlab/create-vod video.mp4 -p 5
|
||||||
|
|
||||||
# Force CPU encode/decode
|
# Force CPU encode/decode
|
||||||
create-vod video.mp4 -c h264 -e cpu -d cpu
|
npx @gromlab/create-vod video.mp4 -c h264 -e cpu -d cpu
|
||||||
|
|
||||||
# Force GPU encode + CPU decode
|
# Force GPU encode + CPU decode
|
||||||
create-vod video.mp4 -c h264 -e nvenc -d cpu
|
npx @gromlab/create-vod video.mp4 -c h264 -e nvenc -d cpu
|
||||||
|
|
||||||
# Combined parameters
|
# Combined parameters
|
||||||
create-vod video.mp4 ./output -r 720,1080@60,1440@60 -p 00:00:10
|
npx @gromlab/create-vod video.mp4 ./output -r 720,1080@60,1440@60 -p 00:00:10
|
||||||
|
|
||||||
|
# No audio
|
||||||
|
npx @gromlab/create-vod video.mp4 -m
|
||||||
```
|
```
|
||||||
|
|
||||||
### Supported resolutions
|
### Supported resolutions
|
||||||
|
|||||||
40
README_RU.md
40
README_RU.md
@@ -27,20 +27,30 @@ brew install ffmpeg gpac
|
|||||||
## Быстрый старт
|
## Быстрый старт
|
||||||
Перед запуском убедитесь, что в системе установлены `FFmpeg` и `MP4Box` (см. Install).
|
Перед запуском убедитесь, что в системе установлены `FFmpeg` и `MP4Box` (см. Install).
|
||||||
```bash
|
```bash
|
||||||
# Использование через npx (без установки)
|
|
||||||
npx @gromlab/create-vod video.mp4
|
npx @gromlab/create-vod video.mp4
|
||||||
|
|
||||||
# Или глобальная установка
|
|
||||||
npm install -g @gromlab/create-vod
|
|
||||||
create-vod video.mp4
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**Результат:** В текущей директории будет создана папка `video/` с сегментами в папках `{profile}-{codec}/`, манифестами DASH и HLS в корне, постером и превью спрайтами.
|
**Результат:** В текущей директории появится структура выходных файлов:
|
||||||
|
```
|
||||||
|
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
|
## Параметры CLI
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
create-vod <input-video> [output-dir] [-r resolutions] [-c codec] [-p poster-timecode] [-e encoder] [-d decoder]
|
create-vod <input-video> [output-dir] [-r resolutions] [-c codec] [-p poster-timecode] [-e encoder] [-d decoder] [-m]
|
||||||
```
|
```
|
||||||
|
|
||||||
### Основные параметры
|
### Основные параметры
|
||||||
@@ -59,27 +69,31 @@ create-vod <input-video> [output-dir] [-r resolutions] [-c codec] [-p poster-tim
|
|||||||
| `-p, --poster` | Таймкод для постера | `HH:MM:SS` или секунды | `00:00:00` | `-p 00:00:05` или `-p 10` |
|
| `-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` |
|
| `-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` |
|
| `-d, --decoder` | Видео декодер (hwaccel) | `auto`, `nvenc`, `qsv`, `vaapi`, `videotoolbox`, `v4l2`, `cpu` | `auto` | `-d cpu` |
|
||||||
|
| `-m, --muted` | Отключить аудио дорожку в выходных файлах | `flag` | `off` | `-m` |
|
||||||
|
|
||||||
### Примеры использования
|
### Примеры использования
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
# Базовая конвертация (DASH + HLS, авто кодек, автопрофили)
|
# Базовая конвертация (DASH + HLS, авто кодек, автопрофили)
|
||||||
create-vod video.mp4
|
npx @gromlab/create-vod video.mp4
|
||||||
|
|
||||||
# Указать выходную директорию
|
# Указать выходную директорию
|
||||||
create-vod video.mp4 ./output
|
npx @gromlab/create-vod video.mp4 ./output
|
||||||
|
|
||||||
# Только выбранные разрешения
|
# Только выбранные разрешения
|
||||||
create-vod video.mp4 -r 720,1080,1440
|
npx @gromlab/create-vod video.mp4 -r 720,1080,1440
|
||||||
|
|
||||||
# Высокий FPS для игровых стримов
|
# Высокий FPS для игровых стримов
|
||||||
create-vod video.mp4 -r 720@60,1080@60
|
npx @gromlab/create-vod video.mp4 -r 720@60,1080@60
|
||||||
|
|
||||||
# Постер с 5-й секунды
|
# Постер с 5-й секунды
|
||||||
create-vod video.mp4 -p 5
|
npx @gromlab/create-vod video.mp4 -p 5
|
||||||
|
|
||||||
# Комбинация параметров
|
# Комбинация параметров
|
||||||
create-vod video.mp4 ./output -r 720,1080@60,1440@60 -p 00:00:10
|
npx @gromlab/create-vod video.mp4 ./output -r 720,1080@60,1440@60 -p 00:00:10
|
||||||
|
|
||||||
|
# Без звука
|
||||||
|
npx @gromlab/create-vod video.mp4 -m
|
||||||
```
|
```
|
||||||
|
|
||||||
### Поддерживаемые разрешения
|
### Поддерживаемые разрешения
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@gromlab/create-vod",
|
"name": "@gromlab/create-vod",
|
||||||
"author": "Gromov Sergei",
|
"author": "Gromov Sergei",
|
||||||
"version": "0.1.11",
|
"version": "0.1.15",
|
||||||
"description": "DASH/HLS video converter with hardware acceleration (NVENC/QSV/AMF/VAAPI), thumbnails and poster generation",
|
"description": "DASH/HLS video converter with hardware acceleration (NVENC/QSV/AMF/VAAPI), thumbnails and poster generation",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.js",
|
"main": "./dist/index.js",
|
||||||
@@ -19,6 +19,7 @@
|
|||||||
"dist",
|
"dist",
|
||||||
"bin",
|
"bin",
|
||||||
"README.md",
|
"README.md",
|
||||||
|
"README_RU.md",
|
||||||
"LICENSE"
|
"LICENSE"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Reference in New Issue
Block a user