2012-01-16 14 views
5

Mi pregunta es acerca de cómo debo hacer esto. Mi sitio permite a los usuarios subir videos (1 minuto a 5 minutos de duración). En este momento, el usuario elige el archivo de video, luego empiezo a subirlo a un iframe. El usuario luego completa cierta información sobre el video. Después de completar el formulario, esperaba permitir que el usuario hiciera otra cosa mientras yo cargaba ese lado del servidor de video.Proceso de carga de video y Amazon S3

En este momento, ese sistema funciona, pero después de que completen el formulario y presionen 'enviar', el navegador comienza la carga y el usuario no puede tomar ninguna acción hasta que no se haya cargado. Este es mi primer sitio web que trabaja con archivos como este, por lo que cualquier sugerencia es bienvenida.

Respuesta

0

La carga es complicada porque el estándar HttpRequest no puede mostrar un porcentaje de la carga en la mayoría de los navegadores sin un sondeo del lado del servidor mediante ajax, y si es un archivo grande, el usuario puede esperar durante años sin siquiera viendo si la carga ha sido exitosa.

Existen pocas soluciones para esto. (1) una gran cantidad de personas utilizan un ojbect Flash para hacer esto, y hay muchos ejemplos:

http://www.plupload.com/example_queuewidget.php

http://blueimp.github.com/jQuery-File-Upload/

.. hay un montón sólo Google til u encontrar uno que te guste

(2) si no desea utilizar un pequeño swf para esto, debe publicar el archivo utilizando ajax y seguir revisando el servidor (con ajax) para responder con el tamaño del archivo actual, que es mucho más complicado.

Si desea que su usuario pueda seguir usando el sitio y otras páginas en lugar de esperar en la misma página, ¿por qué no utilizar una ventana emergente para mostrar la consola de carga real? o incluso un marco (más desagradable).

Saludos Un procesamiento de vídeo

4

en el contexto de las aplicaciones web es notoriamente difícil hacerlo bien (al menos sin tener que gastar un montón de tiempo precioso mejor utilizado en otros lugares) - dada mi experiencia es probable que se enfrentan a más problemas y/o necesidades avanzadas en el camino en consecuencia, por ejemplo la generación de miniaturas, conversión de formato, etc.

Por lo tanto voy a tomar "alguna sugerencia son bienvenidos" literalmente aquí y lo recomiendo encarecidamente a la salida Transloadit - su oferta incluye su funcionalidad deseada, además de un montón más (opcional por supuesto):

  • flexible, rápido y escalable carga de archivos y codificación con nuestra API:
    • codificación de vídeo & audio en cualquier formato
    • cambio de tamaño, marca de agua y convertir imágenes
    • almacenar archivos S3, CloudFiles o SFTP
    • Ponga una barra de progreso de carga en su sitio
    • externalizar la gestión de archivos y concentrarse en su aplicación!

Hay demos para la mayoría de las funciones (que pone de relieve muchos casos de uso de procesamiento de imágenes/vídeo en el lateral), por ejemplo, que muestra cómo Store the originally uploaded files in your S3 bucket o cómo combinar las características Encode a video, extract 8 thumbnails and store everything in your S3 bucket.

Por favor asegúrese de leer Notifications vs Redirect Url, lo que explica sus opciones con respecto al caso de uso a la mano, en concreto es probable que desee utilizar Notificaciones para evitar el bloqueo del usuario:

Si utiliza el jQuery complemento y establezca su parámetro de espera en falso, tendrá que usar notificaciones, de lo contrario no hay forma de obtener los resultados del archivo de Transloadit.

Si bien se trata de una oferta comercial, que realmente han clavado el caso de uso y eliminar la mayor parte de la carga con respecto al procesamiento de video dentro de las aplicaciones web; su oferta se basa en Amazon Web Services (AWS) y el pricing es muy razonable y asequible en consecuencia.

¡Buena suerte!