16 de febrero de 2021

Streaming con OBS en LAN

El objetivo de esta guía es hacer streaming de un equipo en una red LAN. Se va a usar un equipo con tarjeta gráfica NVIDIA (usando una GTX 750Ti, comprobar que tiene NVENC la tarjeta gráfica) y Ubuntu (probado en Ubuntu 18.04).

Se instala OBS: https://obsproject.com

Se ejecuta el asistente de OBS para ver configuración recomendada. Si detecta NVENC es que se puede codificar con la tarjeta NVIDIA, si no hay que instalar los drivers apropiados:

sudo ubuntu-drivers autoinstall

Con esto ya debería ejecutarse el asistente y salir NVENC.

Después hay que montarse un servidor web para servir el video. Uso nginx como en este post: https://obsproject.com/forum/threads/broadcasting-in-a-lan.20637

OBS uses the rtmp protocol to stream. This depends on servers to distribute the stream to the viewers, thats where nginx fits in. You can run it on any of the two machines and under windows just fine.

Lets say PC1 has the lan ip 192.168.0.5 and PC2 has .0.6, we run nginx on PC1 (with a simple configuration file that has one application called "live1" which awaits your stream). In OBS on PC1 we setup a livestream to a custom service and can use rtmp://127.0.0.1/live1 or rtmp://192.168.0.5/live1 for the server address.
As playpath use "camera" without the quotes. You probably already configured your scenes in OBS (added the Camera) so you could now start streaming.

On the second PC, load up VLC and use open network stream. As the address this time we have to use rtmp://192.168.0.5/live1/camera so we combine the network ip with the application and the playpath so VLC can request the stream from nginx. So after clicking Play, you should see your camera feed.
For nginx, I host a compiled package for Windows at http://rtmp.jack0r.com/ it comes with an example config file so is pretty much ready to go. (Has the live1 app already) Of course if you have a question, just post it below and if you want some more general guides about nginx check out: http://www.helping-squad.com/server/

En mi caso lo hago con docker:

  1. Instalar docker: https://docs.docker.com/engine/install/ubuntu
  2. Y uso esta imagen: https://hub.docker.com/r/tiangolo/nginx-rtmp
  3. Una vez arrancado el nginx voy a OBS a la Configuración de Emisión y elijo la opción Personalizado/Custom. En servidor pongo rtmp://127.0.0.1/live y en clave pongo el nombre de la escena para emitir (en el ejemplo pongo prueba)
  4. Luego en otro ordenador de la LAN abro VLC y uso la ubicación de red rtmp://<ip como 192.168.?.?>/live/<clave - así que ponemos prueba>
  5. El video me llega con retraso de algunos segundos pero se ve muy bien
  6. Habría que probar con las gráficas integradas a ver si es suficiente. Por ejemplo para un aula de informática con ordenadores donde es suficiente ver el código a pocos FPS y sin audio no debería haber problemas. Si se dispone de dos monitores en cada puesto es mejor que usar un proyector.

3 comentarios:

  1. Tengo unas cuantes dudas quiero correr esto mismo en un OBS Studio de Windows... por favor si me pudiera ayudar le agradecere si me dejara como contactarle ... aqui le dejo mi correo...angelyasmany@gmail.com GRACIAS

    ResponderEliminar
    Respuestas
    1. Pregunta tus dudas sin pegas y si hace falta añado más cosas a la entrada si no han quedado claras. En el enlace que pongo el autor habla de Windows. Yo lo hice en Linux. El funcionamiento debe ser el mismo. Aclarar que el servidor no es OBS si no que OBS envía el contenido al servidor web que hace la difusión. En mi caso use un servidor nginx.

      Eliminar
  2. Para emitir en un servidor Personalizado de OBS studio

    ResponderEliminar

Compárteme

Entradas populares