hoy por hoy, todos los formatos de streaming han ido desapareciendo y solo quedan 2 fomatos mas o menos estandard:
- HLS (.m3u8/.m3u/.ts...) Es el formato más usado, originalmente solo soportado por dispositivos apple, hoy día es soportado por casi todo, principalmente en los navegadores no apple, se usa MSE junto a javascript
- DASH (.mpd/.fmp4/.fma/.fmv...) Es el formato con más proyección de futuro, técnicamente incorpora muchas mejoras sobre HLS por ejemplo el uso de mp4 fragmentado por defecto (lo que reduce mucho el espacio que ocupa el vídeo), aunque claro es mas complejo.
Ambos formatos se usan actualmente en todos los sistemas de vídeo, tanto vod como streaming, a veces, como pasa con netflix, junto a la codificación con DRM widevine L1, con el cual tienes que obtener un hash para desencriptar cada chunk de vídeo que recibes. Ambos formatos soportan encriptación de sus fragmentos.
Los dos formatos son muy parecidos en funcionamiento, el archivo principal es el archivo de metadatos, en hls es texto y en dash es un xml. Contiene la lista de segmentos de video, que se piden en conexiones http separadas.
Cada stream puede ser de 3 tipos:
- directo: se ve una emisión en directo en el que hay un cierto buffer
- evento: igual que el directo, pero el mantiene referencia de vídeo desde cierto momento, por lo que se puede ir hacia atrás en el reproductor
- vod: representa un listado de fragmentos con el que se ve un vídeo normal
El cliente refresca a intervalos el manifiesto y obtiene los trozos de vídeo para descargar y cargar en el buffer de vídeo del reproductor.
Como todo esto funciona mediante HTTP con archivos estáticos, no se necesita un servidor adaptado para vídeo o software especial, en la mayor parte de iptv estos enlaces están capados de forma que hay que generar algún tipo de token para leer el manifiesto como sistema de autorización.
Si quieres un reproductor, había puesto hace poco un post con libvlc, lo busco y lo posteo por aqui