servidores - Posibilidad de transmitir videos usando Amazon S3/CloudFront con reproductor HTML5?
live video streaming aws (5)
Algo que he logrado recientemente es utilizar el reproductor de video Video.js HTML5 (código abierto), con videos alojados en S3. Básicamente, usted solo sube su video a su cubo S3, luego el código en la página se ve más o menos así (luego de incluir los archivos CSS y JS de Video.js en su página):
<video id="example_video_1" class="video-js vjs-default-skin"
controls preload="auto" width="1600" height="900"
poster="http://mys3bucket.s3.amazonaws.com/videoImage.jpg"
data-setup=''{"example_option":true}''>
<source src="http://mys3bucket.s3.amazonaws.com/myvideofile.mp4" type=''video/mp4'' />
<source src="http://mys3bucket.s3.amazonaws.com/myvideofile.webm" type=''video/webm'' />
</video>
poster
es solo la imagen fija para mostrar en el reproductor de video mientras el video se carga o no se reproduce. En cuanto a las etiquetas <source>
, puede vincular tantas o tan pocas de ellas como videos tenga. Más formatos solo significan un mejor soporte en diferentes plataformas (por ejemplo, algunas distribuciones de Linux vanilla pueden no reproducir MP4, etc.).
Consulte la guía de inicio rápido de Video.js here .
Al decidir si usar S3 o CloudFront: IMHO S3 es más apropiado para video en general porque el costo es más económico cuando está almacenando una gran cantidad de datos (porque CloudFront distribuye copias de todo a todos sus servidores de borde, aunque puede limitar que algo de las opciones). Algunas personas prefieren CloudFront debido a la velocidad, aunque recuerden que CloudFront está pensado principalmente como una red de entrega de contenido donde se requieren tiempos de respuesta súper rápidos (por ejemplo, gráficos del sitio, hojas de estilo, archivos JS, etc.), por lo que es una compensación en tus necesidades Si sus videos son todos muy pequeños, entonces puede encontrar que CloudFront es realmente apropiado para sus necesidades.
Para analizar los costos de forma más definitiva, puede usar la calculadora de costos mensual de Amazon.
Quiero usar un reproductor de video HTML5 y transmitir videos. ¿Es esto posible con S3 / CloudFront? Entiendo que Amazon utiliza el protocolo de transmisión RTMP y la etiqueta de video
de HTML5 no es compatible con RTMP. ¿Hay alguna forma de transmitir videos con reproductores HTML5?
Estaba mirando AS3 para alojar videos con VideoJS para mi propio sitio y es por eso que encontré su pregunta, pero cuando miré el código de ejemplo para VideoJS noté que el enlace estaba en una compañía llamada ZenCoder - http://video-js.zencoder.com/oceans-clip.mp4
No tengo ninguna asociación con Zencoder, pero probablemente valga la pena considerarlo si buscas alojamiento de videos en la nube.
Estoy trabajando en algunas cosas de video para una producción global. Necesito mantener bajos los costos, pero estoy buscando que las características sean lo suficientemente escalables y suficientes para entregar un sistema bastante complejo de forma segura. AWS parece genial, los he usado durante algunos años y creo que los S3 Buckets son increíbles. Ellos son gratis, hasta un límite. Y si. Ciertamente tienen éxito al proporcionar lo que creo que es transmisión de video; en que está alojado en S3 y se reproduce directamente en mi JWPlayer inmediatamente en la carga de la página sin temblores o latencia.
Puedo ver que algunas delineaciones de video son vagas y aún confusas para mí, aunque @gview hizo un gran trabajo al proporcionarnos una incitación más profunda. La complejidad me interesa, pero si su agenda es hacer que ese video avance, no creo que HTML5 sea su respuesta. SOAP, REST, HTTP e incluso HTTPS son compatibles y se pueden aprovisionar, hasta donde yo sé. La documentación en AWS también es notable, muy útil. Voy a adjuntar un enlace de inicio aquí.
@ user2352370: JWplayer ... Estoy indeciso. Acabo de comprar la membresía de nivel medio y ahora al leer a Wayne Koorts anterior, creo que JSvideo es mejor por una variedad de razones y trabajaré con eso si puedo obtener un reembolso. No veo ningún valor inmediato en JWvideo, más allá del estilo que proporciona para los videos. Creo que el valor de JWvideo para mí, al menos, se limita al diseño del video. Puedo usar JSVideo para crear una variedad de reversiones fácilmente para múltiples dispositivos y tipos de navegadores. Puedo diseñar el JSVideo incluso, pero tal vez algo se diga por la simplicidad de JWvideo. Probablemente lo necesite por la embestida de la publicación de video que tendré en los próximos meses.
Tanto JWVideo como JSVideo funcionarán
Creo que JWVideo y JSvideo harán el trabajo, actualmente tengo ambos en mi sitio para varios videos y ambos hacen un trabajo decente, aunque aún no han probado los navegadores.
Crea una cuenta gratuita de AWS y juega con los servicios gratis. Es muy atractivo si ha estado lidiando con proveedores como RackSpace o Host Gator por un tiempo.
AWS Free Tier Página de inicio
Gran parte de lo publicado por @Wayne Koorts proporciona la base para una buena respuesta. La desconexión parece ser que puedes "transmitir" video a través de una descarga progresiva. Esto funciona con cualquier archivo de video compatible con html5, como lo ilustró.
Para obtener el mejor rendimiento en una descarga progresiva de archivos mp4, necesita que los metadatos moov atom aparezcan al principio del archivo. Asegurar que sus archivos mp4 tengan esta propiedad es una de las razones por las cuales el programa qtfaststart está incluido con ffmpeg.
Por supuesto, la descarga progresiva no es un "servidor multimedia de transmisión". Los servidores de transmisión de medios se diseñaron para admitir una serie de características diferentes, que incluyen:
- Seguridad y DRM
- Transmisión / entrelazado adaptable (soporte para múltiples velocidades de bits intercaladas en un archivo específico)
- Buscando
Parece que la preocupación particular expresada aquí es la característica de búsqueda. Como sucede, esto se admite bien en html5 y en s3 / cloudfront.
Lo que es confuso es que la nube de archivos de video tiene varias opciones. Una opción es hacer que los archivos sean entregados por su red de servidores Adobe FMS con licencia. Aquí es donde entra en juego la confusión sobre el uso de RTMP. Sin embargo, eso es solo una opción. Los archivos se pueden distribuir a la nube en formato de "descarga" estándar y tendrán la propiedad de búsqueda debido a la implementación de rangos de bytes y soporte para lo que popularmente se conoce como pseudo-streaming.
Parece haber mucha confusión sobre el término "Pseudo streaming", pero en el caso de html5, es simplemente el requisito de que el servidor HTTP admita la especificación 1.1. Al buscar, el cliente envía una solicitud de rango de bytes y el servidor es responsable de entregar esa parte del archivo.
En otras palabras ... la búsqueda con el reproductor html5 funciona con los servidores en la nube porque son compatibles con HTTP 1.1.
En cuanto a algunas de las otras funciones que ofrecen los servidores de transmisión, hay una variedad de servidores competitivos que han implementado la "transmisión H264" o elementos de MPEG-DASH como alternativa al uso de servidores compatibles con RTMP y FMS. Varios reproductores basados en flash admiten estas funciones, que van más allá de la simple búsqueda. JWPlayer y Flowplayer son 2 ejemplos de reproductores que admiten algunas o todas las características, sin embargo, el reproductor de video de HTML5 no admite ninguna de estas funciones. Puede obtener más información en http://h264.code-shop.com/trac#H264StreamingModuleIntroductionversion2
Si eso no es suficiente confusión para usted, Apple implementó su propio protocolo "HTTP Live Streaming", a veces conocido como m3u8, que admiten en ios y quicktime. Menciono esto porque con frecuencia la gente quiere una forma de admitir una variedad de dispositivos diferentes.
Espero que esto haya ayudado a aclarar un poco las cosas.
Tengo CloudFront & S3 configuración y transmisión de video con un reproductor HTML5 que responde. Eso sí, estoy intentando que funcione en todos los navegadores y no funciona al 100% como debería.
Aquí hay un tutorial interesante para incrustar video en un sitio de WordPress a través de JW Player & S3: http://www.mywpexpert.com/embed-videos-amazon-s3-jw-player/
Aquí hay otro ejemplo de conexión directa a S3 dentro de WordPress: http://html5.svnlabs.com/amazon-s3-cloud-html5-player/
Espero que esto ayude