144 lines
4.1 KiB
Markdown
144 lines
4.1 KiB
Markdown
|
|
---
|
|||
|
|
layout: home
|
|||
|
|
|
|||
|
|
hero:
|
|||
|
|
name: "Adaptive Video Converter"
|
|||
|
|
text: "Конвертер видео в адаптивные форматы"
|
|||
|
|
tagline: DASH и HLS с GPU-ускорением (NVENC) и генерацией превью
|
|||
|
|
actions:
|
|||
|
|
- theme: brand
|
|||
|
|
text: Быстрый старт
|
|||
|
|
link: /guide/getting-started
|
|||
|
|
- theme: alt
|
|||
|
|
text: Возможности
|
|||
|
|
link: /FEATURES
|
|||
|
|
- theme: alt
|
|||
|
|
text: API Reference
|
|||
|
|
link: /api/overview
|
|||
|
|
|
|||
|
|
features:
|
|||
|
|
- icon: ⚡
|
|||
|
|
title: GPU-ускорение
|
|||
|
|
details: Использование NVIDIA NVENC для быстрого кодирования H.264 и AV1 с фоллбеком на CPU
|
|||
|
|
|
|||
|
|
- icon: 🎯
|
|||
|
|
title: DASH + HLS
|
|||
|
|
details: Поддержка обоих форматов адаптивного стриминга для максимальной совместимости
|
|||
|
|
|
|||
|
|
- icon: 📊
|
|||
|
|
title: Адаптивный битрейт (ABR)
|
|||
|
|
details: Автоматическое создание множественных профилей качества от 360p до 4K
|
|||
|
|
|
|||
|
|
- icon: 🎬
|
|||
|
|
title: Dual Codec
|
|||
|
|
details: Одновременная генерация H.264 (совместимость) и AV1 (эффективность)
|
|||
|
|
|
|||
|
|
- icon: 🖼️
|
|||
|
|
title: Превью-спрайты
|
|||
|
|
details: Автоматическая генерация thumbnail спрайтов с VTT для seek preview
|
|||
|
|
|
|||
|
|
- icon: 📸
|
|||
|
|
title: Постер
|
|||
|
|
details: Извлечение постера из видео в заданном таймкоде
|
|||
|
|
|
|||
|
|
- icon: ⏱️
|
|||
|
|
title: Прогресс в реальном времени
|
|||
|
|
details: Детальное отображение прогресса конвертации с процентами и ETA
|
|||
|
|
|
|||
|
|
- icon: 🔧
|
|||
|
|
title: CLI + API
|
|||
|
|
details: Удобный CLI для терминала и программный API для интеграции
|
|||
|
|
|
|||
|
|
- icon: 🚀
|
|||
|
|
title: Параллельное кодирование
|
|||
|
|
details: Одновременное кодирование нескольких профилей для максимальной скорости
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
## Быстрая установка
|
|||
|
|
|
|||
|
|
::: code-group
|
|||
|
|
|
|||
|
|
```bash [npm]
|
|||
|
|
npm install -g @grom13/adaptive-video-converter
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
```bash [npx (без установки)]
|
|||
|
|
npx @grom13/adaptive-video-converter video.mp4
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
:::
|
|||
|
|
|
|||
|
|
## Использование
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# Базовая конвертация
|
|||
|
|
avc video.mp4
|
|||
|
|
|
|||
|
|
# С параметрами
|
|||
|
|
avc video.mp4 ./output -r 720,1080,1440 -c dual -f both
|
|||
|
|
|
|||
|
|
# Только HLS для Safari/iOS
|
|||
|
|
avc video.mp4 -f hls -c h264
|
|||
|
|
|
|||
|
|
# Высокий FPS для игровых стримов
|
|||
|
|
avc video.mp4 -r 720@60,1080@60,1440@120
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Системные требования
|
|||
|
|
|
|||
|
|
- Node.js ≥ 18.0.0
|
|||
|
|
- FFmpeg (с поддержкой NVENC для GPU)
|
|||
|
|
- MP4Box (gpac)
|
|||
|
|
- Опционально: NVIDIA GPU с NVENC
|
|||
|
|
|
|||
|
|
::: tip
|
|||
|
|
Проверьте наличие необходимых инструментов:
|
|||
|
|
```bash
|
|||
|
|
ffmpeg -version
|
|||
|
|
MP4Box -version
|
|||
|
|
```
|
|||
|
|
:::
|
|||
|
|
|
|||
|
|
## Результат
|
|||
|
|
|
|||
|
|
После конвертации вы получите:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
video/
|
|||
|
|
├── manifest.mpd # DASH манифест
|
|||
|
|
├── master.m3u8 # HLS мастер-плейлист
|
|||
|
|
├── 720p-h264/ # Сегменты по профилям
|
|||
|
|
├── 720p-av1/
|
|||
|
|
├── 1080p-h264/
|
|||
|
|
├── 1080p-av1/
|
|||
|
|
├── thumbnails.jpg # Спрайт превью
|
|||
|
|
├── thumbnails.vtt # WebVTT временные метки
|
|||
|
|
└── poster.jpg # Постер
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## Программное использование
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
import { convertToDash } from '@grom13/adaptive-video-converter';
|
|||
|
|
|
|||
|
|
const result = await convertToDash({
|
|||
|
|
inputPath: './video.mp4',
|
|||
|
|
outputDir: './output',
|
|||
|
|
codecType: 'dual',
|
|||
|
|
format: 'both',
|
|||
|
|
onProgress: (progress) => {
|
|||
|
|
console.log(`${progress.percent}% - ${progress.stage}`);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
console.log('Готово:', result.manifestPath);
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
<div style="text-align: center; margin-top: 2rem;">
|
|||
|
|
<a href="/guide/getting-started" style="font-size: 1.2rem;">
|
|||
|
|
→ Начать работу с документацией
|
|||
|
|
</a>
|
|||
|
|
</div>
|