Medios y streaming en el desarrollo móvil: qué es, qué protocolos y cómo funciona

Autor: IT Sectr Publicado: 2026-05-20 Tiempo de lectura: 10 min

Los medios y el streaming son una de las competencias clave del desarrollo móvil moderno. Según Statista (2025), el mercado mundial de vídeo en streaming superará los 100 mil millones de dólares en 2027. Los dispositivos móviles representan más del 60% de todo el tráfico de las plataformas de streaming. El desarrollador debe comprender los protocolos, los reproductores, los mecanismos de protección de contenido y funciones como Picture-in-Picture. El streaming de calidad en aplicaciones móviles requiere el dominio de todas estas tecnologías.

Lo más importante

  • Los principales protocolos de streaming son HLS (Apple) y DASH (MPEG). HLS es preferible para iOS, DASH para Android y soluciones multiplataforma.
  • ExoPlayer (Android) y AVPlayer (iOS) son los reproductores estándar. ExoPlayer es más flexible, AVPlayer es más fácil de integrar. Para desarrollo multiplataforma existe Google Cast SDK.
  • Los sistemas DRM (Widevine, FairPlay, PlayReady) protegen el contenido premium. Widevine es el estándar para Android, FairPlay para iOS, PlayReady para Windows/Xbox.
  • Audio Focus (Android) y Audio Session (iOS) gestionan la reproducción de audio durante llamadas y notificaciones. Sin ellos, la experiencia de usuario será incompleta.
  • Picture-in-Picture y AirPlay son funciones imprescindibles para aplicaciones de vídeo premium. PiP permite ver vídeo en una ventana miniatura al minimizar la aplicación.

Protocolos HLS y DASH

HTTP Live Streaming (HLS) es un protocolo para streaming en aplicaciones móviles desarrollado por Apple. Divide el vídeo en pequeños segmentos (generalmente de 6 a 10 segundos) y los transmite a través de HTTP normal. El reproductor descarga una lista de reproducción (.m3u8) y carga secuencialmente los segmentos, adaptando la calidad a la velocidad de la conexión. HLS proporciona un streaming fiable en aplicaciones móviles en todos los dispositivos Apple y es el estándar de facto para iOS.

HLS vs DASH

DASH (Dynamic Adaptive Streaming over HTTP) es un estándar abierto MPEG para la entrega de contenido multimedia a aplicaciones móviles. A diferencia de HLS, DASH utiliza formato MP4 para los segmentos y un manifiesto XML (MPD) en lugar de .m3u8. DASH ofrece más control sobre los códecs y admite más formatos. La elección entre HLS y DASH es una decisión clave al desarrollar streaming para dispositivos móviles. La comparación de protocolos se muestra en la siguiente tabla.

Parámetro HLS DASH
DesarrolladorAppleMPEG (estándar abierto)
Formato de lista.m3u8.mpd (XML)
Segmentos.ts o fMP4fMP4 (cualquier códec)
Soporte nativoiOS, macOS, tvOSAndroid, web
Bitrate adaptativoSí (avc1, mp4a)Sí (cualquier códec)
Baja latenciaLL-HLS (2–5 s)LL-DASH (2–5 s)

En la práctica, las aplicaciones iOS eligen HLS — AVPlayer funciona con él de forma nativa. Para Android, se prefiere DASH gracias a ExoPlayer. Ambos protocolos son adecuados para streaming de medios en dispositivos móviles. En IT Sectr, utilizamos ambas tecnologías y recomendamos elegir el protocolo según la plataforma objetivo.

Bitrate adaptativo y códecs

Adaptive Bitrate (ABR) es un mecanismo mediante el cual el reproductor selecciona automáticamente la calidad del vídeo según la velocidad de la conexión. El flujo se codifica en múltiples bitrates (360p, 720p, 1080p, 4K). El reproductor cambia entre ellos sin pausas. Códecs: H.264 (AVC) — básico, H.265 (HEVC) — 50% más eficiente, VP9 y AV1 — alternativas abiertas para Android.

Para la decodificación por hardware en aplicaciones móviles, es importante elegir el códec correcto. Hardware Decoding utiliza la GPU/procesador de vídeo del dispositivo y consume menos batería. Software Decoding funciona en la CPU — se usa cuando la decodificación por hardware no está disponible. IT Sectr recomienda verificar siempre la compatibilidad de códecs a través de MediaCodec (Android) o AVAssetTrack (iOS) para una reproducción óptima de medios en dispositivos móviles.

Reproductores: ExoPlayer y AVPlayer

