Как установить FFmpeg на CentOS 8 / RHEL 8

Как установить FFmpeg в системе CentOS 8 / RHEL 8 Linux? FFmpeg — это бесплатный мультимедийный фреймворк с открытым исходным кодом, используемый для воспроизведения, кодирования, декодирования, потоковой передачи, перекодирования, мультиплексирования, демультиплексирования и фильтрации мультимедийных файлов в различных форматах, включая аудио и видео MPEG1, MPEG4, h263, ac3, asf, avi, real, mjpeg и Flash.

Как установить на CentOS 8 / RHEL 8 Установить в системуFFmpeg — это бесплатная и открытая мультимедийная платформа для воспроизведения, кодирования, декодирования, потоковой передачи, перекодирования, мультиплексирования, демультиплексирования и фильтрации мультимедийных файлов в различных форматах, включая аудио и видео MPEG1, MPEG4, h263, ac3, asf, avi, real, mjpeg и Flash.
FFmpeg — кроссплатформенное приложение, работающее в Linux, macOS, Windows, BSD, Solaris и других системах в самых разных средах сборки, конфигурациях и архитектурах. Для работы большинства медиаплееров, доступных для Linux, а также загрузчиков и конвертеров аудио/видео (например, youtube-dl), требуется FFmpeg.
Инструменты FFmpeg
Вот основные строительные блоки FFmpeg:
ffmpeg — инструмент командной строки для преобразования мультимедийных файлов между форматами
ffplay – Простой медиаплеер на основе библиотек SDL и FFmpeg
ffprobe – простой анализатор потока мультимедиа
FFmpeg также содержит библиотеки разработчика – libavutil, libavcodec, libavformat, libavdevice, libavfilter, libswscale и libswresample.
На следующей диаграмме описывается процесс перекодировки каждого выходного сигнала:

Как установить FFmpeg на CentOS 8 / RHEL 8
Перед установкой FFmpeg на CentOS 8 / RHEL 8 Linux убедитесь, что ваша системная среда полностью настроена.
Установить репозиторий RPMfusion Yum
Репозиторий RPM Fusion был создан для предоставления программного обеспечения, отсутствующего в дистрибутивах на базе Fedora и Red Hat. Приложения, доступные в этом репозитории, представлены в виде предварительно скомпилированных RPM-файлов. В этом руководстве мы будем использовать репозиторий RPMfusion для установки FFmpeg в CentOS 8 / RHEL 8.
Перед установкой репозитория RPM Fusion вам необходимо установить репозиторий EPEL в вашей системе.

sudo dnf -y install https://download.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm sudo dnf localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-8.noarch.rpm sudo dnf install --nogpgcheck https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-8.noarch.rpm

Установка FFmpeg на CentOS 8 / RHEL 8 Linux
После добавления репозитория EPEL и RPM Fusion выполните следующие команды в терминале, чтобы установить FFmpeg в системе CentOS 8 / RHEL 8 Linux.

sudo dnf install http://rpmfind.net/linux/epel/7/x86_64/Packages/s/SDL2-2.0.10-1.el7.x86_64.rpm sudo dnf install ffmpeg sudo dnf -y install ffmpeg-devel

Используйте следующую команду для проверки установленной версии FFmpeg в вашей системе RHEL/CentOS.

rpm -qi ffmpeg ffmpeg -version


Заказ
1: Запись видео:


-f: Указывает, что данные из avfoundation нужно собирать с помощью mac.

-i: вход, поток ввода, следующая цифра 1 — номер устройства, указывающий экран (запись экрана)

i обрабатывает входной поток).

-r: задаёт частоту кадров. Как правило, 25 кадров обеспечивают более плавную картинку, а 15 кадров едва достаточно.

out.yuv: Собранные данные сохраняются в формате yuv, который представляет собой необработанный формат данных и имеет относительно большой размер.

ffmpeg -f avfoundation -i 1 -r 30 out.yuv

Воспроизвести видео:


-s указывает разрешение

-pix_fmt указывает исходный формат видео

ffplay -s 2560*1600 -pix_fmt uyvy422

Собирайте аудио


Число перед двоеточием обозначает видеоустройство, а число после двоеточия — аудиоустройство.

