PDA

Просмотр полной версии : Конвертация ролика swf в avi на стороне сервера


mikhailk
19.06.2013, 00:31
Интересует, как это делают.

В клиенте собирается анимационная открытка или презентация. Скажем, секунд 20-50. Соответственно, в клиенте есть плеер, который ее может проиграть. Потом по кнопке данные о контенте открытки/презентации сохраняются на сервер и уже там (на сервере) на основе этих данных каким-то образом записывается avi.

Очень интересует, каким образом.
Или если у кого есть ссылки на технологии, буду признателен.

mikhailk
19.06.2013, 17:00
Тулзов по ручной конвертации swf в видео достаточно много.
Интересует, как это сделано на сервере без участия пользователя.

Например, есть такой сервис, как www.powtoon.com.
Пользователь собирает презентацию и одним кликом публикует ее в ютубе как видео, при этом совершенно точно на клиенте никакого видео не рендерится и на сервер не отправляется.

mikhailk
19.06.2013, 20:21
Например, презентация сразу же может собираться как flv.

Собрать презентацию как flv - не вопрос. Но тогда должен появиться соответствующий объем передачи данных при сохранении на сервере. Но его в упомянутом сервисе нет. Сохранение практически мгновенное, так что, как ни крути, они как-то решили вопрос конвертации в видео на стороне сервера.

maxkar
19.06.2013, 23:59
Общую схему okouser уже описал. Что-то рендерится в кадры и потом из кадров собирается видео. Второй этап вполне может быть ffmpeg'ом каким-нибудь выполняться. В первом же шаге (рендеринг) возможны варианты. Скорее всего, передается описание сцены (тип объекта, положение, настройки). А на сервере рендерятся все нужные фреймы. Если там что-то простое, все объекты заранее могут быть отрендерены в нужное число картинок. Если что-то более сложное, может использоваться векоторный рендерер (из него генерируется swf и описание для рендерера мувика). Если же не лень заморачиваться, то и swf-ки можно рендерить с различным успехом. Берется swf file specification и честно реализуется в нужном объеме.

Рендерить некоторый объем swf - вполне реально. Технически почти ничего сложного нет (просто объем большой). Немного доставляет оригинальное понятие заливки в swf. Я, например, делал программу, которая разбирает флешку на компоненты (описание + картинки, звуки). И еще одну, которая по описанию рендерит шейпы. Кстати, действительно рендерила и вроде бы достаточно честно. MovieClip'ы не делал (не помню, почему и в какой момент забросил), но при желании все делается нужной сложности (без поддержки morphing'а гораздо проще, чем с поддержкой, например). Это все - без as3-кода (код тоже можно, но там объем работы огромный). Для разбора на компоненты можно swfmill взять и реализовывать только рендерер.

mikhailk
20.06.2013, 16:56
А зачем отправлять что-то на сервер, если у нас уже есть готовый flv, который можно размещать на ютубе?!

В том-то и дело, что вопрос в данном топике стоит не "как сделать?", а "как сделано?" :)
Почувствуйте разницу.


В первом же шаге (рендеринг) возможны варианты. Скорее всего, передается описание сцены (тип объекта, положение, настройки). А на сервере рендерятся все нужные фреймы. Если там что-то простое, все объекты заранее могут быть отрендерены в нужное число картинок. Если что-то более сложное, может использоваться векоторный рендерер (из него генерируется swf и описание для рендерера мувика).

Да, это, пожалуй, похоже на правду. Думаю, на сервере никакого swf нет. Есть какой-то свой формат специально для покадровой сборки видео.