ExoPlayer es un reproductor multimedia de Google para Android, optimizado para la reproducción de medios en aplicaciones móviles. A diferencia de MediaPlayer, ExoPlayer no está vinculado a la decodificación por hardware y admite esquemas personalizados a través de módulos de extensión. Funciona con HLS, DASH, SmoothStreaming y RTSP. ExoPlayer es el reproductor principal de YouTube, Google TV y Android TV.

ExoPlayer vs AVPlayerViewController

AVPlayer y AVPlayerViewController son reproductores de Apple para iOS, macOS, tvOS. AVPlayer es una API de bajo nivel, AVPlayerViewController es un envoltorio de UI listo para usar con PiP y AirPlay. Diferencias principales: ExoPlayer ofrece control total sobre el almacenamiento en búfer y la representación, AVPlayerViewController ofrece integración rápida con código mínimo. La elección del reproductor afecta directamente la calidad del streaming en aplicaciones móviles.

kotlin
// ExoPlayer — configuración básica del reproductor en Android
val player = ExoPlayer.Builder(this)
    .setMediaSource(ProgressiveMediaSource.Factory(DefaultHttpDataSource.Factory()))
    .build()
val mediaItem = MediaItem.fromUri("https://example.com/stream.m3u8")
player.setMediaItem(mediaItem)
player.prepare()
player.playWhenReady = true

El código muestra la inicialización mínima de ExoPlayer: creación de una instancia, configuración del elemento multimedia e inicio de la reproducción. ExoPlayer maneja automáticamente el ciclo de vida de Activity a través de player.release() en onStop. Para Android TV o PiP, se requiere manejo adicional del ciclo de vida mediante PlayerView — esto es especialmente importante al configurar streaming para aplicaciones móviles.

Transcodificación y procesamiento de vídeo

Transcoding es la conversión de vídeo de un formato a otro. Se utiliza para optimizar flujos multimedia para diferentes dispositivos móviles (por ejemplo, H.264 → H.265). En dispositivos móviles, la transcodificación es posible a través de MediaCodec (Android) o AVAssetExportSession (iOS). La transcodificación consume muchos recursos y agota la batería — hágalo en segundo plano mediante WorkManager o BGTaskScheduler.

DRM: Widevine, FairPlay y PlayReady

Digital Rights Management (DRM) son sistemas de protección de contenido multimedia contra la copia no autorizada. Se utilizan tres tecnologías principales para el streaming de contenido premium en aplicaciones móviles: Widevine (Google), FairPlay (Apple) y PlayReady (Microsoft). Sin DRM, los servicios premium (Netflix, Spotify, Disney+) no pueden distribuir contenido.

Comparación de sistemas DRM

Widevine es el estándar de protección DRM para Android, disponible en tres niveles: L3 (cifrado por software), L2, L1 (cifrado por hardware, solo Trusted Execution Environment). FairPlay es el sistema exclusivo de Apple, utiliza SVP (Secure Video Pipeline) a nivel de chip. PlayReady es el sistema de Microsoft, extendido en dispositivos Xbox y Windows.

Multi-DRM es un enfoque en el que se utiliza una única plataforma para gestionar todas las claves DRM. Por ejemplo: EZDRM o Verimatrix. Emiten licencias Widevine, FairPlay y PlayReady a través de una API unificada. Multi-DRM es especialmente relevante para contenido premium en dispositivos móviles. En IT Sectr, implementamos multi-DRM a través de agregadores — esto ahorra tiempo y dinero en comparación con integrar cada DRM por separado.

Reproducción de audio: Audio Focus y Audio Session

Audio Focus (Android) es un sistema de gestión de flujos de audio para la reproducción de medios en aplicaciones móviles. Cuando tu aplicación solicita Audio Focus, otras aplicaciones (música, podcasts) se pausan o reducen su volumen (ducking). Sin Audio Focus, dos aplicaciones se reproducirían simultáneamente, creando ruido.

Audio Focus en Android

Android divide los flujos de audio en tipos: MUSIC, VOICE_CALL, ALARM, NOTIFICATION. Para un reproductor multimedia, es necesario solicitar AudioManager.AUDIOFOCUS_GAIN. Al perder el foco (llamada entrante), debes pausar la reproducción y reanudarla cuando el foco regrese. Implementación a través de AudioManager.OnAudioFocusChangeListener.

Audio Session en iOS

Audio Session (iOS) es el equivalente de Audio Focus para aplicaciones multimedia en dispositivos móviles Apple. Se configura a través de AVAudioSession.sharedInstance(). Categorías: .playback (obligatoria para vídeo), .soloAmbient (predeterminada, silencio al bloquear), .playAndRecord (para grabación). Para streaming, use .playback con la opción .allowAirPlay.

