reescrito el LEEME para el docker

main
jorge 1 year ago
parent 0e75f7f8ad
commit 4d916cab62
No known key found for this signature in database
GPG Key ID: 0C20E2ED33727336
  1. 25
      HOWTO.md
  2. 228
      README.md

@ -1,25 +0,0 @@
# crear el stream de directos
Seguimos los pasos documentados en la trastienda
https://sindominio.net/trastienda/tecnica/servicios/streamingdirecto/
Incluir index.html,video-js.css, video.js and jquery-slim.min.js y ya lo tienes.
# Como hacer que jitsi haga stream en sintoniza
## solucion 1: hackeando jitsi
estable y funciona desde hace un tiempo según su autor:
https://github.com/jitsi/jitsi-meet/issues/2829#issuecomment-509712706
## solución 2: con un script ffmpeg
solucion no intusiva con jitis y permite striming de cualquier fuents.
https://community.jitsi.org/t/how-do-i-change-youtube-live-stream-to-another-rtmp-server-url/24817/7?u=lodopidolo
## solución 3: simulcast a cualquier otra págia
permite enviar simultáneamente a muchos streamers
https://community.jitsi.org/t/stream-to-any-or-multiple-rtmp-destinations-record-simultaneously/51943
## solución 4: rtmp nginix video por exo/guifipedro
https://gitlab.com/guifi-exo/wiki/-/blob/master/howto/rtmp_streamer.md

