Анимированный Webp - изменение частоты кадров
Есть ли какой-нибудь инструмент или скрипт для пакетного преобразования анимированных изображений webp?
Я хочу создать анимированные эскизы из своих анимированных изображений webp:
- изменить размер изображения
- снизить качество (сжатие с потерями)
- уменьшить частоту кадров
Я пробовал такие инструменты, как ImageMagick, но они не могут изменить частоту кадров.
2 ответа
Если вы просто хотите изменить частоту кадров,webpmux
инструмент от Google (доступен какwebp
package в вашей ОС 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
вариант.