8.6 KiB
Примеры
Практические примеры для различных сценариев использования.
Базовые сценарии
Быстрая конвертация с настройками по умолчанию
avc video.mp4
Результат:
- Папка
video/в текущей директории - DASH + HLS манифесты
- H.264 + AV1 кодеки
- Автоматические профили качества
- Постер с 1-й секунды
- Thumbnail спрайты
Указание выходной директории
avc video.mp4 ./public/videos
Структура:
public/
└── videos/
└── video/
├── manifest.mpd
├── master.m3u8
├── 720p-h264/
└── ...
Выбор разрешений
Стандартные веб-разрешения
avc video.mp4 -r 720,1080
Для кого: Большинство веб-сайтов
Профили: 720p, 1080p на 30fps
Полный спектр качества
avc video.mp4 -r 360,480,720,1080,1440,2160
Для кого: Стриминговые платформы типа YouTube/Netflix
Покрытие: От мобильных до 4K мониторов
Высокий FPS для игр
avc gameplay.mp4 -r 720@60,1080@60,1440@120
Для кого: Игровой контент, стримы
Особенность: Плавное воспроизведение 60/120 FPS
Только мобильные разрешения
avc video.mp4 -r 360,480,720
Для кого: Мобильные приложения
Преимущество: Экономия трафика
Выбор кодеков
Только H.264 (максимальная совместимость)
avc video.mp4 -c h264
Когда использовать:
- Старые браузеры и устройства
- Гарантированное воспроизведение
- Safari/iOS (обязательно для HLS)
Только AV1 (максимальное сжатие)
avc video.mp4 -c av1
Когда использовать:
- Современные браузеры (Chrome 90+, Firefox 90+)
- Экономия полосы пропускания
- Ограниченное хранилище
Экономия: ~40-50% по сравнению с H.264
Dual codec (лучшая стратегия)
avc video.mp4 -c dual
Преимущества:
- Современные браузеры используют AV1
- Старые устройства переключаются на H.264
- Автоматический выбор плеером
Выбор форматов
Только DASH
avc video.mp4 -f dash
Для кого:
- Веб-плееры: dash.js, Shaka Player, Video.js
- Android устройства
- Современные smart TV
Только HLS
avc video.mp4 -f hls -c h264
Для кого:
- Apple устройства (iPhone, iPad, Mac)
- Safari браузер
- Нативная поддержка в iOS
Важно: HLS лучше работает с H.264
Оба формата (рекомендуется)
avc video.mp4 -f both -c dual
Преимущество: 100% совместимость со всеми устройствами
Настройка качества
Высокое качество (архивное)
avc video.mp4 -r 1080,1440,2160 \
-c dual \
--h264-cq 18 \
--av1-cq 25
Для кого: Архивы, профессиональные видео
Размер: Большой (~80-90% от исходника)
Сбалансированное качество
avc video.mp4 -r 720,1080 \
-c dual \
--h264-cq 28 \
--av1-cq 35
Для кого: Обычные веб-сайты
Размер: Средний (~40-50% от исходника)
Экономия места
avc video.mp4 -r 480,720 \
-c av1 \
--av1-cq 40
Для кого: Мобильные приложения, ограниченное хранилище
Размер: Малый (~20-30% от исходника)
Постеры
Постер с определенной секунды
# Интересный момент на 30-й секунде
avc video.mp4 -p 30
Постер из середины видео
Сначала узнайте длительность:
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. Корпоративный сайт
Требования:
- Несколько разрешений
- Широкая совместимость
- Хорошее качество
avc presentation.mp4 ./public/videos \
-r 720,1080 \
-c dual \
-f both \
-p 5
2. Образовательная платформа
Требования:
- Экономия трафика для студентов
- Разные устройства
- Много видео
avc lecture.mp4 ./courses/math-101 \
-r 360,480,720 \
-c av1 \
-f dash \
--av1-cq 38
3. Стриминговый сервис
Требования:
- Полный спектр качества
- 4K контент
- Высокое качество
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
- Геймплейные видео
- Плавность
avc gameplay.mp4 ./streams \
-r 720@60,1080@60,1440@120 \
-c dual \
-f dash
5. Мобильное приложение
Требования:
- Минимальный трафик
- Быстрая загрузка
- Малые разрешения
avc video.mp4 ./app/assets \
-r 360,480 \
-c av1 \
-f dash \
--av1-cq 42
6. Apple-only приложение
Требования:
- iOS/macOS приложение
- HLS формат
- Надежность
avc video.mp4 ./ios-app/videos \
-r 480,720,1080 \
-c h264 \
-f hls \
-p 00:00:03
Пакетная обработка
Bash script для множества файлов
#!/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!"
С сохранением структуры папок
#!/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
Оптимизация производительности
Быстрая конвертация (минимум профилей)
avc video.mp4 -r 720 -c h264 -f dash
Время: ~30% от полной конвертации
Использование только GPU
# Убедитесь что NVENC доступен
avc video.mp4 -c dual # Автоматически использует NVENC
Скорость: В 5-10 раз быстрее CPU
Проверка результата
После конвертации проверьте результат:
# Список созданных файлов
ls -lh video/
# Проверка DASH манифеста
cat video/manifest.mpd
# Проверка HLS манифеста
cat video/master.m3u8
# Размер всех файлов
du -sh video/
Следующие шаги
- Опции и ключи — Полный справочник параметров
- API Библиотеки — Использование в коде