2010-10-11 6 views
13

¿Cuál es la mejor manera de agregar la funcionalidad de subida, codificación y transmisión de video a mi aplicación Rails?¿La mejor manera de agregar funcionalidad de subida, codificación y transmisión de video a mi aplicación Rails?

Estoy pensando en una mezcla como: Aplicación Rails + Video Online Encoder + Amazon S3. Qué piensas ?

Para el Video Online Encoder (VOE), ¿cuál es el más fácil de usar con Rails: heywatch, panvidea, encoding.com, pandastream, ...?

Por cierto, la aplicación permitirá a los usuarios reproducir videos transmitidos con Textos, Esquemas y Sonidos dinámicos agregados a ellos en el tiempo de ejecución. Hay un ejemplo:

  1. en carriles de aplicación (backoffice o frontoffice): subir un video (.mov, .avi, ...)
  2. VOE: la codificación de vídeo en formato FLV + almacenamiento en Amazon S3
  3. en la aplicación Rails, backoffice: en una aplicación Flash hecha en casa, "agregue" al video un Texto y un Esquema mostrados después de 1 minuto, por ejemplo (información almacenada en el DB de la aplicación Rails).
  4. en la aplicación rails, frontoffice: reproduce el video transmitido desde Amazon S3 (+ Cloudfront) en un reproductor flash hecho en casa que muestra dinámicamente el texto y el esquema sobre el video después de 1 minuto de reproducción.

La parte que realmente no entiendo es la transmisión de video FLV. Estaba pensando que Cloudfront podría hacer eso.

espero ser lo suficientemente claro ;-)

Gracias a todos por sus respuestas!

Respuesta

7

Zencoder se ve bien y es probable que cuenta con el apoyo de la API que desea. Use flash para el jugador que estoy adivinando? Necesitarás FMS o Red5 para eso. Aquí hay un enlace a un ejemplo muy simple que transcodifica algo almacenado en S3 para usted, ¡en Ruby por supuesto !: http://zencoder.com/docs/integration-libraries/#library

+0

¡Thx! Sí, crearé una pequeña aplicación Flash para mostrar videos transmitidos. Estaba pensando que Amazon CloudFront podría transmitir la película FLV, pero si lo entiendo bien, ¿todavía necesito una solución de transmisión en mi servidor Rails? –

+0

NO PIENSO, pero nunca he jugado con él. Es posible que pueda obtener flash para cargar una flv de forma remota, pero no será una transmisión (por lo que no será compatible con la búsqueda sin almacenamiento en memoria intermedia primero), por lo que la experiencia del usuario sufrirá. –

+0

¡Maldición! Administrar la aplicación de videos transmitidos es más difícil de lo que pensé en primer lugar :-) Pero ¿qué pasa con esto: http://www.learningapi.com/streamingmedia-articles/amazon-cloudfront-streaming/ No es que un flujo de video real a través de CloudFront sin FMS/Red5 en mi servidor? –

1

Me sentiría escéptico al usar un servicio gratuito de terceros en línea. Consideraría usar la codificación de video del lado del servidor porque el servicio web de terceros podría tener un rendimiento variable y básicamente podría hacer cualquier cosa con el video. Si no tiene muchas CPU, entonces un servicio de terceros podría ser una buena opción.

EDIT: This Link que debería ayudar un poco

+0

Thx. ¿Me puede recomendar algún tipo de codificación de video del lado del servidor que funcione bien con Rails? ¿Crees que mi solución (Rails + VOE + S3) será compleja de desarrollar/mantener? –

+0

* Pregunta editada *. Creo que me parece bien, el codificador de video en línea (como mencioné anteriormente) me siento un poco escéptico al respecto. – alexy13

+0

Thx for the Link, lo intentaré ... –

9

responsabilidad: Soy un co-fundador de transloadit.com.

Lo desanimaría de rodar su propia solución. El enlace que publique alexy13 seguramente le dará una aplicación que puede recibir videos de los usuarios y codificarlos. Sin embargo, terminará con algunas limitaciones:

  • Los videos redimensionados se distorsionarán a menos que su relación de aspecto sea 4: 3. Para evitar eso, debe oler su dimensión antes de la conversión y luego aplicar un conjunto de filtros de relleno a ffmpeg. Olfatear la dimensión correctamente requerirá un cóctel de al menos 2 herramientas de líneas de comando (ffmpeg en sí y exiftool) + un montón de código loco para tratar con relaciones de aspecto de visualización que difieren de las proporciones de aspecto de píxeles.
  • No se convertirán todos los videos. A veces es necesario hacer olfateo adicional en el contenido del video y establecer algunos indicadores personalizados, de lo contrario, recibirá un error. De acuerdo, el 95% de todos los videos probablemente funcionarán, pero obtener esos últimos 5% es difícil.
  • Necesitará un servidor web adicional que codifique el video; de lo contrario, su sitio será muy lento mientras se codifica un video. Puede solucionar esto utilizando el comando nice para limitar los recursos de CPU utilizados por ffmpeg, pero eso dará como resultado tiempos de codificación significativamente más largos.

Esta es una breve lista de problemas, pero en general está a ~ 100 horas de tener un sistema que funciona sin saltos y puede soportar cierta carga.

Así que le recomiendo que reconsidere ir con un servicio. Nuestros competidores son bastante amables, pero por supuesto que también estaría muy feliz si revisaran nuestro servicio (transloadit.com) o me dieran un correo electrónico a [email protected] si tienen alguna pregunta.

También hay una aplicación de ejemplo para el uso de Rails3 transloadit con clip y S3:

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

--fg

+0

Thx por su respuesta. Estoy de acuerdo, no haré mi propio codificador. Prefiero ir con un VOE como he dicho. Transloadit también suena bien y el precio es justo. :-) Mi problema principal es sobre la parte de transmisión. ¿Crees que puedo usar Transloadit + S3 + CloudFront + myOwnCustomFlashPlayer y disfrutar de una transmisión de video real? Creo que es posible, pero realmente necesito una confirmación de un experto ;-) http://www.learningapi.com/streamingmedia-articles/amazon-cloudfront-streaming/ –

+1

Sí, de hecho, uno de nuestros clientes está haciendo exactamente eso: Transloadit + S3 + CloudFront + FlowPlayer -> http://www.tvype.com/en/market. CloudFront maneja la transmisión perfectamente, por lo que puede omitir el video. –

+0

@felixge gracias por este comentario. Completaste la última pieza de mi rompecabezas (CloudFront). Transloadit se ve genial. – Palantir

Cuestiones relacionadas