FFmpeg на Linux: установка и практическое руководство

FFmpeg — универсальный бесплатный инструмент для конвертации, обработки и анализа аудио и видео на Linux. Установите пакет из репозитория вашей дистрибуции, используйте простые однострочные команды для конвертации, обрезки, извлечения звука и создания GIF, а также применяйте фильтры для масштабирования, обрезки и поворота.
В этом руководстве вы найдёте команды установки, базовые и продвинутые примеры, шпаргалку по параметрам, чек-листы для ролей и рекомендации по отладке и совместимости.
Введение в FFmpeg
FFmpeg — это свободная и открытая утилита для работы с мультимедиа. Она поддерживает практически все популярные кодеки (H.264, H.265, VP8, VP9, AAC, OPUS и др.), контейнеры (MP4, MKV, WEBM, MP3 и т. п.) и протоколы потоковой передачи (HTTP, RTMP, RTSP, HLS).
Одно предложение: FFmpeg — это консольный набор инструментов для преобразования, обработки и анализа аудио/видео файлов.
Ключевые преимущества:
- Работает на низкопроизводительном железе.
- Нет графического интерфейса по умолчанию — всё через команды (удобно для автоматизации).
- Гибкость: фильтры, кодеки и контейнеры можно комбинировать.
Важно: FFmpeg изменяет файлы только при явном указании выходного имени. По умолчанию исходный файл остаётся нетронутым.
Установка FFmpeg на Linux
FFmpeg доступен в репозиториях большинства крупных дистрибутивов. Ниже — примеры установки. Выполняйте команды с правами sudo или как root.
# Debian
sudo apt install ffmpeg
# Fedora
sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm
sudo dnf -y install ffmpeg
# RHEL/CentOS
yum install ffmpeg ffmpeg-devel
# Arch Linux
pacman -S ffmpegПосле установки проверьте версию:
ffmpeg -versionПолучение информации о видео
Чтобы просмотреть метаданные и параметры кодирования файла, используйте флаг -i:
ffmpeg -i example-video.mp4 -hide_banner- Параметр -hide_banner скрывает служебный баннер и лишнюю служебную информацию. Можно убрать его, чтобы увидеть все заголовки и сборочную строку.
Базовые операции: конвертация форматов
FFmpeg выполняет конвертацию одним вызовом: указали вход, указали выход — получили новый файл.
Конвертация MOV в MP4
ffmpeg -i input-mov-video.mov output-video.mp4ffmpeg автоматически подбирает кодеки по умолчанию. Если нужно сохранить кодеки (без перекодирования), используйте -c copy.
Конвертация WAV в MP3
ffmpeg -i example-wav.wav -vn -ar 48000 -ac 2 -b:a 256k output.mp3Разбор параметров:
- -vn — отключить видеопоток (если файл содержит картинку/обложку).
- -ar 48000 — частота дискретизации (48 kHz).
- -ac 2 — количество каналов (2 = стерео).
- -b:a 256k — битрейт аудио 256 kbit/s.
Операции с аудио
Извлечение звуковой дорожки из видео:
ffmpeg -i example-video.mp4 -vn output.mp3Удаление звука из видео (мьют):
ffmpeg -i example-video.mp4 -an output-mute.mp4Обрезка и временные отрезки
Основные параметры:
- -ss — начало фрагмента (можно указывать в формате HH:MM:SS или в секундах).
- -to — время окончания (или -t для длительности).
- -c — кодек для выходного файла (например, -c copy для копирования потоков без рекодирования).
Пример обрезки без рекодирования:
ffmpeg -i example-video.mp4 -ss 00:02:25 -to 00:03:50 -c copy output-trim.mp4Если нужно точное кадрирование на уровне ключевых кадров, переместите -ss перед опцией -i (ускоренная, но менее точная позиция) или оставьте после -i для точного кадра.
Обрезка кадра (crop) и фильтры
Обрезка кадра внутри изображения:
ffmpeg -i example-video.mp4 -filter:v "crop=w:h:x:y" output-crop.mp4Параметры:
- filter:v — применяет видеофильтр.
- crop — операция обрезки.
- w:h:x:y — ширина, высота, смещение по X и Y.
Пример: взять центральную область в 1280x720:
ffmpeg -i input.mp4 -filter:v "crop=1280:720:(in_w-1280)/2:(in_h-720)/2" output.mp4Масштабирование и трансформация
Изменение разрешения:
ffmpeg -i example-video.mp4 -vf scale=1920:1080 output-scale.mp4Повороты и транспонирование:
ffmpeg -i example-video.mp4 -vf "transpose=2" output-rotate.mp4Значения transpose:
- 0 — поворот на 90° по часовой (и вертикальное отражение).
- 1 — поворот на 90° по часовой.
- 2 — поворот на 90° против часовой.
- 3 — поворот на 90° против часовой и вертикальное отражение.
Для поворота на 180° примените transpose дважды:
ffmpeg -i example-video.mp4 -vf "transpose=2,transpose=2" output-rotate-180.mp4Объединение нескольких видео
Если клипы имеют одинаковые кодеки и параметры, создайте текстовый список:
# my-video-list.txt
file 'clip1.mp4'
file 'clip2.mp4'
file 'clip3.mp4'Затем запустите:
ffmpeg -f concat -i my-video-list.txt -c copy sum-output.mp4Если кодеки различаются, перекодируйте файлы или используйте intermediate формат.
Работа с FPS и GOP
- FPS — кадры в секунду. Изменение FPS:
ffmpeg -i example-video.mp4 -vf "fps=60" output-fps.mp4- GOP — расстояние между ключевыми кадрами (параметр -g). Большие значения g уменьшают количество ключевых кадров, но слишком большие значения могут ухудшить качество при сценических сменах.
ffmpeg -i example-video.mp4 -g 200 output-gop.mp4Создание GIF анимации
Базовая конвертация в GIF:
ffmpeg -i example-video.mp4 output-gif.gifБолее гибкий пример со временем и частотой кадров:
ffmpeg -ss 00:01:15 -i example-video.mp4 -to 10 -r 10 -vf scale=250:-1 output-gif.gif- -r — количество кадров в секунду для GIF.
- scale=250:-1 — масштабирование по ширине с сохранением пропорций.
Извлечение кадров
Извлечь по одному кадру в секунду и пронумеровать файлы двумя цифрами:
ffmpeg -i example-video.mp4 -r 1 image-%02d.jpegМожно менять формат на PNG, BMP и т. д.
Шпаргалка по часто используемым параметрам
| Параметр | Назначение |
|---|---|
| -i <файл> | Входной файл |
| -hide_banner | Скрыть служебную строку |
| -vn | Отключить видео |
| -an | Отключить аудио |
| -ss | Время начала |
| -to | Время окончания |
| -t | Длительность |
| -c, -codec | Выбор кодека или copy для копирования |
| -vf, -filter:v | Видео-фильтры (scale, crop, transpose и др.) |
| -r | Частота кадров |
| -ar | Частота дискретизации аудио |
| -ac | Количество аудиоканалов |
| -b:a | Битрейт аудио |
| -g | Интервал ключевых кадров (GOP) |
Примеры сценариев и шаблоны команд
- Быстрая рекомпрессия H.264 с выходным битрейтом 1M:
ffmpeg -i input.mp4 -c:v libx264 -b:v 1M -c:a aac -b:a 128k output.mp4- Извлечь 30-секундный клип с точным кадрированием:
ffmpeg -i input.mp4 -ss 00:01:00 -t 00:00:30 -c:v libx264 -c:a aac clip.mp4- Создать WebM с кодеком VP9:
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 0 -crf 30 -c:a libopus output.webmМетодология подготовки и автоматизации обработки
Мини-метод: как работать с серией файлов
- Проанализируйте входы: ffprobe или ffmpeg -i.
- Определите целевой формат и параметры (кодек, битрейт, разрешение).
- Сформируйте шаблон команд для пакета файлов (скрипт на bash/Makefile).
- Запустите на тестовой паре файлов и проверьте качество.
- Автоматизируйте с логированием ошибок и резервным копированием.
Чек-листы по ролям
Для монтажёра:
- Проверить кодеки и разрешение исходников.
- Использовать -c copy для быстрого объединения при совпадении кодеков.
- Тестировать резкость и звук после перекодирования.
Для разработчика/инженера CI:
- Автоматизировать конвертацию в CI-пайплайне.
- Добавить контроль целевого размера и SLO (макс. время выполнения).
- Логировать вывод ffmpeg для диагностики.
Для контент-менеджера:
- Согласовать целевой формат с платформой (YouTube, соцсети).
- Использовать шаблоны для миниатюр и GIF.
Совместимость и заметки по дистрибутивам
- Debian/Ubuntu: пакет ffmpeg официально доступен. Для специальных кодеков (например, некоторых патентованных) может потребоваться подключить внешние репозитории.
- Fedora: используйте RPM Fusion для доступа к свободным медиапакетам.
- RHEL/CentOS: официальные репозитории могут не содержать ffmpeg — используйте EPEL или сторонние сборки.
- Arch Linux: ffmpeg в официальных репозиториях, часто самая свежая версия.
Отладка и типичные ошибки
- “Unknown encoder” — у вас нет нужного кодека в сборке ffmpeg. Решение: установить сборку с поддержкой кодека или перекодировать в доступный кодек.
- Проблемы с синхронизацией аудио/видео — попробуйте удалить -c copy и явно указать кодеки; использовать -async или корректировать тайминги.
- Большие задержки при -ss перед -i — используйте -copyts и другие параметры для точной синхронизации.
Безопасность и приватность
- Будьте внимательны при обработке защищённых или персональных данных. Если файл содержит личную информацию, удалите метаданные (например, ffmpeg может сбрасывать часть метаданных, но лучше явно очищать с помощью ffprobe и инструментов редактирования метаданных).
- В автоматизации избегайте передачи чувствительных файлов на публичные сервера без шифрования.
Контрпримеры и пределы применения
- FFmpeg не заменит профессиональные нелинейные монтажные системы для сложной монтажной работы (цветокоррекция, сложные переходы, многодорожечный звук). Для таких задач лучше использовать DaVinci Resolve, Adobe Premiere или Kdenlive.
- Для живой потоковой трансляции с интерактивными эффектами могут потребоваться специализированные решения (OBS, Wowza) вместе с FFmpeg.
Диаграмма выбора операции (быстрое руководство)
flowchart TD
A[У вас есть видео] --> B{Что нужно сделать?}
B -->|Извлечь звук| C[ffmpeg -i input -vn out.mp3]
B -->|Удалить звук| D[ffmpeg -i input -an out.mp4]
B -->|Обрезать| E[ffmpeg -i input -ss START -to END -c copy out.mp4]
B -->|Конвертировать формат| F[ffmpeg -i input out.ext]
B -->|Сделать GIF| G[ffmpeg -ss START -i input -to DURATION -r FPS -vf scale=W:-1 out.gif]
B -->|Извлечь кадры| H[ffmpeg -i input -r 1 image-%02d.jpg]Критерии приёмки
- Выходной файл открывается в целевой среде (браузер/плеер) без ошибок.
- Аудио/видео синхронизированы в пределах допустимого порога.
- Размер и качество соответствуют требованиям (если задано).
Часто используемые шаблоны команд (чек-лист)
- Быстрая проверка метаданных: ffmpeg -i file
- Извлечение аудио: ffmpeg -i file -vn audio.mp3
- Удаление звука: ffmpeg -i file -an nosound.mp4
- Быстрое объединение: ffmpeg -f concat -i list.txt -c copy out.mp4
- Извлечение кадров: ffmpeg -i file -r 1 frame-%03d.png
Сводка
- FFmpeg — мощный и гибкий инструмент для большинства задач по обработке медиа на Linux.
- Часто достаточно одно-двух команд для выполнения рутинных операций: конвертация, обрезка, извлечение аудио, создание GIF.
- Для сложного монтажа и цветокоррекции используйте профессиональные NLE-пакеты; FFmpeg лучше подходит для автоматизации и пакетной обработки.
Ключевые действия: установить ffmpeg из репозитория, проверить входной файл через -i, собрать шаблон команд и протестировать на нескольких файлах.
Дополнительные ресурсы: используйте ffmpeg –help и man ffmpeg для справки по параметрам и фильтрам.
Похожие материалы
RDP: полный гид по настройке и безопасности
Android как клавиатура и трекпад для Windows
Советы и приёмы для работы с PDF
Calibration в Lightroom Classic: как и когда использовать
Отключить Siri Suggestions на iPhone