¿Cómo transmite un iPhone contenido HD a un Apple TV a través de AirPlay?

Incluso el contenido de 720p tiene casi 1 millón de píxeles por cuadro; 24 bits por píxel a 60 fps son 180 Mbps, lo que es claramente imposible. Entonces, ¿cómo se transfieren los datos?

Algunas conjeturas:

  • Compresión pesada.
  • Las API de reproducción de video de Apple, que envían la transmisión comprimida al Apple TV, para que el Apple TV se decodifique a sí mismo.
  • API de reproducción de video de Apple, que envían una URL de la ubicación de los datos al Apple TV.

Respuestas (2)

AirPlay envía datos comprimidos MP3, AAC y H.264 directamente a los receptores, por lo que una compresión muy alta en algunos casos y muy buena para el resto.

La documentación para desarrolladores de Apple cubre los conceptos básicos, así como algunos consejos para preparar el contenido para que se transmita/reenvíe bien.

http://developer.apple.com/library/ios/#documentation/AudioVideo/Conceptual/AirPlayGuide/Introduction/Introduction.html

La decodificación de las transmisiones se realiza mediante un chip (y también se codifica, lo mismo en iOS que en OS X) para que pueda ver qué dispositivos son compatibles con AirPlay y deducir qué familias de GPU y CPU tienen el hardware para hacer esto rápidamente y en el caso de iOS con bajo consumo de energía.

Esta matriz de soporte de iOS es muy útil para ver cada versión de iOS y la CPU/RAM para varios modelos, aunque no menciona específicamente el soporte de AirPlay.

Sin embargo, parece que AirPlay es compatible con todas las aplicaciones, no solo con aquellas que reproducen videos a través de formatos compatibles con Apple. ¿Sabes cómo funciona esto? (No estoy completamente seguro, pero esta forma de transmisión (que tampoco es compatible con AirPlay "en segundo plano") parece ocurrir con menor calidad).
Es bastante simple. La GPU/CPU tiene que renderizar todo en la transmisión. iOS dirige un toque en esa transmisión y la envía a través de AirPlay, además de dibujar en la pantalla local. Así como dos monitores en una computadora pueden reflejar contenido o mostrar dos pantallas. AirPlay también puede basarse en si el sistema está en modo espejo o si una aplicación permite AirPlay y puede dibujar dos pantallas de contenido como Keynote, por ejemplo.

El video no se envía píxel por píxel, sino que se codifica con un algoritmo de compresión de video adecuado diseñado específicamente para usar mucho menos ancho de banda y al mismo tiempo reproducir fielmente el video original al ojo humano.

Sin haber investigado, una suposición adecuada sería que se utiliza la codificación h264.

¿Un iPhone puede decodificar y codificar simultáneamente una transmisión de video HD? ¡Me gustaría ver una fuente para eso!
Para el paso de codificación difícil, considere que los iPhone pueden grabar video en Full HD...