Мультимедийные файлы широко используются в сети интернет, и в некоторых ситуациях требуется выполнять обработку этих файлов на стороне сервера. Понятное дело, что операции с файлами могут быть очень разными: от конвертации формата файлов, до генерации новых из различных источников. Для этих целей удобно иметь некоторый набор инструментов на сервере, который позволит программно выполнять различные операции с файлами мультимедиа. Одним из популярных наборов инструментов в своём роде является FFmpeg, который вы можете установить на своём сервере.
FFmpeg – это набор инструментов с открытым исходным кодом, который даёт возможность обрабатывать мультимедийные файлы на сервере. Он содержит целый набор различных библиотек для работы с аудио и видео файлами. Среди таких библиотек libavcodec, libavformat и libavutil. Используя возможности этих инструментов можно выполнять конвертацию различных видео аудио форматов, задавать частоту дискретизации, выполнять захват потокового аудио и видео, а также изменять размер видео.
В данной статье мы рассмотрим установку FFmpeg на CentOS 7, а также краткий пример использования.
Перед установкой продукта на систему нужно убедиться в наличии у вас прав с привилегиями sudo. Без соответствующих прав в системе установить новые репозиторий и пакеты из него будет невозможно.
FFmpeg недоступен в основных репозитория CentOS 7. Это означает что вам предстоит собрать его из исходников либо установить через сторонний репозиторий используя yum. Чтобы не усложнять себе жизнь, мы пойдём вторым путём.
Первое что следует выполнить это установить EPEL, если его у вас нет, он потребуется для RPM Fusion.
$ sudo yum install epel-release
Далее включаем репозиторий RPM Fusion, посредством установки пакета rpm.
$ sudo yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm
После того как нужный репозиторий подключён, можно выполнить непосредственную установку FFmpeg:
$ sudo yum install ffmpeg ffmpeg-devel
После завершения операции установки, можно проверить FFmpeg просмотрев его версию:
$ ffmpeg –version
После выполнения команды будет показана версия FFmpeg, при этом установку FFmpeg на CentOS можно считать успешной. Теперь давайте рассмотрим простые примеры использования.
Конвертация файлов может выполняться прямо из консоли. При этом вам не обязательно указывать форматы ввода и вывода, т.к. они определяются автоматически по расширению файла.
Конвертация видеофайла mp4 в webm:
$ ffmpeg -i input.mp4 output.webm
Конвертация аудиофайла mp3 в ogg:
$ ffmpeg -i input.mp3 output.ogg
Пожалуй, это самое простое использование команд. Однако в случае необходимости вы можете указать кодеки, которые хотите использовать. Для указания кодеков используется параметр –c, после чего можно задействовать имя любого поддерживаемого декодера или кодировщика.
Конвертация mp4 в webm с помощью libvpx (видеокодека) и libvorbis (аудиокодека):
$ ffmpeg -i input.mp4 -c:v libvpx -c:a libvorbis output.webm
Конвертация аудиофайла mp3 в ogg, закодированный с помощью libopus кодека:
$ ffmpeg -i input.mp3 -c:a libopus output.ogg
Аналогичным образом можно конвертировать различные файлы, поддерживаемые библиотеками. Здесь мы рассмотрели простую установку и базовые команды использования FFmpeg. Разумеется, это не всё что умеет FFmpeg, и для более подробно о возможностях использования этих инструментов рекомендуется ознакомиться с официальной документацией FFmpeg.