Рендеринг HTML5 анимации на стороне сервера? - PullRequest
8 голосов
/ 27 апреля 2011

Мы создаем анимацию, используя HTML5 + Javascript. Теперь мы хотели бы преобразовать эти анимации в видеофайлы (MPEG4 или другие, неважно), чтобы люди с ограниченными возможностями браузера могли также видеть анимации. Анимации содержат звуковую дорожку.

Мы ищем решения, в которых HTML-страница будет отображаться и записываться на стороне сервера. Я знаю, что уже существуют инструменты для рендеринга миниатюр веб-страниц и других статических изображений. Однако в нашем случае мы должны вывести видеофайл.

Какие есть варианты? Является ли безголовый X-сервер + Firefox способом? Желательно, чтобы мы работали в облаке (Amazon EC2).

Также, если нам нужно подумать о чем-то особенном при воспроизведении анимации на скорости не в реальном времени, я бы хотел услышать - например, синхронизация аудио HTML5 с анимацией.

Ответы [ 4 ]

4 голосов
/ 10 мая 2012

Просто отметим, что мы решили эту проблему с помощью

  • Запуск Firefox на автономном сервере.Сервер с приличной видеокартой.

  • Наличие сценария управления Selenium Python для запуска / остановки рендеринга

  • Пользовательский цикл рендеринга, который будет использоватьAPI Firefox XPCom для подачи <canvas> необработанных пикселей непосредственно в конвейер кодирования

  • Пользовательский цикл рендеринга Javascript, где часы не поступают из реальных часов, но нарезает кадры для рендерера настабильная частота кадров, которая не в реальном времени

Довольно сложная система, поэтому она не помещается в один блок ответа: (

2 голосов
/ 27 апреля 2011

Одна вещь, которая может сработать, в зависимости от вашей анимации, заключается в создании анимированного GIF. При наличии достаточного количества неподвижных изображений анимации, вы сможете превратить их в видео с помощью подходящего программного обеспечения. Это довольно грубое решение, но если вы можете продвигать анимацию «кадр за кадром», это может сработать.

0 голосов
/ 02 августа 2012

Что касается инструментов, у меня был довольно приличный опыт работы с этими инструментами Ruby:

  • самоцвет без головы поддерживает захват видео с помощью ffmpeg
  • капибара позволит вам управлять, например, светлячок.

Я понятия не имею, как они справляются со звуком, хотя

0 голосов
/ 27 апреля 2011

Звучит интересно.Я сделал то же самое с библиотекой QtWebKit, для работы которой требуется безголовый X-сервер.Я занимался преобразованием веб-страниц в PDF в больших масштабах.Возможно, имеет смысл поискать некоторые инструменты webkit2pdf, чтобы увидеть пример, из которого вы можете построить.

Я бы взглянул на библиотеку и совместил ее с другим решением для записи.

...