Лучший способ добавить функции загрузки, кодирования и потокового видео в мое приложение Rails? - PullRequest
14 голосов
/ 11 октября 2010

Каков наилучший способ добавить функции загрузки, кодирования и потоковой передачи видео в мое приложение Rails?

Я думаю о смеси, такой как: приложение Rails + видео Online Encoder + Amazon S3.Как вы думаете?

Для Video Online Encoder (VOE), который легче использовать с Rails: heywatch, panvidea, encoding.com, pandastream, ...?

Кстати, приложение позволит пользователям воспроизводить потоковое видео с динамическими текстами, схемами и звуками, добавленными к ним во время выполнения.Вот пример:

  1. в приложении rails (backoffice или frontoffice): загрузка видео (.mov, .avi, ...)
  2. VOE: кодирование видео в формате FLV + хранениев Amazon S3
  3. в приложении rails, backoffice: в самодельном приложении Flash «добавьте» к видео, например, текст и схемы, показанные через 1 минуту (информация хранится в базе данных приложения Rails).
  4. в приложении rails, frontoffice: воспроизводите потоковое видео из Amazon S3 (+ Cloudfront) в домашнем Flash-проигрывателе, который динамически показывает текст и схему поверх видео после 1 минуты воспроизведения.

Часть, которую я действительно не понимаю, - это поток FLV-видео.Я думал, что Cloudfront может сделать это.

Надеюсь, я достаточно ясен; -)

Спасибо всем за ответы!

Ответы [ 3 ]

9 голосов
/ 14 октября 2010

Отказ от ответственности: я являюсь соучредителем transloadit.com.

Я бы не рекомендовал вам предлагать собственное решение.Ссылка, размещенная alexy13, безусловно, даст вам приложение, которое может получать пользовательские видео и кодировать их.Тем не менее, вы получите несколько ограничений:

  • Видео с измененным размером будут искажены, если их соотношение сторон не будет 4: 3.Чтобы избежать этого, вам нужно определить их размер перед преобразованием, а затем применить набор отступов -vfilters к ffmpeg.Для корректного определения размера потребуется комбинация как минимум из 2 инструментов командной строки (самого ffmpeg и exiftool) + куча сумасшедшего кода для работы с пропорциями экрана, которые отличаются от пропорций пикселя.
  • Не все видеобудет конвертировать.Иногда вам нужно сделать дополнительный анализ видеофайла и установить несколько пользовательских флагов, в противном случае вы получите сообщение об ошибке.Конечно, 95% всех видео будут работать, но получить последние 5% сложно.
  • Вам понадобится дополнительный веб-сервер, который выполняет кодирование видео, иначе ваш сайт будет очень медленным, пока видеокодируется.Вы можете обойти это, используя команду nice для ограничения ресурсов ЦП, используемых ffmpeg, но это приведет к значительному увеличению времени кодирования.

Это краткий список проблем, но обычно вы~ 100 часов от наличия системы, которая работает без сбоев и может справиться с некоторой нагрузкой.

Поэтому я бы посоветовал вам еще раз рассмотреть возможность использования службы.Наши конкуренты очень хорошие, но, конечно, я также был бы очень рад, если бы вы зашли на наш сервис (transloadit.com) или отправили мне электронное письмо по адресу felix.geisendoerfer@transloadit.com, если у вас есть какие-либо вопросы.

Существует также пример приложения Rails3 для использования transloadit со скрепкой и S3:

http://github.com/joerichsen/transloadit-paperclip-example

- fg

8 голосов
/ 14 октября 2010

Zencoder выглядит круто и, вероятно, имеет необходимую поддержку API.Я использую вспышку для плеера?Для этого вам понадобится FMS или Red5.Вот ссылка на действительно простой пример, который перекодирует что-то для вас в S3, конечно же, в Ruby !: http://zencoder.com/docs/integration-libraries/#library

1 голос
/ 11 октября 2010

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

РЕДАКТИРОВАТЬ: Эта ссылка должна помочь вам немного

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...