Анимированный Webp - изменение частоты кадров

Есть ли какой-нибудь инструмент или скрипт для пакетного преобразования анимированных изображений webp?

Я хочу создать анимированные эскизы из своих анимированных изображений webp:

  • изменить размер изображения
  • снизить качество (сжатие с потерями)
  • уменьшить частоту кадров

Я пробовал такие инструменты, как ImageMagick, но они не могут изменить частоту кадров.

2 ответа

Если вы просто хотите изменить частоту кадров,webpmuxинструмент от Google (доступен какwebppackage в вашей ОС Linux) может сделать эту работу быстро и легко.

Сначала вам нужно узнать текущий интервал длительности исходного файла — это можно сделать несколькими способами, ноwebpinfoиз того же пакета, пожалуй, самый простой -webpinfo source.webpобратите внимание на продолжительность, указанную для кадров.

Затем рассчитайте новую желаемую частоту кадров — если исходная анимация имела FPS 10, она будет показывать продолжительность 100. Чтобы изменить ее на 25, разделите продолжительность 100 мс на 2,5 (множитель для перехода от 10 к 25), что получить целевую продолжительность 40 мс.

Наконец запуститьwebpmux -duration 40 source.webp -o destination.webpдля создания копии исходной анимации с измененной длительностью между кадрами.

Пример

10 кадров в секунду, половинный размер:

      ffmpeg -i input.webp -vf "fps=10,scale=iw/2:-1" -quality 25 output.webp

Чтобы закодировать WebP, ffmpeg должен быть скомпилирован с --enable-libwebp.


изменить размер изображения

Используйте масштабный фильтр .

снизить качество (сжатие с потерями)

  • Использовать -qualityвариант для кодировщика libwebp. Диапазон 0-100. По умолчанию 75.
  • При желании используйте -preset вариант для соответствия типу содержимого.

Видеть ffmpeg -h encoder=libwebp для получения дополнительных опций и информации.

уменьшить частоту кадров

Используйте фильтр fps или -r вариант.

Другие вопросы по тегам