На сайте есть анимационный блок, анимация которого производится с применением html5, css, и js. Можно ли как то записать эту анимацию в gif? Использую selenium и метод getScreenshotAs.
Изначально задумка была такая: наделать кучу скриншотов, а потом слепить их в gif файл, но проблема в том, что через метод getScreenshotAs скриншот делается очень долго(350-400мс), поэтому нет никакой плавности(получается 3-4 кадра в секунду, а то и меньше).
Вопрос в следующем, можно ли решить как то эту проблему, если нельзя, то может есть какой то другой способ? Варианты с записью экрана не подойдут, потому что это все будет делаться на сервере, без gui.
Можно отрисовывать Selenium на виртуальный фреймбуфер Xvfb и записывать видео, например, через ffmpeg.
xvfb-run --listen-tcp --server-num=123 --auth-file /tmp/xvfb.auth -e /dev/stdout -s "-ac -screen 0 1024x768x24" firefox ru.stackoverflow.com
123 - номер дисплея xserver на ваш выбор
/tmp/xvfb.auth - путь, по которому будет сохранены авторизационные данные
1024x768x24 - желаемая геометрия фреймбуфера
firefox ru.stackoverflow.com - открывает этот сайт в Firefox; замените на вашу строку запуска Selenium
ffmpeg -f x11grab -i :123 -video_size 1024x768 -codec:v libx264 -r 12 video.mp4
-f x11grab -i :123 - источник видеопотока: xserver, 123й дисплей
-video_size 1024x768 - разрешение видеофайла
libx264 - желаемый видеокодек
-r 12 - частота кадров
Для gif-файла кодек указыать не нужно:
ffmpeg -f x11grab -video_size 1024x768 -i :123 -r 12 1.gif
xwd -display :123 -root | convert xwd:/dev/stdin png:1.png
-display :123 - все тот же 123й дисплей
-root - не имеет отношения к пользователю root; указывает, что нужен скриншот всего рабочего стола, а не конкретного окна
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости