Files
adaptive-video-converter/docs/cli/examples.md
2025-12-03 22:46:15 +03:00

443 lines
8.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Примеры
Практические примеры для различных сценариев использования.
## Базовые сценарии
### Быстрая конвертация с настройками по умолчанию
```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/) — Использование в коде