{"id":13769,"url":"\/distributions\/13769\/click?bit=1&hash=da8fb7cc928af0f74956a7c9d4d30384837351ecc8be71e7d0f51354b931e8e1","title":"\u0412\u0438\u0434\u0435\u043e\u0441\u0435\u0440\u0432\u0438\u0441 \u0441 \u0448\u0443\u043c\u043e\u043f\u043e\u0434\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u0449\u0438\u043a\u043e\u0432","buttonText":"\u0418\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u043e","imageUuid":"5b23fe7d-371f-5bf1-a2e9-132c9db027ed","isPaidAndBannersEnabled":false}

Компрессия видео с минимальной потерей качества

На веб сайтах и в мобильных приложениях все чаще стала использоваться 3d графика с анимацией, которая внедряется в видеоформате, а при загрузке видеошотов на Dribbble или загрузке NFT в формате видео, и многих других кейсах, есть жесткие ограничения по размеру загружаемого видео файла. Поэтому при подготовке видео ассетов нужно добиться максимального сжатия видео файла с минимальной потерей качества, что увеличит скорость загрузки.

Для компрессии можно использовать различное программное обеспечение, но лучшей компрессии видео с минимальной потерей качества я добился при помощи мощной кроссплатформенной библиотеки ffmpeg с открытым исходным кодом. Библиотека является бесплатной и работает через терминал. Ниже я покажу как ее можно установить и собственно осуществить конверсию видео.

Установка ffmpeg

1. Запускаем терминал на macOS

Нажмите COMMAND + SPACE, и введите Terminal

2. Устанавливаем Homebrew

Homebrew (brew) – это бесплатный менеджер пакетов с открытым исходным кодом, который позволяет устанавливать приложения и программное обеспечение в macOS

Для macOS High Sierra, Sierra, El Capitan и более ранних версий, выполните следующую команду:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Для MacOS Catalina, macOS Mojave и macOS Big Sur, выполните следующую команду:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

3. Устанавливаем пакет ffmpeg

Для установки ffmpeg выполните следующую команду:

brew install ffmpeg

Компрессия видео

После установки ffmpeg, загрузите видеофайл в папку Downloads и для осуществления компрессии видео выполните следующую команду:

ffmpeg -i /Users/Username/Downloads/Videofile.mp4 -vcodec libx264 -crf 24 /Users/Username/Downloads/compressed-videofile.mp4

-i: /Users/deniskovalev/Downloads/sgustok.mp4 - путь к видеофайлу.

-vcodec - кодек экспорта.

-crf - определяет уровень сжатия. Более низкое значение означает меньший уровень сжатия и следовательно больший размер файла. Я использую значения в диапазоне 20-30. Мой алгоритм: сперва пробую 30, и если вижу значительное ухудшение качества, то снижаю до 20, но в основном использую 24.

-/Users/deniskovalev/Downloads/compressed-sgustok.mp4 - название и путь к новому компрессированному видеофайлу.

Результат

В моем примере после компрессии видео получилось сжатие более чем в 10 раз с незначительной потерей качества:

13.6 mb -> 1 mb
0
7 комментариев
Написать комментарий...
photo.travel
Ответить
Развернуть ветку
Den
Ответить
Развернуть ветку
Vyacheslav Teplyakov

fgmpeg сидит под капотом у доброй половины конвертеров с gui, но если видео в разрезе небольшой анимации, типа в качестве замены gif, я бы использовал WebP. Хорошее качество, при минимальном размере, плюс все браузеры открывают просто из коробки.

Ответить
Развернуть ветку
Виталий Перелыгин

а лучше так: кодек на vp9, 2 прохода, режим лучшего сжатия (deadline best)

ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 0 -crf 24 -pass 1 -deadline best -an -f null /dev/null && \
ffmpeg -i input.mp4 -c:v libvpx-vp9 -b:v 0 -crf 24 -pass 2 -deadline best output.webm

Ответить
Развернуть ветку
yankura e

Спасибо 👍🏻

Ответить
Развернуть ветку
Павел Крафт

Про NFT с каждой плойки, очередной кэшбери?

Ответить
Развернуть ветку
Аксолотль по имени Сальхов

Ffmpeg это прекрасный швейцарский нож, на котором базируются многие конвертеры.
Я вот не стал заучивать все миллиарды ключей, а купил себе gui для ffmpeg под мак - ff•works (10 или 20 баксов), он хорош ещё и тем, что можно, сделав настройки в интерфейсе, посмотреть, как это вызывается в терминале (а потом этот набор ключей уже прописать в скрипте).
Под win есть бесплатный FfmpegYAG. Ещё есть бесплатный кроссплатформенный ShutterEncoder. Но резимируя: да, ffmpeg рулит.

PS. в принципе crf 15..18 даёт почти идеальную картинку для живого видео, бОльшие значения уже надо подбирать опытным путём, если есть требования к размеру. Ну и всё, конечно, зависит от характера видео. То, что на скриншоте, наверняка безболезненно и в 24..30 ужмется: мало цветов и мелких деталей.

Ответить
Развернуть ветку
Читать все 7 комментариев
null