Aceleración de hardware utilizando StageVideo

La presentación acelerada por hardware, que incluye escala de vídeo, conversión de color y fusión, mejora las ventajas de rendimiento de la descodificación acelerada de hardware. En los dispositivos que ofrecen aceleración (hardware) con GPU, se puede utilizar un objeto flash.media.StageVideo para procesar el vídeo directamente en el hardware del dispositivo. El procesamiento directo libera la CPU de realizar otras tareas mientras la GPU representa el vídeo. Por otra parte, la clase heredada Video suele utilizar la presentación de software. La presentación con software se produce en la CPU y consume una parte importante de recursos del sistema.

Actualmente, muy pocos dispositivos proporciona una aceleración con GPU completa. Sin embargo, Stage Video permite que la aplicación aproveche al máximo cualquier aceleración de hardware que esté disponible.

La clase StageVideo no hace obsoleta a la clase Video. Al trabajar de forma conjunta, estas dos clases ofrecen la experiencia de reproducción de vídeo óptima que permiten los recursos del dispositivo en cualquier momento. La aplicación aprovecha la aceleración de hardware detectando los eventos adecuados y alternando entre StageVideo y Video según sea necesario.

La clase StageVideo impone determinadas restricciones en el uso del vídeo. Antes de implementar StageVideo, consulte las directrices y asegúrese de que la aplicación las acepte. Si acepta las restricciones, utilice la clase StageVideo siempre que Flash Player detecte que la representación acelerada con hardware esté disponible. Consulte Directrices y limitaciones .

Planos paralelos: lista de visualización de Flash y Stage video

Con el modelo de vídeo de escenario, Flash Player puede separar el vídeo de la lista de visualización. Flash Player divide la visualización de la composición entre dos planos ordenados por z:

Plano de Stage Video
El plano de Stage Video se sitúa en el fondo. Solo muestra el vídeo con aceleración por hardware. Debido a este diseño. el plano no está disponible si la aceleración de hardware no se admite ni está disponible en el dispositivo. En ActionScript, los objetos StageVideo administran los vídeos reproducidos en el plano de Stage Video.

Plano de lista de visualización de Flash
Las entidades de la lista de visualización de Flash se componen en el plano situado frente al plano de Stage Video. Las entidades de la lista de visualización incluyen cualquier elemento que represente el motor de ejecución, incluyendo controles de reproducción. Si la aceleración de hardware no está disponible, los vídeos se puede reproducir solo en este plano, utilizando el objeto de la clase Video. Stage Video siempre se reproduce tras los gráficos de la lista de visualización de Flash.

Ver gráfico a tamaño completo
Planos de visualización de vídeo

El objeto StageVideo aparece en una región de la pantalla rectangular alineada con la ventana y no girada. No se pueden disponer en capas los objetos tras el plano de vídeo del escenario. Sin embargo, el plano de la lista de visualización de Flash se puede utilizar para poner en capa los demás gráficos en la parte superior del plano de vídeo del escenario. Stage Video se ejecuta al mismo tiempo que la lista de visualización de De este modo, es posible utilizar los dos mecanismos de forma conjunta para crear un efecto visual unificado que utilice dos planos discretos. Por ejemplo, se puede utilizar el plano frontal para los controles de reproducción que funcionan en el vídeo de escenario que se ejecuta en segundo plano.

Códec H.264 y Stage Video

En las aplicaciones de Flash Player, la implementación de la aceleración con hardware de vídeo implica dos pasos:

  1. Codificación de vídeo como H.264

  2. Implementación de la API de StageVideo

Para obtener mejores resultados, realice ambos pasos. El códec H.264 permite aprovechar al máximo la aceleración con hardware, desde la descodificación de vídeo hasta la presentación.

Stage video elimina la lectura de GPU a CPU. Es decir, la GPU ya no vuelve a enviar fotogramas descodificados a la CPU para la composición con los objetos de la lista de visualización. En cambio, la GPU muestra los fotogramas descodificados y procesados directamente en la pantalla, tras los objetos de la lista de visualización. Esta técnica reduce el uso de memoria y CPU y también proporciona una mejor fidelidad de píxel.

Directrices y limitaciones

Cuando el vídeo se ejecuta en modo de pantalla completa, stage video siempre está disponible si el dispositivo admite la aceleración con hardware. Sin embargo, Flash Player, también se ejecuta en un navegador. En el contexto de navegador, la configuración de wmode afecta a la disponibilidad de Stage Video. Intente utilizar wmode="direct" en todo momento si desea usar Stage Video. Stage Video no admite otra configuración de wmode cuando no está modo de pantalla completa. Esta restricción implica que, en tiempo de ejecución, Stage Video puede vacilar de forma imprevisible entre estar o no disponible. Por ejemplo, si el usuario sale del modo de pantalla completa durante la ejecución de Stage Video, el contexto del vídeo vuelve a cambiar al navegador. Si el parámetro wmode del navegador no es establece en "direct" , Stage Video puede dejar de estar disponible de repente. Flash Player comunica los cambios de contexto de reproducción a las aplicaciones mediante un conjunto de eventos. Si implementa la API de StageVideo, conserve un objeto Video como copia de seguridad cuando stage video deje de estar disponible.

Debido a su relación directa con el hardware, Stage Video limita algunas funciones de vídeo. Stage Video impone las siguientes limitaciones:

  • Para cada archivo SWF, Flash Player limita el número de objetos StageVideo que pueden mostrar vídeos al mismo tiempo a cuatro. Sin embargo, el límite real puede ser más bajo, dependiendo de los recursos de hardware del dispositivo.

  • La duración del vídeo no está sincronizada con el calendario del contenido de que muestra el motor de ejecución.

  • El área de la pantalla de vídeo solo puede ser un rectángulo. No se puede utilizar áreas de visualización más avanzadas, como formas elípticas o irregulares.

  • No se puede girar el vídeo.

  • No se puede almacenar en caché de mapa de bits el vídeo ni utilizar el objeto BitmapData para acceder al mismo.

  • No se pueden aplicar filtros al vídeo.

  • No se pueden aplicar transformaciones de color al vídeo.

  • No se puede aplicar un valor alfa para el vídeo.

  • Los modos de fusión que se aplican a los objetos del plano de la lista de visualización no se aplican a stage video.

  • Se puede colocar el vídeo únicamente en los límites de píxeles.

  • Aunque la representación con GPU es la mejor disponible para el hardware del dispositivo determinado, no es 100% “idéntico de píxeles” en los dispositivos. Se producen ligeras variaciones debido a las diferencias de plataforma y controlador.

  • Algunos dispositivos no admiten todos los espacios de color necesarios. Por ejemplo, algunos dispositivos no son compatibles con el estándar H.264, BT.709. En estos casos, se puede utilizar BT.601 para una visualización rápida.

  • Stage Video no se puede emplear con la configuración de WMODE como, por ejemplo, normal, opaco o transparente. Stage Video solo admite WMODE=direct cuando no está en modo de pantalla completa. WMODE no surte ningún efecto en Safari 4 o posterior ni IE 9 o posterior.

En la mayoría de los casos, estas limitaciones no afectan a las aplicaciones de reproducción de vídeo. Si acepta estas limitaciones, utilice Stage Video siempre que sea posible.