Files
adaptive-video-converter/docs/cli/examples.md

443 lines
8.6 KiB
Markdown
Raw Permalink Normal View History

2025-12-03 22:46:15 +03:00
# Примеры
Практические примеры для различных сценариев использования.
## Базовые сценарии
### Быстрая конвертация с настройками по умолчанию
```bash
avc video.mp4
```
**Результат:**
- Папка `video/` в текущей директории
- DASH + HLS манифесты
- H.264 + AV1 кодеки
- Автоматические профили качества
- Постер с 1-й секунды
- Thumbnail спрайты
---
### Указание выходной директории
```bash
avc video.mp4 ./public/videos
```
**Структура:**
```
public/
└── videos/
└── video/
├── manifest.mpd
├── master.m3u8
├── 720p-h264/
└── ...
```
---
## Выбор разрешений
### Стандартные веб-разрешения
```bash
avc video.mp4 -r 720,1080
```
**Для кого:** Большинство веб-сайтов
**Профили:** 720p, 1080p на 30fps
---
### Полный спектр качества
```bash
avc video.mp4 -r 360,480,720,1080,1440,2160
```
**Для кого:** Стриминговые платформы типа YouTube/Netflix
**Покрытие:** От мобильных до 4K мониторов
---
### Высокий FPS для игр
```bash
avc gameplay.mp4 -r 720@60,1080@60,1440@120
```
**Для кого:** Игровой контент, стримы
**Особенность:** Плавное воспроизведение 60/120 FPS
---
### Только мобильные разрешения
```bash
avc video.mp4 -r 360,480,720
```
**Для кого:** Мобильные приложения
**Преимущество:** Экономия трафика
---
## Выбор кодеков
### Только H.264 (максимальная совместимость)
```bash
avc video.mp4 -c h264
```
**Когда использовать:**
- Старые браузеры и устройства
- Гарантированное воспроизведение
- Safari/iOS (обязательно для HLS)
---
### Только AV1 (максимальное сжатие)
```bash
avc video.mp4 -c av1
```
**Когда использовать:**
- Современные браузеры (Chrome 90+, Firefox 90+)
- Экономия полосы пропускания
- Ограниченное хранилище
**Экономия:** ~40-50% по сравнению с H.264
---
### Dual codec (лучшая стратегия)
```bash
avc video.mp4 -c dual
```
**Преимущества:**
- Современные браузеры используют AV1
- Старые устройства переключаются на H.264
- Автоматический выбор плеером
---
## Выбор форматов
### Только DASH
```bash
avc video.mp4 -f dash
```
**Для кого:**
- Веб-плееры: dash.js, Shaka Player, Video.js
- Android устройства
- Современные smart TV
---
### Только HLS
```bash
avc video.mp4 -f hls -c h264
```
**Для кого:**
- Apple устройства (iPhone, iPad, Mac)
- Safari браузер
- Нативная поддержка в iOS
**Важно:** HLS лучше работает с H.264
---
### Оба формата (рекомендуется)
```bash
avc video.mp4 -f both -c dual
```
**Преимущество:** 100% совместимость со всеми устройствами
---
## Настройка качества
### Высокое качество (архивное)
```bash
avc video.mp4 -r 1080,1440,2160 \
-c dual \
--h264-cq 18 \
--av1-cq 25
```
**Для кого:** Архивы, профессиональные видео
**Размер:** Большой (~80-90% от исходника)
---
### Сбалансированное качество
```bash
avc video.mp4 -r 720,1080 \
-c dual \
--h264-cq 28 \
--av1-cq 35
```
**Для кого:** Обычные веб-сайты
**Размер:** Средний (~40-50% от исходника)
---
### Экономия места
```bash
avc video.mp4 -r 480,720 \
-c av1 \
--av1-cq 40
```
**Для кого:** Мобильные приложения, ограниченное хранилище
**Размер:** Малый (~20-30% от исходника)
---
## Постеры
### Постер с определенной секунды
```bash
# Интересный момент на 30-й секунде
avc video.mp4 -p 30
```
---
### Постер из середины видео
Сначала узнайте длительность:
```bash
ffprobe -v error -show_entries format=duration \
-of default=noprint_wrappers=1:nokey=1 video.mp4
# Вывод: 300.5 (5 минут)
# Постер из середины (2:30)
avc video.mp4 -p 00:02:30
```
---
## Реальные сценарии
### 1. Корпоративный сайт
**Требования:**
- Несколько разрешений
- Широкая совместимость
- Хорошее качество
```bash
avc presentation.mp4 ./public/videos \
-r 720,1080 \
-c dual \
-f both \
-p 5
```
---
### 2. Образовательная платформа
**Требования:**
- Экономия трафика для студентов
- Разные устройства
- Много видео
```bash
avc lecture.mp4 ./courses/math-101 \
-r 360,480,720 \
-c av1 \
-f dash \
--av1-cq 38
```
---
### 3. Стриминговый сервис
**Требования:**
- Полный спектр качества
- 4K контент
- Высокое качество
```bash
avc movie.mp4 ./cdn/movies/avatar \
-r 360,720,1080,1440,2160 \
-c dual \
-f both \
--h264-cq 23 \
--av1-cq 30 \
-p 00:00:10
```
---
### 4. Игровой портал
**Требования:**
- Высокий FPS
- Геймплейные видео
- Плавность
```bash
avc gameplay.mp4 ./streams \
-r 720@60,1080@60,1440@120 \
-c dual \
-f dash
```
---
### 5. Мобильное приложение
**Требования:**
- Минимальный трафик
- Быстрая загрузка
- Малые разрешения
```bash
avc video.mp4 ./app/assets \
-r 360,480 \
-c av1 \
-f dash \
--av1-cq 42
```
---
### 6. Apple-only приложение
**Требования:**
- iOS/macOS приложение
- HLS формат
- Надежность
```bash
avc video.mp4 ./ios-app/videos \
-r 480,720,1080 \
-c h264 \
-f hls \
-p 00:00:03
```
---
## Пакетная обработка
### Bash script для множества файлов
```bash
#!/bin/bash
# Конвертация всех MP4 файлов в папке
for video in *.mp4; do
echo "Converting: $video"
avc "$video" ./output \
-r 720,1080 \
-c dual \
-f both
done
echo "All videos converted!"
```
---
### С сохранением структуры папок
```bash
#!/bin/bash
# Найти все MP4 и конвертировать
find ./source -name "*.mp4" -type f | while read video; do
# Получить путь относительно source
rel_path="${video#./source/}"
dir_name=$(dirname "$rel_path")
# Создать выходную директорию
mkdir -p "./output/$dir_name"
# Конвертировать
avc "$video" "./output/$dir_name" \
-r 720,1080 \
-c dual \
-f both
done
```
---
## Оптимизация производительности
### Быстрая конвертация (минимум профилей)
```bash
avc video.mp4 -r 720 -c h264 -f dash
```
**Время:** ~30% от полной конвертации
---
### Использование только GPU
```bash
# Убедитесь что NVENC доступен
avc video.mp4 -c dual # Автоматически использует NVENC
```
**Скорость:** В 5-10 раз быстрее CPU
---
## Проверка результата
После конвертации проверьте результат:
```bash
# Список созданных файлов
ls -lh video/
# Проверка DASH манифеста
cat video/manifest.mpd
# Проверка HLS манифеста
cat video/master.m3u8
# Размер всех файлов
du -sh video/
```
---
## Следующие шаги
- [Опции и ключи](/cli/options) — Полный справочник параметров
- [API Библиотеки](/api/) — Использование в коде