Иногда нужно преобразовать формат файла, например, из jpeg в webp. Для этого существует множество способов. В данной статье рассмотрим способ установки инструмента для преобразования форматов мультимедийных файлов прямо на сервере с ОС Linux.
FFmpeg — набор свободных библиотек с открытым исходным кодом, которые позволяют записывать, конвертировать и передавать цифровые аудио и видеозаписи в различных форматах. Он включает libavcodec — библиотеку кодирования и декодирования аудио и видео и libavformat — библиотеку мультиплексирования и демультиплексирования в медиаконтейнер.
Установка в Debian/Ubuntu
Рассмотрим установку FFmpeg в ОС Debian и Ubuntu. Данный способ подойдет для Debian 10, Debian 11, Ubuntu 20.04 и Ubuntu 22.04.
Для начала возможно потребуется обновить информацию о пакетах в вашей системе:
# apt update
Далее устанавливаем FFmpeg.
# apt install ffmpeg apt-get install ffmpeg
Видим, что система предлагает установить пакет и зависимости, нажимаем Y (или Д).
Дожидаемся окончания установки. Если ошибок нет, проверяем, что FFmpeg установлен:
# ffmpeg --version ffmpeg version 4.3.5-0+deb11u1 Copyright (c) 2000-2022 the FFmpeg developers …
Установка в CentOS/AlmaLinux/RockyLinux
CentOS 7
Для установки FFmpeg на CentOS 7 потребуются сторонние репозитории. Для начала включим репозиторий EPEL:
# yum install epel-release
Далее необходимо включить репозиторий Fusion:
# yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
И установим FFmpeg со всеми необходимыми пакетами:
# yum install ffmpeg ffmpeg-devel
Подтверждаем установку пакета и всех зависимостей, а также импорта GPG ключей кнопкой Y.
Дожидаемся окончания установки и проверяем:
# ffmpeg --version ffmpeg version 3.4.12 Copyright (c) 2000-2022 the FFmpeg developers …
AlmaLinux 8/RockyLinux 8/AlmaLinux 9/RockyLinux 9
В современных rpm-based ОС используем пакетный менеджер dnf. Для начала, также, как и в CentOS 7, подключаем репозиторий EPEL и необходимый для дальнейшей работы пакет dnf-utils:
# dnf -y install epel-release dnf-utils
Включаем репозиторий PowerTools:
# dnf config-manager --set-enabled powertools
И устанавливаем FFmpeg:
# dnf install ffmpeg
Проверяем:
# fmpeg --version ffmpeg version 5.1.2 Copyright (c) 2000-2022 the FFmpeg developers …
В AlmaLinux 9 и RockyLinux 9 могут возникнуть проблемы с вышеуказанными репозиториями, поэтому есть альтернативный способ:
# dnf install --nogpgcheck https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm # dnf update -y # dnf install ffmpeg ffmpeg-devel
Проверяем:
# fmpeg --version
Использование FFmpeg
Посмотреть поддерживаемые форматы можно командой:
# ffmpeg -formats
Чтобы посмотреть кодировщики, используйте команду:
# ffmpeg -encoders
Чтобы посмотреть список декодеров, используйте команду:
# ffmpeg -decoders
Используйте man
, чтобы более подробно ознакомится с документацией:
# man ffmpeg
Рассмотрим несколько примеров использования FFmpeg. Предварительно перейдите в директорию с файлом с помощью cd /путь_до_файла/
, чтобы не писать в командах полный путь до файла.
Используйте флаг i, чтобы получить информацию о медиа файле:
# ffmpeg -i file.mp4
Конвертирование файла из mp4 в современный легковесный формат webm (old_file.mp4 — текущий файл, new_file.webm — новый файл):
# ffmpeg -i old_file.mp4 new_file.webm