GNU/Linux >> Tutoriales Linux >  >> Linux

Crea tu propio servidor de transmisión de video con Linux

La transmisión de video en vivo es increíblemente popular y sigue creciendo. Plataformas como Twitch de Amazon y YouTube de Google cuentan con millones de usuarios que transmiten y consumen innumerables horas de medios grabados y en vivo. Estos servicios a menudo son de uso gratuito, pero requieren que tenga una cuenta y, en general, mantienen su contenido detrás de los anuncios. Algunas personas no necesitan que sus videos estén disponibles para las masas o simplemente quieren tener más control sobre su contenido. Afortunadamente, con el poder del software de código abierto, cualquiera puede configurar un servidor de transmisión en vivo.

Cómo empezar

En este tutorial, explicaré cómo configurar un servidor básico de transmisión en vivo con un sistema operativo Linux o BSD.

Esto lleva a la inevitable pregunta de los requisitos del sistema. Estos pueden variar, ya que hay muchas variables involucradas con la transmisión en vivo, como:

  • Calidad de transmisión: ¿Quieres transmitir en alta definición o la definición estándar se ajustará a tus necesidades?
  • Audiencia: ¿Cuántos espectadores esperas para tus videos?
  • Almacenamiento: ¿Piensa guardar copias guardadas de su flujo de video?
  • Acceso: ¿Tu transmisión será privada o estará abierta al mundo?

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

No hay reglas establecidas en lo que respecta a los requisitos del sistema, por lo que le recomiendo que experimente y encuentre lo que mejor se adapte a sus necesidades. Instalé mi servidor en una máquina virtual con 4 GB de RAM, un disco duro de 20 GB y un solo núcleo de procesador Intel i7.

Este proyecto utiliza el Protocolo de mensajería en tiempo real (RTMP) para manejar la transmisión de audio y video. Hay otros protocolos disponibles, pero elegí RTMP porque tiene un amplio soporte. A medida que los estándares abiertos como WebRTC se vuelvan más compatibles, recomendaría esa ruta.

También es muy importante saber que "en vivo" no siempre significa instantáneo. Una secuencia de video debe codificarse, transferirse, almacenarse en búfer y mostrarse, lo que a menudo agrega demoras. El retraso se puede acortar o alargar según el tipo de transmisión que esté creando y sus atributos.

Configurando un servidor Linux

Puede usar muchas distribuciones diferentes de Linux, pero yo prefiero Ubuntu, así que descargué la edición de Ubuntu Server para mi sistema operativo. Si prefiere que su servidor tenga una interfaz gráfica de usuario (GUI), siéntase libre de usar Ubuntu Desktop o uno de sus muchos sabores. Luego, encendí el instalador de Ubuntu en mi computadora o máquina virtual y elegí la configuración que mejor se adaptaba a mi entorno. A continuación se muestran los pasos que tomé.

Nota:debido a que se trata de un servidor, probablemente desee establecer algunas configuraciones de red estáticas.

Después de que finalice el instalador y su sistema se reinicie, será recibido con un nuevo y encantador sistema Ubuntu. Al igual que con cualquier sistema operativo recién instalado, instale las actualizaciones que estén disponibles:

sudo apt update
sudo apt upgrade

Este servidor de transmisión utilizará el servidor web Nginx muy potente y versátil, por lo que deberá instalarlo:

sudo apt install nginx

Luego, deberá obtener el módulo RTMP para que Nginx pueda manejar su flujo de medios:

sudo add-apt-repository universe
sudo apt install libnginx-mod-rtmp

Ajuste la configuración de su servidor web para que pueda aceptar y entregar su flujo de medios.

sudo nano /etc/nginx/nginx.conf

Desplácese hasta la parte inferior del archivo de configuración y agregue el siguiente código:

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}

Guarde la configuración. Como soy un hereje, uso Nano para editar archivos de configuración. En Nano, puede guardar su configuración presionando Ctrl+X , Y y luego Intro.

