Acciones

Streaming

De wiki

Qué es streaming

Significa compartir audio y/o imagen en movimiento a tiempo real.

En el streaming o transmisión, los datos son recibidos desde la persona (o máquina) proveedora de manera constante a la usuaria final. Esto significa que no se hace una descarga completa del fichero de la emisora de los datos a la receptora, sino que se van descargando o entregando a medida que "van saliendo". Es como ir repartiendo las cartas una a una en vez de darte el mazo entero XP

En este caso, hacemos streaming o transmisión en tiempo real: transmitimos y recibimos a medida que "va pasando". Sin embargo, esta "inmediatez" nunca es tal: la velocidad de transmisión dependerá de las condiciones de la conexión a Internet de ambas partes (la que emite y la que recibe).

Qué necesitas para transmitir

  • una computadora
  • tarjeta de audio que funcione
  • webcam en caso de querer transmitir video también
  • conexión a internet
  • conexión con servidor icecast y credenciales de acceso


Herramientas

Icecast

Icecast es un software servidor que hace streaming, esto quiere decir que funciona como la antena de transmisión de una radio o TV digital, recibiendo como "señal" el stream (como paquetes de datos, pedacitos de voz o imagen hechos un paquete de bits) y repartiéndolo a quien quiera escuchar o ver.

La forma de acceder a un stream es a través de una URL Web, como si visitáramos un sitio Web. Por ejemplo, https://trans.kefir.red/radio.ogg o https://trans.kefir.red/tv.webm, donde https://trans.kefir.red es Icecast (la antena) y /radio.ogg o /tv.webm el punto de montaje (el "canal" a sintonizar).

Esta URL puede ser accedida directamente desde cualquier navegador moderno (es decir, cualquiera menos Internet Explorer, nosotras recomendamos Mozilla Firefox), además de desde cualquier reproductor de medios, como puede ser VLC.

Al ser .ogg (audio) y .webm (video) formatos estándar, podemos añadir la radio o TV a cualquier sitio Web utilizando las etiquetas HTML5 estándar <video> o <audio>. No es necesario ningún plugin adicional.

   <video controls src="https://trans.kefir.red/tv.webm">Por favor actualiza tu navegador!</video>

Para poder transmitir hacia un servidor Icecast, necesitas un cliente Icecast (como IDJC, ffmpeg, darkice, mixxx, VLC, etc. hay montones) y los siguientes datos:

  • Usuaria: nombre de la cuenta, algunos servidores Icecast aceptan una cuenta anónima llamada "source"
  • Contraseña: la contraseña de la cuenta, la contraseña por defecto es "hackme"
  • Punto de montaje: el "canal" en el siguiente formato "/nombre.formato", por ejemplo "/radio.ogg" o "/tv.webm"
  • Servidor: la dirección del servidor, por ejemplo "trans.kefir.red"
  • Puerto: el puerto al que conectarse, por defecto "8000"



ffmpeg

Qué es

"FFmpeg es una colección de software libre que puede grabar, convertir (transcodificar) y hacer streaming de audio y vídeo. FFmpeg está desarrollado en GNU/Linux, pero puede ser compilado en la mayoría de los sistemas operativos, incluyendo Windows.

FFmpeg está liberado bajo una licencia GNU Lesser General Public License 2.1+ o GNU General Public License 2+ (dependiendo de qué bibliotecas estén incluidas)."

Fuente »» https://es.wikipedia.org/wiki/FFmpeg



Ejemplos de comandos

Con audio desde el micrófono y video desde la webcam en calidad media

Animate a poner esto en una terminal! :)


 ffmpeg -f v4l2 -video_size 640x480 -framerate 30 \
        -i /dev/video0 -f alsa -i default \
        -f webm -cluster_size_limit 2M -cluster_time_limit 5100 -content_type video/webm \
        -c:a libvorbis -b:a 96K \
        -c:v libvpx -b:v 768k \
        -crf 30 -g 150 -deadline good -threads 4 \
        icecast://usuaria:contrasenia@dominio-del-icecast:puerto/nombredepuntodemontaje.webm
        
        

No te preocupes si no lo entiendes de primera, lo importante es poder modificar la última línea del comando, que es la que indica los datos para hacer la conexión, cambia:

   icecast://usuaria:contrasenia@dominio-del-icecast:puerto/nombredepuntodemontaje.extension
   

Por algo como esto:

   icecast://source:hackme@trans.kefir.red:8000/tv.webm



Solo audio del micrófono en calidad baja

 ffmpeg -f alsa -i default \
        -content_type audio/ogg \
        -c:a libvorbis -b:a 48k \
        icecast://source:hackme@trans.kefir.red:8000/radio.ogg




Debugging

No se escucha

  • Fijate en los controles de volumen los niveles y estado del micrófono!
  • Checa que estés transmitiendo el canal de audio adecuado. Si tienes varias tarjetas de sonido o varios dispositivos con micrófono conectados, asegúrate de transmitir el adecuado.



No se ve

  • Tenías la webcam cubierta?
  • Checa que estés transmitiendo el canal de video adecuado. Si tienes varias tarjetas de video o varios dispositivos con cámara conectados, asegúrate de transmitir el adecuado, por ejemplo la primera webcam (la incorporada) es /dev/video0, si conectas una segunda, será /dev/video1. Busca dónde cambiarlo en el comando.

Aprender más

Hay muchos tutoriales por ahí