PiP y AirPlay

Picture-in-Picture (PiP) es un modo en el que el contenido multimedia continúa reproduciéndose en una pequeña ventana flotante al minimizar la aplicación o al navegar a otra pantalla. PiP se ha convertido en un estándar para aplicaciones multimedia en dispositivos móviles — iOS (desde iPadOS 13) y Android (desde Android 8.0).

PiP en Android

En Android, PiP se habilita mediante Activity.isInPictureInPictureMode() y PictureInPictureParams.Builder. La aplicación debe estar en modo multiventana. Se requiere MediaSession para controlar la reproducción desde la ventana PiP. En el manifiesto, especifique android:supportsPictureInPicture="true".

AirPlay y Chromecast

AirPlay es el protocolo de Apple para transmitir contenido multimedia a Apple TV, HomePod y Smart TV compatibles. En iOS, se implementa mediante AVRoutePickerView o MPNowPlayingInfoCenter. En Android, el equivalente es Google Cast SDK (Chromecast). Ambas tecnologías requieren configuración en el archivo binario y soporte en el reproductor. El streaming de calidad en aplicaciones móviles es imposible sin una de ellas.

Preguntas frecuentes

¿Qué es mejor: HLS o DASH para una aplicación móvil?

Para iOS es mejor HLS — es compatible de forma nativa con AVPlayer. Para Android y aplicaciones multiplataforma, es preferible DASH, ya que ExoPlayer proporciona mejor soporte para DASH y un control más flexible del almacenamiento en búfer. La elección del protocolo afecta directamente al streaming en aplicaciones móviles.

¿Es obligatorio usar DRM en una aplicación de streaming?

DRM es obligatorio solo si distribuyes contenido multimedia premium (películas, música, cursos). Para contenido generado por el usuario o transmisiones free-to-air, no se necesita DRM. IT Sectr recomienda comenzar sin DRM y añadirlo solo cuando sea necesario.

¿Cuál es la diferencia entre ExoPlayer y AVPlayerViewController?

ExoPlayer es un reproductor multimedia personalizable para Android con soporte para DASH, HLS y SmoothStreaming. AVPlayerViewController es un reproductor nativo de iOS para HLS con PiP y AirPlay. ExoPlayer ofrece más control, AVPlayerViewController requiere menos código. Ambos proporcionan una reproducción multimedia de calidad en aplicaciones móviles.

¿Qué es Picture-in-Picture (PiP) y cómo implementarlo?

PiP es un modo en el que el contenido multimedia continúa reproduciéndose en una pequeña ventana al minimizar la aplicación. En iOS se activa mediante el delegado de AVPlayerViewController, en Android mediante PictureInPictureParams. Requiere configuración en el manifiesto y manejo del ciclo de vida.

¿Para qué sirven Audio Focus y Audio Session?

Audio Focus (Android) y Audio Session (iOS) gestionan la reproducción simultánea de audio de diferentes fuentes. Garantizan que tu aplicación multimedia responda correctamente a llamadas, notificaciones y al inicio de otras aplicaciones de audio.

Resumen

  • HLS es el estándar para iOS, DASH para Android. La elección del protocolo depende de la plataforma objetivo y los requisitos de baja latencia.
  • ExoPlayer ofrece control total sobre la reproducción multimedia en Android. AVPlayerViewController proporciona integración rápida en iOS.
  • DRM (Widevine, FairPlay, PlayReady) protege el contenido multimedia premium contra la piratería. Multi-DRM es el enfoque estándar para servicios premium.
  • Audio Focus (Android) y Audio Session (iOS) gestionan el contexto de audio de la aplicación. Esenciales para aplicaciones móviles con reproducción multimedia.
  • Picture-in-Picture y AirPlay son funciones clave para aplicaciones multimedia modernas. La implementación requiere configuración del ciclo de vida y del reproductor.
  • Adaptive Bitrate (ABR) ajusta automáticamente la calidad del vídeo a la velocidad de conexión en dispositivos móviles. Utilice tareas en segundo plano para la transcodificación.
  • Hardware Decoding ahorra batería en dispositivos móviles. Verifique siempre la compatibilidad de códecs a través de las API del sistema antes de iniciar la reproducción.

Desarrollaremos una aplicación móvil llave en mano

IT Sectr crea aplicaciones para iOS y Android para startups y empresas desde 2017. Le asesoraremos y le propondremos la mejor solución.

Discutir el proyecto