Esta es una configuración mínima que creará un servidor de transmisión en funcionamiento. Agregará a esta configuración más tarde, pero este es un excelente punto de partida.

Sin embargo, antes de que pueda comenzar su primera transmisión, deberá reiniciar Nginx con su nueva configuración:

sudo systemctl restart nginx

Configurando un servidor BSD

Si eres de la persuasión de las "bestias", poner en marcha un servidor de transmisión también es endiabladamente fácil.

Diríjase al sitio web de FreeBSD y descargue la última versión. Inicie el instalador de FreeBSD en su computadora o máquina virtual, siga los pasos iniciales y elija la configuración que mejor se adapte a su entorno. Dado que se trata de un servidor, es probable que desee establecer algunas configuraciones de red estáticas.

Después de que finalice el instalador y su sistema se reinicie, debería tener un nuevo y brillante sistema FreeBSD. Al igual que cualquier otro sistema recién instalado, es probable que desee actualizar todo (a partir de este paso, asegúrese de haber iniciado sesión como root):

pkg update
pkg upgrade

Instalo Nano para editar archivos de configuración:

pkg install nano

Este servidor de transmisión utilizará el servidor web Nginx muy potente y versátil. Puede compilar Nginx utilizando los excelentes puertos sistema del que se jacta FreeBSD.

Primero, actualice su árbol de puertos:

portsnap fetch
portsnap extract

Vaya al directorio de puertos de Nginx:

cd /usr/ports/www/nginx

Y comience a construir Nginx ejecutando:

make install

Verá una pantalla que le preguntará qué módulos incluir en su compilación de Nginx. Para este proyecto, deberá agregar el módulo RTMP. Desplácese hacia abajo hasta seleccionar el módulo RTMP y presione Espacio . Luego presione Entrar para continuar con el resto de la compilación e instalación.

Una vez que Nginx haya terminado de instalarse, es hora de configurarlo para fines de transmisión.

Primero, agregue una entrada en /etc/rc.conf para asegurarse de que el servidor Nginx se inicie cuando se inicie el sistema:

nano /etc/rc.conf

Agregue este texto al archivo:

nginx_enable="YES"

A continuación, cree un directorio webroot desde donde Nginx servirá su contenido. Yo llamo al mío flujo :

cd /usr/local/www/
mkdir stream
chmod -R 755 stream/

Ahora que ha creado su directorio de transmisión, configure Nginx editando su archivo de configuración:

nano /usr/local/etc/nginx/nginx.conf

Cargue sus módulos de transmisión en la parte superior del archivo:

load_module /usr/local/libexec/nginx/ngx_stream_module.so;
load_module /usr/local/libexec/nginx/ngx_rtmp_module.so;

Bajo el Servidor sección, cambie la ubicación webroot para que coincida con la que creó anteriormente:

Location / {
root /usr/local/www/stream
}

Y finalmente, agregue su configuración de RTMP para que Nginx sepa cómo manejar sus flujos de medios:

rtmp {
        server {
                listen 1935;
                chunk_size 4096;

                application live {
                        live on;
                        record off;
                }
        }
}

Guarde la configuración. En Nano, puedes hacer esto presionando Ctrl+X , Y y luego Intro.

Como puede ver, esta es una configuración mínima que creará un servidor de transmisión en funcionamiento. Más tarde, agregará a esta configuración, pero esto le proporcionará un gran punto de partida.

Sin embargo, antes de que pueda comenzar su primera transmisión, deberá reiniciar Nginx con su nueva configuración:

service nginx restart

Configura tu software de transmisión

Transmitiendo con OBS

Ahora que su servidor está listo para aceptar sus transmisiones de video, es hora de configurar su software de transmisión. Este tutorial utiliza Open Broadcast Studio (OBS), potente y de código abierto.

Dirígete al sitio web de OBS y encuentra la compilación para tu sistema operativo e instálalo. Una vez que se inicia OBS, debería ver un asistente de primera ejecución que lo ayudará a configurar OBS con la configuración que mejor se adapte a su hardware.

