Archivo mensual: mayo 2024
Streaming de Video – IP/Tv
Retomando los tutoriales hoy vamos ha tratar sobre el streaming de video o también denominado TV sobre IP, con ciertas particularidades que en este caso tiene que ver con la transmisión de video en vivo; por lo tanto en este apartado no veremos el Video bajo demanda; es decir aquel que el usuario puede elegir según sus preferencias; para este caso lo que queremos demostrar es que podemos transmitir video y audio justo en el momento que ocurre el evento.
En temas similares ya hemos definido que es el streaming, pero para comprender mejor los definiremos como en envío de una cadena de datos (paquetes) que se envían a un servidor , al cual pueden conectarse varios usuarios y consumir el contenido ya sea en formato solo de audio o en esta caso de audio y video.
Para poder transmitir video es importante contar con ciertos dispositivos que conectados a la computadora que enviara la cadena de paquetes (streaming); estos dispositivos fundamentalmente serán cámaras de video con salidas ya sean por USB o HDMI compatibles; de tal forma que la “captura” del video sera procesada por la máquina que hará el streaming; existen algunos dispositivos de entrada (captura-doras) que conectadas a la PC o Laptop harán este trabajo.
Suponiendo que contamos con todos estos elementos físicos, detallaremos las aplicaciones tanto a nivel de cliente y servidor que utilizaremos para este taller o tutorial.
Servidor de Streaming
El objetivo de un servidor de este tipo es el de recoger los paquetes de video y almacenarlos en pequeños archivos, los cuales pueden ser accesados desde otros computador que conozca la dirección IP o Dominio; el servidor e encarga de encolar estos paquetes y unirlos para “servir” al cliente que se conecta al servicio, de tal forma que el video aparecerá de manera fluida y visible ya sea directamente en una página web o utilizando un programa clientes como por ejemplo VLC.
Protocolos
Con el objetivo de estandarizar la forma de como se envían los datos (decodificación) hacia el servidor se han desarrollado una serie de protocolos de streaming de video; siendo unos más eficientes que otros cut¡yo uso mas bien dependerá de para que queremos hacer streaming (conferencias, video llamadas, canal de TV, etc)
Veamos rápidamente una serie de protocolos:
- AAC sobre HTTP
- CMAF (fMP4) sobre HTTP (DASH, HLS7, HSS)
- DTSC
- WebM/MKV sobre HTTP
- Free Lossless Audio Codec
- Flash progressive sobre HTTP (FLV)
- H264/H265 sobre HTTP
- Flash segmented sobre HTTP (HDS)
- Apple segmented sobre HTTP (HLS)
- HTTP
- TS sobre HTTP
- JSON sobre HTTP
- MP3 sobre HTTP
- MP4 sobre HTTP
- OGG sobre HTTP
- RTMP
- RTSP
- RTP streams using SDP
- SubRip (SRT/WebVTT) sobre HTTP
- TS sobre RIST
- TS sobre SRT
- WAV sobre HTTP
Este listado naturalmente requiere de un estudio más profundo en cada caso; sin embargo para este caso en el que haremos el laboratorio usaremos el protocolo RTMP (Real-Time Messaging Protocol) usado para transmitir mensajes de audio y video.
Suponiendo que cuenta con las condiciones y el conocimiento necesario sobre Redes IP empezamos con la primera parte , que consiste en instalar el servicio;cabe señalar que lo haremos sobre una máquina con Debian 12.5 (linux); por lo tanto también suponemos que la máquina esta lista para la tarea.
Qué es un servidor de medios?
Los servidores multimedia son sistemas centralizado de entrega de mediáticos. Como tal, un servidor multimedia es capaz de adaptar automáticamente sus medios para una entrega óptima y con una agradable experiencia del usuario.
El servidor MistServer
Es el software de servicio (server) que utilizaremos siendo éste modular en todos los significados de la palabra, no utilizando recursos cuando las características no están en uso y carga dinámica y descarga de funcionalidades y flujos en vuelo. Además de ofrecer un rendimiento inmejorable en cualquier situación, cuenta con opciones de integración potentes pero sencillas de usar para la automatización y el uso avanzado. Todos estos y más hacen de Mistserver la tecnología a usar como una solución potente, eficiente y escalable como una plataforma de medios.
Instalación de MistServer
El servidor esta disponible en su propio sitio web https://mistserver.org ; desde donde podemos descragarla e instalarla; sin embargo el método que describiré aquí ha sido probado, se lo hace de forma muy sencilla y rápida, además ha sido probada bajo la plataforma del sistema operativo Linux con Debian 12.
Para empezar debemos instar el comando curl, puesto que no viene por defecto en debian, para eso haremos lo siguiente:
# apt install curl
Instalado el comando basta con ejecutar la siguiente línea en la terminal
# curl -o - https://releases.mistserver.org/is/mistserver_64V3.3.tar.gz 2>/dev/null | sh
Esto instalará el server MistServer y todos sus binarios en su version de 64 bits.
Si desea desinstalarlo puede usar el siguiente comando:
# sudo curl -o - https://releases.mistserver.org/uninstallscript.sh 2>/dev/null | sh
Lo que eliminara por completo el servicio de nuestra sistema operativo.
Más referencias para las descargas en este link: https://mistserver.org/download
Debo recortarles que la configuración del servidor se encontrará en esta ruta y archivo
/etc/mistserver.conf
Así mismo todos las configuraciones del servicio para que arranque como tal dentro del sistema operativo se encuentras en este script de configuración (como todo en Linuxlos archivos de configuración son archivos de texto que pueden ser editados manualmente).
/etc/systemd/system/mistserver.service
He aqui el contendio del archivo por defecto; por ahora recomiendo no modificarlo y dejarlo tal como esta.
[Unit]
Description=MistServer
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/MistController -c /etc/mistserver.conf
Restart=always
RestartSec=2
TasksMax=infinity
TimeoutStopSec=8
ExecStopPost=/bin/bash -c “rm -f /dev/shm/*Mst*”
[Install]
WantedBy=multi-user.target
Para asegurarnos de que el servicio se encuentra levantado usaremos los comando ya conocidos; considerando que ahora MistServer es un servicio del sistema operativo como tal, entonces, escribimos en la terminal:
# service mistserver status
Cuyo mesaje sera que esta funcionando y activo
Ademas podra usar cmandos para reinciar el servicio u detenerlos asi:
# service mistserver start # service mistserver stop
Hasta aqui ya hemos instalado el servidor y lo tenemos operativo.
Configuracion del servicio MistServer
Para acceder a la página de configuración, debemos tomar en cuenta que IP tiene nuestra máquina en la que instalamos el MisServer, el comando que puede ayudar con ello es:
# ip -c a
Uponiendo que la IP de nuestro servidor es: 192.168.1.156, abrimos el navegador y colocamos la siguiente URL: http://192.168.1.156:4242
El numero que se encuentra después de los los dos puntos es el puerto por defecto del servicio y nos mostrará la siguiente pantalla:
Donde debemos colocar la siguiente información:
Nombre del Usuario (1), clave o password del mismo (2) y en el siguiente caja volveremos a colocar la misma clave (3), recuerde que esta colocando estos datos por primera vez y creando el usuario con su clave de administrador, finalmente grabamos (4).
y Nos llevara a la siguiente pantalla donde se nos indica que la cuenta ha sido creada y ademas en verde apareceremos CONECTADOS
Luego simplemente activaremos los protocolos haciendo click en el botos como se muestra en la imagen.
Ahora debemos crear el canal de stream, para ellos, damos click en Stream (1) y luego en el boton Crear Nuevo stream (2) como se muestra la imagen.
Lo que nos llevara a la siguiente pantalla, donde colocaremos los datos siguientes, fíjese bien las flechas que se indican así como los datos ingresados.
Primero le damos un nombre al Stream (1), Ud elige el nombre, luego colocamos la palabra push:// tal como se ve en la imagen, esto le indica al servidores que las imágenes serán enviadas o colocadas (push) de manera externa al propio servidor.
Hecho esto nos fijamos que a un cotado hay un botos “Copy”, sirve para copia el texto al porta papeles (3), lo copiamos, asi como también la “clave” que coloca el server (4), estos datos son de suma importancia para configurar la aplicación que subirá el video al server; por lo tanto tomar nota de esto.
Nos vamos hasta abajo y ahí Gravamos (Save) la configuración hecha. Listo! el servidor esta configurado y preparado para recibir la cadena de datos (video y audio) desde una computadora que sera el emisor del video; para ello debemos configurar la siguiente aplicación en la maquina de transmisión.
OBS Estudio configuración.
OBS significa Open Broadcaster Software, es una aplicación construida con licencia de uso libre, ademas es multiplataforma , es decir funciona en Linux, Windows. Entonces OBS será nuestra herramienta para subir el video en tiempo real al servidor que hemos configurado previamente.
Una vez instalado el OBS en nuestra máquina, al abrir la aplicación damos click en el botón de Ajustes como se muestra en la imagen.
Esto abrirá la siguiente pantalla
Seleccionamos en el costado izquierdo la opción de Emision (1), Luego Servicios (2) aquí debemos seleccionar “Personalizado” ya que vamos a personalizar la forma de envío del Streaming, en Servidor (3) colocamos los datos que habiamos guardado previamente y que nos entrego el MistServer cuando creamos el Streming nótese que aqui se define ya el protocolo, la IP del servidor y el nombre de la sala de streming; luego colocamos la clave (4) que de la misma forma MistServer no colocó en su pantalla de configuración de streaming; luego simplemente grabamos dando click en Aceptar (5).
Y listo!, vamos a la pantalla principal de OBS y activamos el botón de Iniciar Transmisión.
Para comprobar que todo funciona bastará con seleccionar Stream y ahí el botón Embed (embebido)
Podemos hacer click en Preview lo que mostrara una recuadro con la cadena de strem en fomra de video; o a su vez para saber que funcionará como un servidor y con cualquier navegador copiamos (2) la URL que se muestra, que para nuestro caso es :
http://192.168.1.156:8080/envivo.html
Y el resultado sera como el siguiente.
Y listo!!!!!
Nuestro Servidor de Streming de Video esta funcionando al 100%