FFmpeg — это мощный мультимедийный фреймворк, который можно использовать для декодирования, кодирования, перекодирования, мультиплексирования, демультиплексирования, потоковой передачи, фильтрации и воспроизведения практически любых медиафайлов, с которыми вы сталкиваетесь. Эта программа поддерживает даже самые малоизвестные и древние форматы файлов, вплоть до самых передовых форматов файлов. FFmpeg — это кроссплатформенный инструмент, доступный для Linux, macOS, Windows, BSD, Solaris и других. В этой статье показано, как преобразовать MKV в MP4 в Ubuntu с помощью FFmpeg.
Установка FFmpeg в Ubuntu
FFmpeg — бесплатное программное обеспечение с открытым исходным кодом. Из-за своей популярности FFmpeg доступен прямо из официального репозитория пакетов для большинства дистрибутивов Linux, включая Ubuntu.
FFmpeg также доступен в магазине Snapcraft в виде пакета оснастки. Преимущество использования пакета snap состоит в том, что он всегда предоставляет самую последнюю версию программного обеспечения.
Установка FFmpeg из репозитория пакетов по умолчанию
Запустите терминал и обновите кеш APT, введя следующее.
$ sudo apt update
Затем установите пакет «ffmpeg». APT автоматически загрузит и установит все необходимые зависимости.
$ sudo apt install ffmpeg
Установка FFmpeg из Snapcraft
Это рекомендуемый метод установки FFmpeg. Для установки пакета snap требуется предварительно установить snappy (менеджер пакетов snap).
В последней версии Ubuntu по умолчанию настроен диспетчер пакетов snap. Однако, если это не так, вы можете сразу настроить диспетчер пакетов.
$ sudo apt update && sudo apt install snapd -y
Теперь система готова к загрузке и установке пакетов оснастки. По умолчанию хранилище Snapcraft является источником пакетов snap. Проверьте FFmpeg в магазине Snapcraft.
$ sudo snap install ffmpeg
Использование FFmpeg для преобразования MKV в MP4
Базовая конверсия
FFmpeg — сложный инструмент, поддерживающий множество опций. Любая команда FFmpeg будет иметь следующую структуру.
$ ffmpeg -i <input> <options> <output>
Здесь флаг «-i» обозначает входной файл.
Следующая структура команд используется для простого преобразования файла мультимедиа в другой формат. В этом случае файл будет преобразован из формата «dummy.mkv» в формат «dummy.mp4». FFmpeg автоматически определит все необходимые параметры для конвертации.
$ ffmpeg -i dummy.mkv dummy.mp4
Чтобы отключить дублирующие выходы (уведомления об авторских правах, библиотеки и т. Д.), Добавьте флаг «-hide_banner».
$ ffmpeg -hide_banner -i dummy.mkv dummy.mp4
Спецификация кодеков
Также можно вручную определить кодеки, которые FFmpeg будет использовать для выполнения действий. Ознакомьтесь с официальной документацией FFmpeg о поддерживаемых кодеках здесь. Если вы не уверены, то, вероятно, лучшим вариантом будет использование «копирования» в качестве кодека. Это указывает FFmpeg копировать аудио- и видеопоток непосредственно в новый формат файла без выполнения какого-либо фактического преобразования. Это рекомендуемый метод для большинства преобразований файлов.
$ ffmpeg -hide_banner -i dummy.mkv -c copy dummy.mp4
Здесь флаг «-c» — это краткая форма «-codec», обозначающая, какой кодек использовать.
FFmpeg также обеспечивает полный контроль над отдельными потоками (аудио, видео, субтитры и т. Д.). Например, можно выбрать аудио- или видеофайлы, которые будут обрабатываться определенным кодеком.
$ ffmpeg -hide_banner -i dummy.mkv -c:v libx264 -c:a copy dummy.mp4
Здесь флаг «-c: v» обозначает кодек для видеопотока, а флаг «-c: a» обозначает аудиопоток.
Обратите внимание, что для работы функции «копирования» FFmpeg должен поддерживать мультиплексирование целевого потока в выходной контейнер. Иначе не получится.
Ниже приведен еще один быстрый пример использования этой функции, но с использованием вместо нее настоящего кодека. Мы конвертируем файл MKV в MP4 с помощью кодека libx264. Обратите внимание, что libx264 применим только для потокового видео.
$ ffmpeg -hide_banner -i dummy.mkv -c:v libx264 dummy.mp4
Влияние на качество контента
Помимо базового преобразования, FFmpeg также позволяет пользователям управлять качеством контента (битрейтом, частотой кадров, шириной / высотой видео и т. Д.). Все эти особенности влияют на качество медиаконтента. Обратите внимание, что изменение любого из этих свойств файла мультимедиа повлияет на то, как зритель видит и слушает мультимедиа, содержащуюся в файле. Конечно, способность человека видеть и слышать непросто. Иногда небольшие изменения могут существенно повлиять на качество.
Начнем с битрейта. Чтобы изменить битрейт исходного видео, используйте следующую структуру команд.
$ ffmpeg -hide_banner -i dummy.mkv -c:a copy -c:v libx264 -b:v 1M dummy.mp4
Здесь флаг «-b: v» обозначает битрейт видео.
Частота кадров — еще один важный фактор в определении качества контента. Чтобы изменить частоту кадров файла MKV, мы будем использовать следующую структуру команд.
$ ffmpeg -hide_banner -i dummy.mkv -c:a copy -c:v libx264 -r 30 dummy.mp4
Здесь флаг «-r» означает желаемую частоту кадров.
Помимо визуальных изменений, изменение размера видео также повлияет на размер выходного файла. Чтобы изменить размер видео на 1280×720 пикселей, мы будем использовать следующую структуру команд.
$ ffmpeg -hide_banner -i dummy.mkv -c:a copy -c:v libx264 -s 1280×720 dummy.mp4
Заключение
FFmpeg — мощный инструмент для работы с медиафайлами. В этом руководстве показано, как использовать FFmpeg для преобразования файлов MKV в MP4.