Ruby & Ruby on Rails « Работа с видео в RoR

Задача - написать аналог youtube на Ruby on Rails.
Тоесть необходимо реализовать регистрацию пользователей, авторизацию, загрузку видео, его конвертацию в FLV, создание сообщения пользователем(выкладывание видео), комментарии к видео.
Уже реализовал регистрацию пользователей, авторизацию, возможность создания пользователем сообщения(пока только текстового).
Не ясно как работать с видео - т.е произвести его загрузку, конвертацию и прикручивание к сообщению.
Если с прикручиванием к сообщению более менее понятно - можно использовать флеш плеер с ссылкой на видео (откуда эту ссылку брать, ведь видео выкладывает загружает пользователь???), то с загрузкой видео и его конвертацией не понятно вообще.
Может добавить дополнительное поле в таблице пользователей, где будет храниться ссылка на загруженное видео (опять же не понятно как его загружать и конвертировать)...

Какие будут предложения?

1 ответов


Алгоритм может быть такой:
1. Загрузить файл и положить его во временную папку. В модели видеофайлов пометь как новый не сконвертированный.
2. Далее одним руби не обойдешься. Для конвертации рекомендую ffmpeg или аналог. Конвертируешь им (лучше асинхронно, то есть не в момент загрузки файла, рекомендую gem delayed_job) и сохраняешь полученный файл в публичной части и меняешь статус в модели на "сконвертировано", упростит задачу работы с файлами gem carrirwave или аналог.
3. Если конвертируешь в flv, подойдет бесплатный флеш-плеер jw player или аналог.
Вот, примерно как-то так.


Для работы с виде использую демона из статьи - http://habrahabr.ru/blogs/development/48187/
Работает как часы.

Нужно только учесть, что для nginx появился модуль для стриминга не только flv, но и mp4