Главная
» LINUX
»
Как перекодировать видеофайлы в Linux с помощью HandBrake или FFmpeg
Как перекодировать видеофайлы в Linux с помощью HandBrake или FFmpeg
Для перекодирования видеофайлов в Linux можно использовать HandBrake для простого графического интерфейса или FFmpeg, если требуется точное управление из командной строки. HandBrake проще для разовых преобразований; FFmpeg лучше подходит для повторяющихся команд, автоматизации и выбора сложных кодеков.
Важное отличие: транскодирование декодирует видео- или аудиопоток и кодирует его заново, что занимает время и может снизить качество. Если вам нужно только изменить контейнер, например, с MKV на MP4, и существующие кодеки совместимы, ремукс может скопировать потоки без повторного кодирования. В официальной документации FFmpeg рекомендуется копирование потоков, когда транскодирование не требуется.
Метод 1: Транскодирование видео с помощью HandBrake
HandBrake — более простой вариант, если вы предпочитаете графический интерфейс. Для Linux проект HandBrake рекомендует использовать версию Flatpak из Flathub в качестве наиболее удобного поддерживаемого варианта установки. См. официальное руководство по установке HandBrake для Linux . Если Flatpak и Flathub уже включены, установите их с помощью команды:
flatpak install fr.handbrake.ghb
1. Откройте исходное видео.
Запустите HandBrake, выберите «Открыть исходный код» , затем выберите видео, которое хотите конвертировать. HandBrake также поддерживает перетаскивание файлов различных типов. После сканирования исходного файла отобразится название, разрешение, частота кадров, звуковые дорожки и другие подробности.
Выберите исходный файл, который вы хотите закодировать с помощью HandBrake.
2. Выберите предустановку
Выберите предустановку, соответствующую устройству или программному обеспечению для воспроизведения, которое вы планируете использовать. В текущей документации HandBrake указано, что Fast 1080p30 — это хорошая отправная точка для широкой совместимости. Предустановка может изменять максимальное разрешение, частоту кадров, видеокодек, настройки звука и контейнер.
Проверьте необходимые настройки, затем укажите имя файла и папку назначения. Не предполагайте, что HandBrake автоматически сохранит файл в папку «Видео»: выходные данные будут записаны в указанную вами папку назначения . В кратком руководстве по HandBrake специально рекомендуется проверить это перед началом работы.
Выберите понятное имя выходного файла и проверьте папку назначения.
4. Начните кодирование.
Нажмите «Начать кодирование» . HandBrake отображает ход выполнения и уведомляет вас о завершении задачи. Скорость кодирования зависит от исходного материала, разрешения, выбранного кодировщика, настроек качества, фильтров и вашего оборудования, поэтому фиксированного времени завершения нет.
HandBrake сообщает о ходе выполнения и предполагаемом времени транскодирования.
Метод 2: Перекодирование видео с помощью FFmpeg
FFmpeg идеально подходит, когда вам нужна воспроизводимая команда или необходимо обработать множество файлов. Установите ffmpegпакет из вашего дистрибутива Linux или перейдите по ссылкам на официальной странице загрузки FFmpeg . Версии пакета и включенные кодировщики могут различаться в зависимости от дистрибутива.
1. Убедитесь, что FFmpeg доступен.
Откройте терминал и выполните следующую команду:
ffmpeg -version
Установленная сборка FFmpeg определяет, какие кодеки и аппаратные кодировщики доступны.
2. Проверьте входной файл.
Перейдите в папку с вашим видео и проверьте потоки перед конвертацией:
cd ~/Videos
ffmpeg -i sample-video.mkv
Проверка входного сигнала позволяет узнать используемые кодеки, разрешение, частоту кадров и аудиоформат.
3. Преобразование видео в формат H.264 и аудио в формате AAC в формате MP4.
Для получения предсказуемого и широко совместимого MP4-файла, вместо того чтобы полагаться только на расширение выходного файла, укажите кодеки:
Здесь libx264кодируется видео H.264, crf 22контролируется качество, mediumбалансируется скорость и сжатие, а для звука используется AAC. Более низкие значения CRF обычно означают более высокое качество H.264 и больший размер файлов. Если ваша сборка FFmpeg не включает запрошенный кодировщик, выберите тот, который поддерживает ваша сборка.
В процессе кодирования FFmpeg выводит информацию о кадре, времени, битрейте и другие данные о ходе выполнения.
4. Используйте потоковое копирование, когда вам нужен только новый контейнер.
Если исходный кодек уже содержит кодеки, поддерживаемые целевым контейнером, избегайте полного перекодирования и вместо этого выполните ремуксирование:
-c copyКопирует совместимые потоки без декодирования и повторного кодирования. Обычно это намного быстрее и позволяет избежать потери качества при генерации файлов, но может привести к ошибке или созданию неподходящего файла, если исходные кодеки недействительны для выбранного контейнера.
Функция копирования потока изменяет контейнер без повторного кодирования совместимых аудио- и видеопотоков.
Какой вариант следует выбрать?
Используйте HandBrake, если вам нужен графический интерфейс с пошаговыми инструкциями, предустановки для устройств и простой контроль качества.
Используйте FFmpeg, когда вам необходимы явные кодеки, пакетная обработка, скрипты, фильтры или повторяющиеся команды.
Используйте ремуксирование, когда кодеки уже подходят, и вам нужен только другой контейнер.
Для большинства случаев воспроизведения на настольных компьютерах файл MP4 с видео H.264 и аудио AAC остается практичным вариантом совместимости. Если целевое устройство или сервис имеют собственные спецификации загрузки, сначала следуйте этим спецификациям, а не конвертируйте только по расширению.