@ -26,30 +26,8 @@ _Nginx puede estrimear codecs de HSL y Dash/MPEG, en **este ejemplo** únicament
en `/etc/nginx/nginx.conf` añadimos la configuración del fichero `nginx-rtmp.conf`
```
rtmp {
access_log /var/log/nginx/rtmp-access.log;
# abre nginx para escuchar por el puerto
server {
listen 1935;
chunk_size 4096;
# dale un nombre a tu aplicacion
application entrada {
live on;
# enciende HLS
hls on;
hls_path /var/www/html/live.sindominio.net/hls/;
# ajustes de hls
hls_fragment 3;
hls_playlist_length 60;
# para bloquear el directo a VLC o web
# quita el comentario de la línea siguiente
# deny play all;
}
}
}
```
## Prepara los directorios de tu web
## Prepara los directorios para el streaming
La pagina se sirve desde `/var/www/html/` para automatizar el proceso de creación de Docker y usar la configuración por defecto de Nginx en Debian.
@ -149,79 +127,6 @@ Envia el directo a `rtmp://live.sindominio.net:1935/entrada/stream_key` y miralo
- https://c3voc.de/wiki/distributed-conference
## Más de un dominio en el mismo servidor
Si quieres enviar stream a más de un dominio desde el mismo servidor (sindominio.net ejemplo2.com) y no mezclar los _streams_key_:
edita `nginx.conf`
Crea más aplicaciones bajo la sección `rtmp`:
Como nombre de la aplicación usaremos `entrada-ejemplo` and `entrada-ejemplo2` pero puedes poner lo que quieras, cada una de ellas apuntando a lugares diferentes donde el `HLS` estará disponible. Sujerimos utilizar una palabra específica para que no haya conflictos con en la aplicación.
```
# application directory for sindominio.net
application entrada-ejemplo {
access_log /var/log/nginx/rtmp-example-access.log;
live on;
# Turn on HLS
hls on;
hls_path /var/www/html/live.sindominio.net/hls/;
# finetune hls
hls_fragment 3;
hls_playlist_length 60;
# Disable consuming the stream from nginx as rtmp
deny play all;
}
# application directory for ejemplo2.com
application entrada-ejemplo2 {
access_log /var/log/nginx/rtmp-example2-access.log;
live on;
# Turn on HLS
hls on;
hls_path /var/www/html/live.ejemplo2.com/hls/;
# finetune hls
hls_fragment 3;
hls_playlist_length 60;
# Disable consuming the stream from nginx as rtmp
deny play all;
}
```
En Nginx edita los **sites-available** y **site-enabled** con el nuevo `ejemplo2.com`
copia la estructura de ficheros del dominio ya configurado anteriormente.
```bash
cp -r /var/www/html/live.sindominio.net /var/www/html/live.ejemplo2.com
chown -R www-data:www-data /var/www/html/ejemplo2.com
```
Tenemos que editar ambos `index.html` y las URL del servidor OBS para el RMTP reemplazadno `entrada` por `entrada-ejemplo` y/o `entrada-ejemplo2`.
~<code>rtmp://live.sindominio.net/entrada/</code>~
`rtmp://live.sindominio.net/entrada-ejemplo/`
`rtmp://live.ejemplo2.com/entrada-ejemplo2/`
## Hardcodear el URL
Para controlar que únicamente recibe y emite en una URL mediante un `strem_key` único tenemos que cambiar esto en el `index.html`... buscar `<script>`
```js
v.src({type: 'application/x-mpegURL', src: '/hls/' + name + '.m3u8'});
```
reemplazar la salida `src:`
```js
v.src({type: 'application/x-mpegURL', src: '/hls/LOQUESEAQUEQUIERAS.m3u8'});
```
Nuestra **URL de rtmp** tiene que ser: `rtmp://live.sindominio.net/entrada/` y el **stream_key** será `LOQUESEAQUEQUIERAS`
de este modo podemos dar la URL exacta a otras personas para ofrecer nuestro servicio o evitar abusos en el servirdor.
## traducción de los mensajes de _videojs_
Al pie de `index.html` o dónde tengas la llamada a
@ -275,125 +180,28 @@ añade este código _js_ dentro de `if (window.location.hash){ }`
</script>
```
# streaming audio
(contenido documentado según trabajo de Siroco y Mirto) puede consultarse aqui:
https://git.sindominio.net/siroco/workshop-sysadmin/src/branch/master/MUMBLE_STREAM/index.md
## Requisitos
* Servidor o ordenador personal con entorno gráfico disponible
* Audio del servidor o ordenador personal bajo Pulseudio
* Las instrucciones son para usar bajo una GNU/Linux Debian 10 con los repositorio Multimedia activados
## Paqueteria
$ sudo apt install liquidsoap mumble pavucontrol tmux
## Entorno gráfico
Arrancamos nuestra máquina y accedemos a una sesión gráfica con una usuaria sin más privilegios que el uso del audio y la red.
Arrancamos mumble
$ mumble
Configuramos el sonido para que funcione bajo el "default" de Pulseaudio y accedemos al Mumble de Sindominio
Datos:
* Servidor: charlar.sindominio.net
* Puerto: <default>
* User: shoutcast
Accedemos a la sala que queremos streamear y dejamos el usuario allí con el Mumble encendido.
## En la terminal
Abrimos una terminal
$ xterm
Abrimos una sesión de tmux
$ tmux
Y creamos un fichero que llamaremos _radio.liq_ con los siguientes contenidos
```
## esto conecta la entrada por defecto del ordenador y la streamea
## El bitrate esta en 192k pero se puede bajar a 128 si vemos que no tira con la conexion
## Con buena conexion estaria bonito emitir a 320 a 256.
##
## host o servidor de stream host=""
## punto de emision, key controlado con mount=""
##
## en este ejemplo stream.piperrak.cc:8001
## puede ser stream.espora.org:8080
##
## Requisitos
## sudo apt install liquidsoap pavucontrol
set("log.file.path","/tmp/radio.log")
files=in()
output.icecast(%mp3(bitrate=192), files,mount="ping",password="radi0",user="source",host="stream.piperrak.cc",port=8001)
```
Guardamos y ejecutamos el script:
$ liquidsoap -v radio.liq
Si todo va bien, vereis una linea que pone que la conexión ha sido correcta "successfull"
Si queremos dejar en background el proceso en nuestra _tmux_, por defecto, pulsamos a la vez _Ctrl+b_ y luego la letra _d_ para salir sin parar la terminal
Para acceder otra vez, _tmux a_ o a través de la sesiones disponibles usando _tmux ls_ y sabiendo el valor de la sesión, _tmux a -t <id>_
Dejo en link el tutorial que hicimos hace unos meses.
## Configuración del audio
Abrimos _pavucontrol_, el gestor de entradas y salidas de Pulseaudio
$ pavucontrol
Y vamos a la pestaña "Grabación".
Allí encontraremos una entrada llamada "liquidsoap : pulse_in()" que por defecto se debería asignar a la entrada "Monitor Internal Audio", aunque depende de vuestra configuración de pulse y como se llamen las interfaces.
El objetivo, hacer que liquidsoap streamee el sonido de la interfaz "Monitor" donde está funcionando también Mumble, es decir, se le llamada Monitor a la interfaz que reproduce lo que está sonando en ese momento en la computadora. Es decir, que si además del Mumble tenéis otras cosas sonando, como por ejemplo, un video en Peertube o una canción en vuestra instancia de Funkwhale, pues eso también saldrá por el streaming.
Todo esto se podría reconfigurar a través de interfaces virtuales, pero no vamos a complicar la historia. Si algun_ está interesad_ en el asunto, hacemos otro tutorial.
## Testear que todo funciona
Si todo va bien, vamos a la dirección de nuestro streaming.
En este caso, usando piperrak.cc y el mount point "ejemplo" la dirección
http://stream.piperrak.cc:8001/ejemplo
# crear el stream de directos
Debería reproducir lo que está sonando en la sala donde tenéis a vuestra usuaria "shoutcast"
Seguimos los pasos documentados en la trastienda
https://sindominio.net/trastienda/tecnica/servicios/streamingdirecto/
Si no funciona:
Incluir index.html,video-js.css, video.js and jquery-slim.min.js y ya lo tienes.
* Revisar que teneis a la usuaria _shoutcast_ en la sala oportuna
* Revisar la configuración de audio de Mumble
* Si la usuaria no está, es que el cliente de mumble de _shoutcast_ está caído
* Si no hay stream en la web del servidor de streaming, a lo mejor teneís mal configurado el script, revisar los mensajes de error que ofrece al arrancar _liquidsoap -v_
# Como hacer que jitsi haga stream en sintoniza
## Si no puedo acceder al entorno gráfico de una manera común
## solucion 1: hackeando jitsi
estable y funciona desde hace un tiempo según su autor:
https://github.com/jitsi/jitsi-meet/issues/2829#issuecomment-509712706
En este caso, configurar un servidor VNC, por ejemplo, **tigervnc** y lo arrancais en una usuaria que tenga privilegios de audio y red, y si tenéis bien configuradas las Xs en el server, podéis acceder en remoto a Mumble y arrancarlo con el usuario y pulseaudio.
## solución 2: con un script ffmpeg
solucion no intusiva con jitis y permite striming de cualquier fuents.
Si no, podéis dejar una maquina que no estéis usando para la charla/streaming haciendo este trabajo, sin complicaros con configurar todo esto en un servidor sin Xs. Incluso, con una Tails o alguna Live con Debian debería ser posible ocnfigurar todo esto sin mucha complicación.
https://community.jitsi.org/t/how-do-i-change-youtube-live-stream-to-another-rtmp-server-url/24817/7?u=lodopidolo
## Links
## solución 3: simulcast a cualquier otra págia
* https://www.mumble.info/
* https://wiki.archlinux.org/index.php/PulseAudio/Examples
* https://www.liquidsoap.info/doc-dev/reference.html
* https://www.linuxfordevices.com/tutorials/debian/install-vnc-server-on-debian
* https://git.sindominio.net/siroco/workshop-sysadmin/src/branch/master/TMUX/index.md
permite enviar simultáneamente a muchos streamers
https://community.jitsi.org/t/stream-to-any-or-multiple-rtmp-destinations-record-simultaneously/51943
## solución 4: rtmp nginix video por exo/guifipedro
https://gitlab.com/guifi-exo/wiki/-/blob/master/howto/rtmp_streamer.md

Loading…
Cancel
Save