ffmpeg -f avfoundation -i :1 out.wav

Воспроизвести аудио


Поскольку это форматированные аудиоданные, вы можете просто воспроизвести их напрямую.

ffplay out.wav

2: Разложение и повторное использование
Используется для изменения формата (формата упаковки) мультимедийных данных.
Демультиплексирование — по сути разделение аудио- и видеоданных.
Мультиплексирование — переупаковка аудио- и видеоданных.
Конвертировать аудио и видео форматы


-vcodec демультиплексирование видео

-acodec аудио демультиплексирование

копировать означает не изменять формат кодирования после демультиплексирования, полностью копировать

ffmpeg -i test.mp4 -vcodec copy -acodec copy out.flv

Извлечь видеопоток


-an означает отсутствие аудиопотока

ffmpeg -i test.mp4 -an -vcodec copy out.h264

Извлечь аудиопоток

ffmpeg -i test.mp4 -acodec copy -vn out.h264

3: Обработка необработанных данных
Извлечение необработанных видеоданных


-c:v декодирует видео, используется кодек rawvideo

-pix_fmt Каждый кадр изображения кодируется как yuv 4:2:0

ffmpeg -i input.mp4 -an -c:v rawvideo -pix_fmt yuv420p out.yuv

Воспроизвести исходные данные видео
Извлечение необработанных аудиоданных


-ar означает чтение аудио, частота дискретизации аудио составляет 44100

-ac означает аудиоканал, ac2 означает двухканальный

-f Формат извлеченных аудиоданных PCM. s16le s означает знаковый, 16 бит, а le-little end означает прямой порядок байтов.

ffmpeg -i out.mp4 -vn -ar 44100 ac 2 -f s16le out.pcm

Воспроизведение необработанных аудиоданных

ffplay -ar 44100 -ac 2 -f s16le out.pcm

4: Команда фильтра


-vf указывает фильтр

crop, имя фильтра, за = следует параметр, in_w означает, что ширина уменьшается на 200, in_h означает, что высота уменьшается на 200

-c:v указывает используемый кодек, как упоминалось ранее

-c:a копия не обрабатывает аудио

ffmpeg -i test.mov -vf crop=in_w-200:in_h-200 -c:v libx264 -c:a copy out.mp4

5: команды кадрирования и слияния ffmpeg
Обрезать:


-ss момент времени обрезки

-t Продолжительность обрезки, в секундах

ffmpeg -i вх.mp4 -ss 00:00:00 -t 10 вых.ts

слияние:


-f concat означает объединение следующих файлов

-i указывает входной файл. inputs.txt — это список файлов, в котором указано видео, которое нужно объединить.

выход out.flv

ffmpeg -f concat -i inputs.txt out.flv

Среди них формат файла inputs.txt:

файл «1.mp4» файл «2.mp4»

Добавление копии будет использовать текущий метод кодирования и не будет выполнять процесс декодирования, что быстрее:

ffmpeg -f concat -i files.txt -c copy output.mp4

6: Команда преобразования изображений и видео
Видео в изображение


-r 1 означает передачу одного изображения в секунду

-f задает формат выходного файла, здесь image2

image-%3d.jpeg 表示图片名,%3d表示图片编号由3个数字组成。

ffmpeg -i in.flv -r 1 -f image2 image-%3.jpeg

Конвертировать изображение в видео

ffmpeg -i image-%3d.jpeg out.mp4

7: Прямая трансляция push/pull
Прямая трансляция

#-c аудио- и видеокодек, -a — аудиокодек, -v — видеокодек #-f определяет формат
#-re означает, что частота кадров синхронизирована с реальной частотой кадров ffmpeg -re -i out.mp4 -c copy -f flv rtmp://server/live/streamName

Прямая трансляция

ffmpeg -i rtmp://server/live.streamName -c copy dump.flv

Для получения более подробной информации о методах работы обратитесь к справке. Или просмотритеОфициальная документация FFmpeg

ffmpeg --help

Итак, FFmpeg успешно установлен!

1/5 - (1 голос)

Ответить

Ваш адрес электронной почты не будет опубликован. Обязательные поля помечены *