OBS no está capturando nada porque no le has proporcionado una fuente. Para este tutorial, solo capturará su escritorio para la transmisión. Simplemente haga clic en + botón debajo de Fuente , elige Captura de pantalla y seleccione qué escritorio desea capturar.

Haga clic en Aceptar y debería ver OBS reflejando su escritorio.

Ahora es el momento de enviar su transmisión de video recién configurada a su servidor. En OBS, haga clic en Archivo> Configuración . Haga clic en el Stream y establece Tipo de transmisión al servidor de transmisión personalizado .

En el cuadro URL, ingrese el prefijo rtmp:// siguió la dirección IP de su servidor de transmisión seguido de /live . Por ejemplo, rtmp://DIRECCIÓN IP/live .

A continuación, probablemente desee ingresar una clave de transmisión, un identificador especial requerido para ver su transmisión. Ingrese la clave que desee (y pueda recordar) en la Clave de transmisión caja.

Haz clic en Aplicar y luego OK .

Ahora que OBS está configurado para enviar su transmisión a su servidor, puede iniciar su primera transmisión. Haz clic en Empezar a transmitir .

Si todo funcionó, deberías ver que el botón cambia a Detener transmisión. y algunas métricas de ancho de banda aparecerán en la parte inferior de OBS.

Si recibe un error, verifique dos veces la configuración de transmisión en OBS para ver si hay errores ortográficos. Si todo se ve bien, podría haber otro problema que impida que funcione.

Ver tu transmisión

Un video en vivo no sirve de mucho si nadie lo está viendo, ¡así que sé tu primer espectador!

Hay una multitud de reproductores multimedia de código abierto que admiten RTMP, pero el más conocido es probablemente el reproductor multimedia VLC.

Después de instalar y ejecutar VLC, abra su transmisión haciendo clic en Medios> Transmisión de red abierta . Ingrese la ruta a su transmisión, agregue la clave de transmisión que configuró en OBS, luego haga clic en Reproducir . Por ejemplo, rtmp://DIRECCIÓN-IP/live/SECRET-KEY .

¡Ahora debería estar viendo su propia transmisión de video en vivo!

¿Adónde ir después?

Esta es una configuración muy simple que lo hará despegar. Aquí hay otras dos funciones que probablemente querrá usar.

  • Limitar acceso: El siguiente paso que quizás desee tomar es limitar el acceso a su servidor, ya que la configuración predeterminada permite que cualquiera transmita hacia y desde el servidor. Hay una variedad de formas de configurar esto, como un firewall del sistema operativo, un archivo .htaccess o incluso usando los controles de acceso incorporados en el módulo RTMP.

  • Grabar transmisiones: Esta configuración simple de Nginx solo transmitirá y no guardará sus videos, pero es fácil de agregar. En la configuración de Nginx, en la sección RTMP, configure las opciones de grabación y la ubicación donde desea guardar sus videos. Asegúrese de que exista la ruta que estableció y que Nginx pueda escribir en ella.

application live {
             live on;
             record all;
             record_path /var/www/html/recordings;
             record_unique on;
}

El mundo de la transmisión en vivo está en constante evolución, y si está interesado en usos más avanzados, hay muchos otros recursos excelentes que puede encontrar flotando en Internet. ¡Buena suerte y feliz transmisión!


Linux
  1. Vea las conexiones de red de su servidor Linux con netstat

  2. Cree un gemelo malvado de su red con Fluxion en Kali Linux

  3. Cree su almacenamiento en la nube con ownCloud 6 en Linux Mint 17

  4. Cómo instalar Nextcloud con Docker en su servidor Linux

  5. Proteja su servidor Linux con Fail2Ban [Guía para principiantes]

Cómo crear tu propia distribución de Linux usando Yocto

Streama:configure su propio servidor de medios de transmisión en minutos

ReaR:Respalde y recupere su servidor Linux con confianza

Cómo crear su propio servidor de transmisión de video con OBS Studio en Linux

Cómo crear su propio servidor VPN IPsec en Linux

Servidor DIY NAS Freenas:construya su propio NAS con Freenas