jump to navigation

Streaming con VLC en Ubuntu 9.10 11 noviembre 2009

Posted by bushwaca in Aplicaciones, Linux, Ubuntu.
Tags: , , ,
trackback
VLC_icon

VLC

Les mostrare como hacer streaming usando VLC. En este caso enviare por la red un fichero de video, otro de audio y por ultimo la imagen emitida por una webcam para luego captar la señal con otra pc. Usare para video un capitulo de anime en formato mp4, una cancion con formato mp3 y la webcam de mi laptop.

Hacer streaming tiene multiples propositos pero… que es el streaming?

Streaming es un término que se refiere a ver u oír un archivo directamente en una página web (o servidor) sin necesidad de descargarlo antes al ordenador. En términos más complejos podría decirse que describe una estrategia sobre demanda para la distribución de contenido multimedia a través del internet.
Este tipo de tecnología permite que se almacenen en un búfer lo que se va escuchando o viendo. El streaming hace posible escuchar música o ver videos sin necesidad de ser descargados previamente.

Con vlc se puede hacer streaming de muchas formas pero elegi hacerlo via web (http) porque me parecio algo mas estandar, practico y util.

No pretendo hacer de esto un manual ni nada parecido, hay muchas formas de hacerlo y configurarlo para hacer esto mismo. Para ello tienen muchisima informacion en la web.

Pero ya que estamos… que es VLC?

VLC media player (inicialmente VideoLAN Client) es un reproductor multimedia del proyecto VideoLAN; es un software libre distribuido bajo la licencia GPL. Soporta muchos códecs de audio y video, así como diferentes tipos de archivos, además de DVD, VCD y varios protocolos streaming. También puede ser utilizado como servidor en unicast o multicast, en IPv4 o IPv6, en una red de banda ancha. Utiliza la biblioteca códec libavcodec del proyecto FFmpeg para manejar los muchos formatos que soporta, y emplea la biblioteca de descifrado DVD libdvdcss para poder reproducir los DVD cifrados. Además VLC tiene soporte para Video4Linux.
Es multiplataforma contando con versiones para GNU/Linux, Microsoft Windows, Mac OS X, BeOS, BSD, Pocket PC, Solaris.

Es un reproductor de audio y video genial, ya que funciona con librerias en vez de codecs y lo mejor de todo es que reproduce muchos formatos diferentes. Como suelo decir… reproduce hasta discos de empanadas jajaja.

vlcstreming

Web oficial: http://www.videolan.org/vlc/

Comencemos:

0 – Consideraciones

a) De ahora en mas llamaremos “servidor” a la pc que envia el fichero, señal, o como quieran llamarle, por la red (internet) y “cliente” a la pc que recibe esa informacion (logico no? jajaja).

b) La pc servidor en este caso usara como sistema operativo Ubuntu 9.10 usando la version de “VLC 1.0.2 Goldeneye” y la pc cliente tendra un Debian Lenny (esta ultima pc podria no ser ese SO, funcionaria supuestamente con cualquier sistema operativo que tenga VLC o algun otro programa similar).

c) Si quieren hacer esto por fuera de la red y estan detras de un router deben tener un puerto abierto apuntando a la pc servidor, es decir hacer un “port forwarding”, asi como tambien tener un dominio registrado en su router.

d) Los distintos metodos de streaming son muy similares pero igualmente repetire los procedimientos paso por paso.

e) No usare una codificacion optima para realizar esto, solo usare una estandar ya que eso dependera mucho de la conexion que tengamos y de los clientes que se conecten. Si les parece que les va lento o algo jueguen con la configuracion, a mi me va decente.

f) Usare una configuracion estandar del servidor de VLC, no pretendo hacer de esto un canal de television. Si quieren hacerlo mejor jueguen con la configuracion.

g) Si bien pueden no cumplir con alguno de estos requisitos, esto puede servirles de referencia.

1 – Instalar vlc:

Instalamos VLC tanto en la pc servidor como en la pc cliente.

a – Abrimos una consola y ponemos:
sudo aptitude install vlc mozilla-plugin-vlc

b – Para ejecutarlo vamos a “Aplicaciones – Sonido y video – VLC media player” o ponemos directamente en una consola:
vlc

2 – Averiguar la IP del servidor

Explicare en este caso la forma mas simple. Vamos a la pc que sera nuestro servidor de streaming, luego vamos a nuestra barra superior de Gnome y le damos click derecho al simbolo de red. Del menu desplegable que se nos abre seleccionamos “Informacion de la conexion”. Buscamos donde dice “Direccion IP” y anotamos ese numero en algun lugar ya que nos sera util luego.

ipred

3 – Streaming de un video

Enviaremos un video por internet y recibiremos la transmision con otra pc.

En el servidor

a – Vamos a la pc servidor y abrimos VLC llendo a “Aplicaciones – Sonido y video – VLC media player” o ponemos directamente en una consola:
vlc

b – Vamos a “Medio – Abrir Volcado de red…:N”

Nota: dependiendo de la version en algunos casos en vez de “Medio” puede decir “Archivo”. Tambien podriamos ir a “Medio – Emision” directamente en vez de a volcado de red.

c – Vamos a la solapa “Archivo:F” y le damos al boton “Add”. Seleccionamos de nuestro disco el fichero de video y le damos a “abrir”.

vlcvideo01

d – Luego veran que junto al boton “Reproducir” se encuentra un menu desplegable. De ese menu seleccionan “Emision”.

e – En la ventana que se nos abre veran que donde dice “source” dice la ruta donde se encuentra el fichero de video. Por el momento no es muy importante esto, pero mas adelante veran que puede ser util esta ventana. Le dan a “Siguiente”.

f – Aqui del menu desplegable que dice “Archivo” seleccionamos “HTTP”. Luego le damos al menu desplegable que dice “Profile” y seleccionamos lo que serian los codecs. Personalmente uso el que dice “Video – MPEG-2 + MPGA (TS)” aunque puede que a ustedes les funcione otro.

vlcvideo02

Nota: Si tildan la casilla que dice “Display locally” podran ver el video mientras lo transmiten por la web. Les recomiendo que lo tilden por el momento para ver de que realmente estan transmitiendo el video, luego cuando esten mas familiarizados con eso pueden no tildarlo si quieren.

Vamos al boton que dice “Añadir” para especificar la configuracion. Donde dice “Direccion” ponemos la ip de nuestra pc (es decir del servidor) como por ejemplo 10.10.10.10 y donde dice “Puerto” pues el puerto que queremos que use, por ejemplo 8081. Deben tener en cuenta de que si quieren hacerlo por fuera de su red ese puerto debe estar abierto en su router y apuntar a la pc que hace de server. Cuando terminamos le damos a “Siguiente”.

vlcvideo03

g – De esta ventana tildamos la casilla que dice “Mantener abierta salida de emision”. Lo demas no es indispensable por lo que lo dejamos asi.

Donde dice “Generated stream output string” nos dice las “variables” (por llamarlo de alguna manera) que estamos usando en este momento. Esto es util si queremos lanzar toda esta configuracion desde una consola.
Cuando terminamos le damos al boton “Emision” y estaremos transmitiendo el video.

vlcvideo04


En el cliente

a – Vamos a la pc servidor y abrimos VLC llendo a “Aplicaciones – Sonido y video – VLC media player” o ponemos directamente en una consola:
vlc

b – Vamos a “Medio – Abrir Volcado de red…:N”

Nota: dependiendo de la version en algunos casos en vez de “Medio” puede decir “Archivo”.

c – Seleccionamos “http” y en la casilla que se encuentra al lado completamos con la ip del servidor al cual nos queremos conectar seguida por el puerto que le pusimos, osea IP:PUERTO, es decir que nos quedaria asi:
10:10:10:10:8081

Nota: Si estan usando un ubuntu como cliente tendran la casilla para ponerle el puerto.

En el caso de tener un dominio podrian usarlo, esto seria util por si su IP cambia o por si su pc no esta dentro de su red. La forma seria la misma, solo que en vez de poner su ip y puerto ponen su dominio seguido del puerto, como por ejemplo mydominio.dyndns.org:8081 .

Cuando terminamos le damos a la tecla “Enter” (En debian dice “Aceptar” y en Ubuntu dice “Emision”) y listo.

vlcvideo05

Recepcion del streaming en Debian Lenny


4 – Streaming de sonido

Enviaremos una cancion por internet y la escucharemos con otra pc.

En el servidor

a – Vamos a la pc servidor y abrimos VLC llendo a “Aplicaciones – Sonido y video – VLC media player” o ponemos directamente en una consola:
vlc

b – Vamos a “Medio – Abrir Volcado de red…:N”

Nota: dependiendo de la version en algunos casos en vez de “Medio” puede decir “Archivo”. Tambien podriamos ir a “Medio – Emision” directamente en vez de a volcado de red.

c – Vamos a la solapa “Archivo:F” y le damos al boton “Add”. Seleccionamos de nuestro disco el fichero de video y le damos a “abrir”.

d – Luego veran que junto al boton “Reproducir” se encuentra un menu desplegable. De ese menu seleccionan “Emision”

e – En la ventana que se nos abre veran que donde dice “source” dice la ruta donde se encuentra el fichero de video. Por el momento no es muy importante esto, pero mas adelante veran que puede ser util esta ventana. Le dan a “Siguiente”.

f – Aqui del menu desplegable que dice “Archivo” seleccionamos “HTTP”. Luego le damos al menu desplegable que dice “Profile” y seleccionamos lo que serian los codecs. Personalmente uso el que dice “Audio – Vorbis (OGG)” aunque puede que a ustedes les funcione otro.

Vamos al boton que dice “Añadir” para especificar la configuracion. Donde dice “Direccion” ponemos la ip de nuestra pc (es decir del servidor) como por ejemplo 10.10.10.10 y donde dice “Puerto” pues el puerto que queremos que use, por ejemplo 8081. Deben tener en cuenta de que si quieren hacerlo por fuera de su red ese puerto debe estar abierto en su router y apuntar a la pc que hace de server. Cuando terminamos le damos a “Siguiente”.

g – De esta ventana tildamos la casilla que dice “Mantener abierta salida de emision”. Lo demas no es indispensable por lo que lo dejamos asi.

Donde dice “Generated stream output string” nos dice las “variables” (por llamarlo de alguna manera) que estamos usando en este momento. Esto es util si queremos lanzar toda esta configuracion desde una consola.
Cuando terminamos le damos al boton “Emision” y estaremos transmitiendo.

En el cliente

a – Vamos a la pc servidor y abrimos VLC llendo a “Aplicaciones – Sonido y video – VLC media player” o ponemos directamente en una consola:
vlc

b – Vamos a “Medio – Abrir Volcado de red…:N”

Nota: dependiendo de la version en algunos casos en vez de “Medio” puede decir “Archivo”.

c – Seleccionamos “http” y en la casilla que se encuentra al lado completamos con la ip del servidor al cual nos queremos conectar seguida por el puerto que le pusimos, osea IP:PUERTO, es decir que nos quedaria asi:
10:10:10:10:8081

Nota: Si estan usando un ubuntu como cliente tendran la casilla para ponerle el puerto.

En el caso de tener un dominio podrian usarlo, esto seria util por si su P cambia o por si su pc no esta dentro de su red. La forma seria la misma, solo que en vez de poner su ip y puerto ponen su dominio seguido del puerto, como por ejemplo mydominio.dyndns.org:8081 .

Cuando terminamos le damos a la tecla “Enter” (En debian dice “Aceptar” y en Ubuntu dice “Emision”) y listo.

5 – Streaming de Webcam

Enviaremos lo que va capturando una camara web, lo transmitiremos por internet y recibiremos la señal con otra pc.

En el servidor

a – Vamos a la pc servidor y abrimos VLC llendo a “Aplicaciones – Sonido y video – VLC media player” o ponemos directamente en una consola:
vlc

b – Vamos a “Medio – Abrir Volcado de red…:N”

Nota: dependiendo de la version en algunos casos en vez de “Medio” puede decir “Archivo”. Tambien podriamos ir a “Medio – Aparato de captura” directamente en vez de a volcado de red.

c – Vamos a la solapa “Aparato de captura” y donde dice “Nombre de aparato de captura ponen su webcam, que en mi caso es /dev/video0 pero si tienen algun otro dispositivo de captura como una capturadora de video podria ser /dev/video1 . Donde dice “Options” lo dejamos “Por Defecto” salvo que tengan problemas con eso.

Nota: si no saben bien que dispositivos de video tiene ponen en una consola ls /dev/video* que se los listara.

d – Luego veran que junto al boton “Reproducir” se encuentra un menu desplegable. De ese menu seleccionan “Emision”

e – En la ventana que se nos abre veran que donde dice “source” dice la ruta donde se encuentra el fichero de video. Por el momento no es muy importante esto, pero mas adelante veran que puede ser util esta ventana. Le dan a “Siguiente”.

f – Aqui del menu desplegable que dice “Archivo” seleccionamos “HTTP”. Luego le damos al menu desplegable que dice “Profile” y seleccionamos lo que serian los codecs. Personalmente uso el que dice “Video – MPEG-2 + MPGA (TS)” aunque puede que a ustedes les funcione otro.

Vamos al boton que dice “Añadir” para especificar la configuracion. Donde dice “Direccion” ponemos la ip de nuestra pc (es decir del servidor) como por ejemplo 10.10.10.10 y donde dice “Puerto” pues el puerto que queremos que use, por ejemplo 8081. Deben tener en cuenta de que si quieren hacerlo por fuera de su red ese puerto debe estar abierto en su router y apuntar a la pc que hace de server. Cuando terminamos le damos a “Siguiente”.

g – De esta ventana tildamos la casilla que dice “Mantener abierta salida de emision”. Lo demas no es indispensable por lo que lo dejamos asi.

Donde dice “Generated stream output string” nos dice las “variables” (por llamarlo de alguna manera) que estamos usando en este momento. Esto es util si queremos lanzar toda esta configuracion desde una consola.
Cuando terminamos le damos al boton “Emision” y estaremos transmitiendo..

En el cliente

a – Vamos a la pc servidor y abrimos VLC llendo a “Aplicaciones – Sonido y video – VLC media player” o ponemos directamente en una consola:
vlc

b – Vamos a “Medio – Abrir Volcado de red…:N”

Nota: dependiendo de la version en algunos casos en vez de “Medio” puede decir “Archivo”.

c – Seleccionamos “http” y en la casilla que se encuentra al lado completamos con la ip del servidor al cual nos queremos conectar seguida por el puerto que le pusimos, osea IP:PUERTO, es decir que nos quedaria asi:
10:10:10:10:8081

Nota: Si estan usando un ubuntu como cliente tendran la casilla para ponerle el puerto.

En el caso de tener un dominio podrian usarlo, esto seria util por si su P cambia o por si su pc no esta dentro de su red. La forma seria la misma, solo que en vez de poner su ip y puerto ponen su dominio seguido del puerto, como por ejemplo mydominio.dyndns.org:8081 .

Cuando terminamos le damos a la tecla “Enter” (En debian dice “Aceptar” y en Ubuntu dice “Emision”) y listo.

6 – Streaming por consola

Les explicare un poco como hacer todo lo que hicimos anteriormente pero usando solamente la consola.
Esto es util por ejemplo para no repetir todos esto pasos cada vez que queremos hacer streaming. Ademas puede ser muy util por ejemplo para hacer un acceso remoto a la pc servidor de streming y tirar el comando en una consola y listo o incluso crearle un lanzador para hacer un streaming de algo especifico como es la webcam.

Veamos como es la cosa:

En el servidor:

Usaremos algunos datos que nos aparecieron en el punto e y g donde les dije que podrian ser utiles mas adelante.

Pues bien, la forma de hacerlo seria lanzando en una consola o terminal “vlc FUENTE SALIDADELSTREMING” Es decir que ponemos vlc + datos de la ventana source del punto e + datos de la salida del streaming del punto g”.
Es decir, podriamos repetir todo el procedimiento que les explique y copiar esos datos para usarlos ahora.
Tambien podriamos usar “cvlc” en vez de “vlc” que seria lo mismo solo que no abririamos el programa propiamante dicho, sino que se ejecuraria solamente en consola sin abrirnos una ventana de vlc.

Por ejemplo, si usaron exactamente los mismos codecs y las misma cosas seria:

Para la webcam:

cvlc v4l2:///dev/video0 --sout "#transcode{vcodec=mp2v, vb=800, scale=1, acodec=mpga, ab=128, channels=2, samplerate=44100}:std{access=http, mux=ts, dst=10.10.10.10:8081} :sout-keep"

Para el audio:

cvlc /home/USURAIO/Sonido.mp3 --sout "#transcode{acodec=vorb, ab=128, channels=2, samplerate=44100}:std{access=http, mux=ogg, dst=10.10.10.10:8081} :sout-keep"

Para el video:

cvlc /home/USUARIO/Video.mp4 --sout "#transcode{vcodec=mp2v, vb=800, scale=1, acodec=mpga, ab=128, channels=2, samplerate=44100}:std{access=http, mux=ts, dst=10.10.10.10:8081} :sout-keep"

Notas:

– Por alguna razon desconocida los comandos recientemente pagados no se muestran correctamente. Supongo que por estar todo en una sola linea y sin espacios, con lo cual les agregue espacios despues de cada coma para que sea entendible.

– Deben tener en cuenta que si sus carpetas o ficheros tienen nombre con espacios deben decirle al sistema, de otra manera no los encontrara.Por ejemplo, si tenemos un fichero que se llama “Video 342.mp” y se encuentra en la carpeta “Mis videos” deben poner “/Mis\ videos/Video\ 342.mp4” o directamente todo entre comillas como por ejemplo “/home/USUARIO/Mis videos/Video 342.mp4”

– Cuando pongo USUARIO deben poner el suyo completando con la ruta de su fichero.

– Tengan en cuenta que al final de la linea aparece 10.10.10.10:8081 que seria la ip y el puerto del servidor, cambienlos por sus datos.

En el cliente

Bueno, esto funciona de la forma “vlc IP:PUERTO” es decir que pondriamos en una consola:
vlc http://10.10.10.10:8081

Claro que si estan usando un dominio seria:
vlc http://mydominio.dyndns.org:8081

Listo.

PD: Escribi demasiado, creo me tomare un descanso jajaja.

Bueno, espero que les sea util. Hasta la otra.

Comentarios»

1. Alejandro - 10 enero 2010

Genial. Se agradece mil.

bushwaca - 10 enero 2010

Gracias a ti por comentar.

Saludos.

2. fyodor - 12 enero 2010

gracias por el articulo me ayudo mucho. En mi caso logre transmitir mi webcam desde servidor a cliente en mi red de hogar. Ahora mi pregunta es, ¿cómo logro hacer para estar emitiendo desde el vlc y recibir la emisión en una pagina web?

bushwaca - 12 enero 2010

Bueno, tu pregunta es mas mas del lado de diseño web y la verdad que estoy desactualizado en eso. En teoria seria colgar un reproductor web que permita recibir señales de streaming en al pagina en cuestion. Tambien hay algunos servicios web que facilitan hacer el streaming y algunos tienen sus reproductores listos para colgar en las webs.

Saludos y suerte con eso.

3. josé - 17 mayo 2010

Muy claro el artículo. podrás dar mas detalle respecto de la configuración de las ip y de los puertos.
Gracias

bushwaca - 18 mayo 2010

Bueno… veamos si entendi la pregunta… va, no es que la pregunta sea dificil de entender, sino que es muy amplia.

a – Si el streaming lo haces a travez de tu Lan:

Si el servidor de streaming y el cliente estan en tu Lan no necesitas hacer casi nada. Lo unico que debes saber es la ip que tiene la pc que hace de servidor.

Supongamos que la IP es 192.168.1.111 y en la configuracion de vlc le pusiste que use el puerto 900 y comienzas a emitir señal de streaming. En el cliente tan solo pones la IP:PUERTO del servidor como lo explico en el post, es decir 192.168.1.111:900 y listo.

En resumen el camino del streaming seria “Servidor -> Cliente” o si tienes un router o switch en tu LAN podria ser “Servidor -> Router (o Switch) -> Cliente”

b – Si el streaming lo haces a travez de internet:

Si el servidor de streaming y el cliente no se encuentran en la misma red debes abrir en el router un puerto para realizar esto y que este puerto apunte al servidor de streaming.

Esto de redirigir un puerto a una IP se conoce como “Port forwarding” es decir, redirigir un puerto a una IP especifica. Cada router tiene un software de configuracion diferente, con lo cual no puedo decirte exactamente donde tocar, pero en alguna opcion del router debe dejarte poner una IP en una casilla y junto a ella un puerto o un puerto de inicio y un puerto de cierre que se le podria llamar “rango de puertos”. Esto de “rango de puertos” funcionalmente seria lo mismo para este caso. En tal caso tu podrias ponerle el mismo puerto de inicio y de cierre (redirigiendo de esta manera un solo puerto, ya que redirigir mas no tiene sentido en este caso). De esta manera estarias diciendole al router que toda peticion que llegue a ese puerto o puertos lo envie a la pc que tiene “esa” IP (y de paso estas abriendo ese puerto en ese router y por eso que en el rango de puertos pones el mismo puerto tanto en inicio como en el cierre ya que no queremos tener puertos abiertos si no es necesario).

Ahora bien, antes de redirigir el puerto debes ponerle una IP fija al servidor de streaming, o por lo menos es lo recomendable. Porque esto? Simplemente porque si el servidor no tiene IP fija esta puede cambiar y si cambia, la informacion/peticion puede no llegar. Recuerda que antes hicimos un “port forwarding” con lo cual para router toda peticion que se hace a ese puerto la enviara a esa IP y si esta cambio al router no le importa, sigue la regla a rajatabla.

Para ponerle IP fija dependera del sistema operativo del servidor, pero para Debian o deribados (Ubuntu por ejemplo) debes hacer esto:

Nota: Imganino que el servidor es una pc de escritorio, con lo cual se conecta a la red con la placa ethernet. Si es una laptop no te recomiendo ponerle IP fija ya que peudes tener problemas para tomar red en otro lugar que no sea en tu lan.

1 – Datos preliminares:

a- Miras tu configuracion de red poniendo en una consola:
ifconfig

y te dara como resultado algo como esto:
eth0 Link encap:Ethernet direcciónHW 02:5g:3e:8i:c9:78
Direc. inet:192.168.1.100 Difus.:192.168.1.255 Másc:255.255.255.0

Direc. inet: Esta es tu ip actual
Difus: Es el broadcast
Masc: Es la mascara de subred

Anotas esos datos.

Nota: si es wifi debes mirar donde dice wlan0 y no en donde dice eth0

b – Miras la ip de tu router poniendo en una consola:
route -n

y dira algo como esto
Tabla de rutas IP del núcleo
Destino Pasarela
192.168.1.0 0.0.0.0
169.254.0.0 0.0.0.0
0.0.0.0 192.168.1.100

Siendo 192.168.1.100 la ip de tu router.

Anotas ese dato.

2 – Editas el fichero de configuracion de red poniendo en una consola:
sudo nano /etc/network/interfaces

te dira algo asi:
auto lo
iface lo inet loopback

Lo editas quedandote similar a esto (cambia por tus datos)

auto eth0
iface eth0 inet static
address 192.168.1.171 #IP de nuestra pc
netmask 255.255.255.0 #Mascara de subred
gateway 192.168.0.1 #IP del router

3 – Reinicias la interface de red con:
sudo ifup eth0

Nota: si es wifi reemplaza eth0 por wlan0

Listo lo de la IP… continuemos.

Ya tienes IP fija en el servidor y ya tienes un puerto redireccionado a el y con esto podriamos decir que estamos si se trata de una red interna de un tamaño considerable… pero tu IP publica (es decir la IP con la que sales a internet) puede cambiar ya que rara vez es fija y esto trae problemas al intentar conectarte con tu servidor desde fuera de la red (como por ejemplo estando en un cafe y tu server envia señal de tu camara web).
Entonces como me conecto desde fuera de mi red si la IP que tengo en casa cambia?
Simple, con un dominio. Bueno… no voy a explicar como hacerte un dominio, es mas creo que ya lo he explicado antes pero es bastante sensillo. Disculpa por esto pero ya que se esta poniendo algo largo este comentario. Igualmente te recomiendo dyndns como servicio de dominio ya que funciona bien y es gratuito.
Pero que demonios es un dominio?
Lo que hace un dominio es similar a un “port forwarding” pero en vez de relacionar una IP con un puerto con esto relacionamos una IP con una “direccion de internet” o mejor dicho con un dominio.
Lo que hacemos, es sincronizar tu IP publica con un dominio (digamosle direccion de internet), con lo cual al usar ese “nombre de dominio” (que dicho sea de paso debe estar configurado en tu router) te conectas a tu red por mas de que tu IP publica cambie ya que las dos son la misma cosa, es decir “el nombre de dominio” y “la direccion de IP” se pueden usar indistintamente ya que estan sincronizadas (uff si que es dificil cuando te toca explicar algo simple).
Bueno, cuando lo tienes sigues.

Ahora lo que queda es hacer simplemente lo que hicimos antes.
Supongamos que la IP del servidor es 192.168.1.111 y en la configuracion de vlc le pusiste que use el puerto 900, y a su vez estos datos estan metidos en tu router (port forwarding) y comienzas a emitir señal de streaming.
En el cliente sigues la misma idea de IP:Puerto solo que en vez de la IP pones tu dominio con lo que seria minombrededominio.dyndns.org:900 y listo.

En resumen el camino del streaming seria “Servidor -> Router -> Internet -> Cliente” y si lo haces de esta manera y las dos pc estan en tu LAN y en vez de la IP usas el “dominio:puerto” el camino seria Servidor -> Router -> Internet -> Router -> Cliente”.

Espero haber aclarado tu duda y no haber abrumado con tanta charla.

Saludos y suerte.

josé - 19 mayo 2010

Muchas gracias!!, eres muy amable en responder; voy a estudiar las alternativas y te cuento luego..
Un abrazo. José

bushwaca - 19 mayo 2010

Dale, cualquier cosa me consultas.

Saludos y suerte.

4. Nicolas - 9 junio 2010

Buenas gente, tengo un dilema. logro ver en los clientes, pero va unos 5 seg más tarde. Tienen idea que puede ser?

bushwaca - 9 junio 2010

Es bastante logico que ocurra un pequeño retardo en la transmision. Sin ir mas lejos y salvando las comparaciones, si comparas la recepcion del tv “normal” con respecto al tv satelital veras que uno llega mas tarde que otro.

Intentare explicarlo:

Tu problema es lo que se conoce como delay o retardo. Esto tiene una intima relacion entre:

a) lo que transmites.
b) como lo transmites.
c) donde lo transmites.
d) a quienes lo transmites.

1) Mientras mas grande sea el fichero que transmites mayor ancho de banda consumira y mientras menor sea el fichero transmitido menor sera el ancho de banda que consumira. Sabiendo esto podemos decir que entre lo transmitido y el ancho de banda existe una relacion directa.

Es decir que, si reducimos lo que transmitimos reduciremos ancho de banda. Para esto nos valemos de los codecs que utilizamos para transmitir la señal. Cuanto mayor sea la compresion del codec mas reducira el fichero pero este perdera calidad, con lo cual hay que establecer una relacion entre “calidad – gusto de cada uno”.

2) Tambien tenemos que tener en cuenta el protocolo de transmision que utilizamos al enviar nuestro fichero. TCP y HTTP tiene una forma de transmision distinta a UDP y RSTP con lo cual al utilizar una u otra podemos notar cambios.

Cuando TCP y HTTP sufren un error de transmision, siguen intentando transmitir los paquetes de datos perdidos hasta conseguir una confirmacion de que la información llego en su totalidad. Sin embargo, UDP continua mandando los datos sin tomar en cuenta interrupciones, ya que en una aplicación multimedia estas perdidas son casi imperceptibles.

Es decir que, mientras mas ruidos, interrupciones existan en nuestra transmision mas aumentara este retraso y esto trandra relacion directa con la forma utilizada para transmitir.

3) Ademas, hay que tener en cuenta el termino “precarga”. Cuando el reprocuctor del cliente recibe la transmision, este va almacenando la informacion en lo que se conoce como buffer y en el caso de que ocurran errores en la transmision la utiliza para asi hacer que se noten menos estos salto.
Digamos como que esto es similar a los reproductores portatiles de cds que van precargando la musica para que cuando ocurran “saltos” la musica siga reproduciendose sin problemas.

En definitiva, la memoria disponible para el buffer del reproductor influye en que se noten menos los saltos ocacionados en la transmision. A mayor cantidad de saltos mas se utilizara el buffer y mientras mas se utilice el buffer mas retraso tendra la transmision.

4) Por ultimo tenemos que tener en cuenta la cantidad de usuarios que utilicen el streaming. A mayor cantidad de usuarios colgados de una transmision mayor ancho de banda se necesita.

Como veras si bien esto no es muy complejo de entender es algo dificil establecer una relacion con todas estas cosas para hacer un streaming decente. Solamente aprenderas esto con la practica y te daras cuenta que no todos los casos son iguales. Al cambiar la PC, la aplicacion del streaming, lo transmitido, el codec utilizado, el protocolo de transmision, la red, la cantidad de usuarios o solamente una de estas cosas, el streaming puede sufrir cambios.

Saludos y espero haber aclarado un poco la duda.

5. deck1 - 22 junio 2010

esta interesante … en caso de una webcam con microfono incluido como le añades el audio al stream …aparece en las propiedades de audio la entrada del mic de la camara…

bushwaca - 23 junio 2010

Bueno, la verdad que no tengo como probarlo ya que no tengo camara externa con microfono, pero seguramente puede hacerse.

Mira en el punto “5 – Streaming de Webcam”. Cuando vamos a la solapa “Aparato de captura” (punto b y c) veras que tienes dos lugares para completar. El primero dice “Nombre del dispositivo de video” que por ejemplo iria “/dev/video0” y debajo dice “Nombre del dispositivo de audio” que ahi iria el mic de la webcam.
Cual es el dispositivo que corresponde a el mic de la camara.? Pues.. depende de tu pc, pero si miras en el directorio “/dev” de tu sistema puedes darte una idea.

Saludos y suerte.

6. Héctor - 29 julio 2010

Hola. todo el procedmientos está clara y prolijamente explicado. Muchas gracias.
Viendo tus conocimientos sobre el tema VLC-Streaming,
me atrevo a plantear un caso particular, que no puedo resolver y pudiera ser de interés.
Necesito hacer streaming de audio a páginas como Justin.tv desde VLC. Existe una aplicación específica para esta tarea:jtvlc. La misma exige que el vlc cree un archivo: vlc.sdp. Bien, mi problema es que no logro crear ese archivo. Mis conocimientos de informática y Debian en particular, sólo son los de un usuario. Si la consulta resulta de interés, gustoso postearé los comandos y el procedimiento que intento. Saludos cordiales

bushwaca - 30 julio 2010

Bueno… realmente no comprendo del todo el procedimiento de esto… quiero decir con esto que no se como es que haces streaming luego con ese fichero ni nada de eso, pero como crearlo es simple.

Para hacer mas facil me autocopio y me modifico:

a – Vamos a la pc servidor y abrimos VLC llendo a “Aplicaciones – Sonido y video – Reproductor multimedia VLC” o ponemos directamente en una consola:
vlc

b – Vamos a “Medio – Abrir Volcado de red”

c – Vamos a la solapa “Archivo:” y le damos al boton “Añadir”. Seleccionamos de nuestro disco el fichero de sonido y le damos a “abrir”.

d – Luego veran que junto al boton “Reproducir” se encuentra un menu desplegable. De ese menu seleccionan “Emitir”.

e – En la ventana que se nos abre veran que donde dice “fuente” dice la ruta donde se encuentra el fichero de sonido. Le dan a “Siguiente”.

f – Aqui donde dice “Destinos” veran un menu desplegable. Como en este caso queremos generar un fichero “.sdp” dejamos el menu desplegable en “Archivo” y luego seleccionamos el boton que esta a su lado que dice “Añadir”. Le damos un nombre, como por ejemplo “mitema.sdp” (sin comillas) y lo guardara en nuestra carpeta personal. Si queremos cambiar esto podrimaos poner la ruta completa de donde queremos que nos lo guarde (por ejemplo /home/MICARPETA/carpeta/mitema ) o podriamos hacer uso del boton “Explorar” que vemos junto al nombre que pusimos.

Luego donde dice “Opciones de trascodificacion” seleccionamos lo que serian los codecs. Personalmente uso el que dice “Audio – Vorbis (OGG)” aunque puede que a ustedes les funcione otro.

Nota: Si tildan la casilla que dice “Mostrar en local” podran escuchar el tema localmente mientras lo transmiten por la web. Por el momento no lo tildamos para no confundirnos.

Al terminar le dan a “Siguiente”

g – Ahora nos muestra una nueva ventana y solo tildamos la casilla que dice “Mantener abierta salida de emision”. Lo demas no es indispensable por lo que lo dejamos asi.

Donde dice “Generated stream output string” nos dice las “variables” (por llamarlo de alguna manera) que estamos usando en este momento. Esto es util si queremos lanzar toda esta configuracion desde una consola.

Cuando terminamos le damos al boton “Emitir” y estaremos creando el fichero “.sdp” en la carpeta que le especificamos.

i – Comprobamos de que funciona el fichero:
Vamos a la carpeta donde se encuentra nuestro fichero “.sdp” y lo abrimos con algun reproductior como totem o el que queramos.

Ahora bien, ya tenemos el fichero creado, pero como deseas transmitirlo no tengo idea ya que no se como es que funciona justin. Supongo que en realidad lo que quieres hacer es en vez de trasmitirlo como http (como explique en el post) quieres hacerlo como rtp o udp… siendo asi en vez de poner “archivo” en el punto “F” lo cambias por el que se requiera.

Saludos y espero que te sea util o por lo menos para darte una idea de lo que debes hacer.

Héctor - 30 julio 2010

Estoy muy agradecido por tu atención y tu tiempo.
Nobleza obliga. La páginas como Justin tv trabajan en flash. Necesitan reconocer una fuente de video para habilitar el acceso, Esto en Linux no es tan fácil por la diferencia de versiones entre los plugins. Como yo solo quiero hacer streaming de audio, (micrófono) con usar una imágen o la webcam como fuente sería suficiente. En principio resolvíe el problema creando un dev de video virtual con vloopback y usando WebCamStudio. Funciona, pero es un tanto pesado,
la otra solución más liviana es con VLC y JTVLC, pero no puedo hacerla funcionar por la falla al crear el *.dsp.
Los comandos que se indican en la página oficial son
Ex. 2) To stream your webcam, also displaying it on your screen:
vlc v4l2:// -vvv input_stream –sout=’#duplicate{dst=display, dst=”transcode{venc=x264{keyint=60,idrint=2},vcodec=h264,vb=300,acodec=mp4a,ab=32,channels=2,samplerate=44100}:rtp{dst=127.0.0.1,port=1234,sdp=file:///home/xxxx/vlc.sdp}”}’
—–
Esto funciona es decir abre la cámara… pero no crea el vlc.sdp necesario para el siguiente comando que iniciaría el streaming a justin tv

./jtvlc xxxxx live_xxxxxxxxxxxxxxx /home/xxxx/vlc.sdp -d
——-
las x deben reemplazarse por el nombre de usuario o la clave de acceso a justin.
———-
Las instrucciones oficiales están aquí:
http://apiwiki.justin.tv/mediawiki/index.php/Linux_Broadcasting_API
Saludos cordiales

bushwaca - 31 julio 2010

Ahh bueno, de esta manera estamos mas cerca de esclarecer la cosa. Con eso que me pusiste se me aclaro un poco la cosa ya que mirando ahi en el codigo que pegaste dice “duplicate”, con lo que imagino que se refiere a que estas usando dos funciones…. igual supongo que se refiere al audio y video en este caso, pero me llamo la atencion.

1 – Si miras en la web que me pusiste dice:
Start VLC – When broadcasting, VLC should output a duplicate stream of the video and audio to any open port on your machine via the RTP protocol. You must also select the option to generate an sdp file at a specific location anywhere in your file system when setting up the stream.

Es decir, debes generar el fichero sdp y transmitir por RTP al mismo tiempo. Bueno, sensillo eso:

2 – Haces todos los paso nuevamente como puse antes y te detienes en el punto “F” y haces esto:

f – Aqui donde dice “Destinos” veran un menu desplegable. Como en este caso queremos generar un fichero “.sdp” dejamos el menu desplegable en “Archivo” y luego seleccionamos el boton que esta a su lado que dice “Añadir”. Le damos un nombre, como por ejemplo “mitema.sdp” (sin comillas) y lo guardara en nuestra carpeta personal. Si queremos cambiar esto podriamos poner la ruta completa de donde queremos que nos lo guarde (por ejemplo /home/MICARPETA/carpeta/mitema.sdp ).

Al terminar de darle un nombre miramos debajo de donde dice “destinos” y veremos un simbolo “+” le damos click y seleccionamos un nuevo destino, en este caso elegimos RTP y luego el damos al boton que esta junto que dice “Añadir”. Ahi completamos con la ip que necesitamos y con el puerto. En el ejemplo de la wiki usa “localhost”, es decir 127.0.0.1 y como puerto 1234. Lo completamos segun corresponda en cada caso.

Ahora estamos haciendo dos cosas al mismo tiempo. Por un lado generando el fichero sdp y por el otro haciendo streaming por RTP.

Luego donde dice “Opciones de trascodificacion” seleccionamos lo que serian los codecs. Personalmente uso el que dice “Audio – Vorbis (OGG)” aunque puede que a ustedes les funcione otro como mp3.

Nota: Si tildan la casilla que dice “Mostrar en local” podran escuchar el tema localmente mientras lo transmiten por la web. Por el momento no lo tildamos para no confundirnos.

Al terminar le dan a “Siguiente”
g – Ahora nos muestra una nueva ventana y solo tildamos la casilla que dice “Mantener abierta salida de emision” si es que lo queremos. Lo demas no es indispensable por lo que lo dejamos asi.
Luego de esto veremos que nos genera un codigo de la salida de emision generada. Por ahi te es util. Como veras esta salida es diferente a la de la wiki, fundamentalmente porque aqui estas trasnmitiendo un fichero de sonido y no “audio y video” como es en el caso de la webcam.

Al terminar le das a “Emitir” y listo.

Bueno, espero que te sea util o por lo menos que estes mas cerca de esto que buscas.

7. limberg - 23 agosto 2010

hola tengo un canal de tv por internet
para cuantos usuarios puedo emitir

bushwaca - 23 agosto 2010

Depende del ancho de banda que tengas disponible y como lo tengas configurado. No se si usas algun servicio especial para colgar el streaming, si lo cuelgas directamente de un servidor personal, si usas un servidor externo, que codecs usas para transmitir el video (en este caso un canal de tv en si), etc. Igualmente estos datos serian siempre relativos ya que dependiendo como uno los combine pueden dar un resultado diferente.

Se que seguramente esto no responde en casi nada tu pregunta pero no puedo saberlo asi como asi. Digamos, no puedo darte un numero de usuarios posibles. La mejor forma de saberlo es probando diria yo.

Saludos y suerte con eso.

8. carlos hurtado - 9 diciembre 2010

Hola, me parece muy buena la explicación que da sobre el streaming con el VLC, me gustaría por favor que me ayudara a realizar transmisión en modo multicast en un red LAN, ya que no he podido transmitir en este modo; por ejemplo, la configuración que yo use fue con el protocolo udp:239.255.1.1 por el puerto 1234 y en otros equipos uso esta misma configuración pero no recibo nada me podría por favor explicar cómo realizar esta transmisión gracias.

bushwaca - 12 diciembre 2010

Ok, veamos si dandote un apunte puedes hacerlo… si no puedes me dices que te digo paso por paso, pero suponiendo que leiste mas o menos el post supongo que te sera sensillo esto. Te contare como transmitir y recibir por “udp” aunque no se si realmente esto es lo que quieres saber.

En el server para usar udp dentro de la LAN debes trasmitir al broadcast ya que lo que quieres hacer es multicast. Es decir que si la pc del servidor es 192.168.1.2, el broadcast sera 192.168.1.255 por ejemplo. Igualmente si no sabes bien cual es el broadcast usa el comando “ifconfig” que te dira cual es. Igualmente todo esto es suponiendo que tu red esta correctamente configurada y no tienes subredes y nada por el estilo, siendo el broadcast el mismo para toda tu red claro esta.
Tambien te recomiendo que hagas reproduccion local en el server al transmitir hasta que ṕilles como es la cosa. Muchas veces seleccionamos mal el codec y no veremos nada del otro lado. Esto se debe a que el formato del video que transmitimos muchas veces depende del codec que debemos utilizar, de otra manera no trasmitimos nada o solamente escuchamos el sonido. Por ejemplo, para trasmitir un video .FLV utilizo el codec “Video – H.264 + AAC (mp4)” de otra manera no veo nada.

En el cliente es sensillo, pero por las dudas seria asi el comando dentro de vlc (esto es para que te guies) udp://@192.168.1.255:8080 por ejempo, siendo 192.168.1.255 el broadcast al cual estas transmitiendo y 8080 el puerto al cual apuntas.

La ventaja fundamental de usar udp es que una vez que el cliente esta “a la escucha”, cada vez que emitas un video en el servidor, el cliente comenzara a verlo automaticamente.

PD: Disculpa la demora, es que no tuve mucho tiempo y queria ponerme a probar antes de darte una respuesta.

Saludos y suerte.

9. JuanDavid - 13 diciembre 2010

Hola, a mí también me interesa el tema, quiero realizar una transmisión multicast en una red lan que tengo montada en mi casa. He leído en la página de vlc donde dicen que para multicast pues poner la direcc 239.255.12.12 (rango multicast), he visto ejemplos donde usan esos rangos y transmiten y les funciona. Ya hice broadcast y estoy realizando unas pruebas y quiero ver como configurar el vlc para poder realizar esto, o que necesito, un switc que maneje multicast??? o no hay necesidad de usarlo para realizar multicast en una red lan??? o solo lo necesitaría si fuera a transmitir por la internet???. Repito ya simule unicast y broadcast pero me falta multicast, como sería???.
He visto videos, mire la pagina de vlc, pero que no he podido, que necesito para realizarlo??
Agradezco mucho la ayuda, de verdad que es importante para mi cualquier aclaración.

Tambien he hecho transmisiones http donde los usuarios se pegan a mi, pero mi IP no esta en el rango multicast. la pregunta es, esto tambien se puede tomar como multicast a pesar de usar el protocolo http y un rango de 192.168.x.x?????

bushwaca - 13 diciembre 2010

Ok, veamos… comencemos por el principio.

Primero que nada aclarar, yo soy simplemente un usuario que le ha picado un poco el tema del streaming. Solo tengo 2 pc con la cual probar y mi conocimiento digamos academico es practicamente nulo, en cuanto a conceptos y demas, lo que se lo he leido por ahi y lo que he aprendido lo aprendi segun lo que he intentado hacer, digamos autodidacta si se quiere.

Aclarando un poco el panorama

Veo que andas algo perdido conceptualmente…. claro, nada academico sino que lo explico con mis palabras, con lo cual, tomalo con pinzas.

– Multicast o Multidifusion es el envio de informacion a traves de la red a multiples destinos simultaneamente.
– Unicast o Unidifucion es el envio de informacion a traves de la red a un unico destino.
– Broadcast o Difusion amplia si se quiere, es el envio de informacion a traves de la red a todos los destinos posibles de esa red.

Ahora bien, como veras Multicast y Broadcast funcionalmente son lo mismo, aunque claramente hay una diferencia. Si hablamos de una red en la cual uno no tiene un gran numero de puestos hasta podriamos decir que es lo mismo.
Ahora bien, cuando los puesto de la red son muchos claramente hay una diferencia porque claro, por Broadcast inundas a toda la red con la informacion por mas de que no todos los puestos usen esa informacion, mientras que por Multicast solo a una parte de ella. Es decir que por Multicast aprobechas mejor los recursos, pero conlleva mas trabajo configurar y poner todo a punto que hacer Broadcast. Es decir, que elegir uno y otro dependera de la topologia de la red o si se quiere tambien de los puestos que esta red tenga y claro, de el ancho de banda disponible en esa red.

Para hacer Multicas se utiliza generalmente IP de rango “D”
A 0.0.0.0 – 127.255.255.255
B 128.0.0.0 – 191.255.255.255
C 192.0.0.0 – 223.255.255.255
D 224.0.0.0 – 239.255.255.255
E 240.0.0.0 – 255.255.255.255

Funcionalmente para que estan estos rangos de redes? Pues, la de rango “A” es la que permite el menor numero de redes pero el mayor numero de host (Clientes) mientras que la de rango E es la que mayor numero de redes permite y la que menor numero de host permite. Igualmente se usan en el 90% de los casos A, B y C.

Porque leiste que para hacer Multicast es necesario usar redes de rango D? Supongo y digo bien supongo, ya que no puedo asegurarlo, que donde leiste eso esta pensado para hacer Multicast a lo grande, no en una red hogareña. De poco importa si la red de tu casa es de rango A, B, o C, de igual manera navegas por internet y haces todas tus cosas. Ahora si vives en una universidad en la cual hay muchisimos puestos o clientes seguramente que eso importara (habra subredes y demas seguramente)…. este caso supongo que es lo mismo.

Ahora a tu pregunta:

a) Funcionalmente hablando en una red hogareña. Si tomamos como verdaderos estos dos conceptos:
1 – Con Multicast envio informacion a multiples clientes
2 – Con Broadcast tambien envio infromacion a multiples clientes

Podemos decir que:
– Si, cuando trasmites por http puede llamarse Multicast ya que lo reciben multiples clientes.

Ahora, conceptualmente estamos hablando de otra cosa distinta, en todo caso deberiamos hablar de protocolos de transmision de datos y demas, pero ya seria un lio. Pero para aclararte un poco la cosa con http usas TCP/IP y sobre lo que estamos habalando usamos udp, rtp y sus variantes.

B) Switch multicast? Seria un Switch que incursiona en el terreno de la capa 3 del modelo OSi…. en palabras de humano… no le des muchas vueltas a un switch de esos, segun entiendo seria para una red realmente grande, en su lugar para una red normalita cualquier router serviria.

Bueno, supongo que me extendi algo y no se si te estoy respondiendo a lo que me preguntas ya, pero podria seguir jajajaja. Cualquier cosa me consultas sin problemas.

PD: Uff si me pongo a corregir errores de tipeo y de ortografia no termino mas.

Saludos y suerte.

10. Franco Mego - 14 enero 2011

Buenas horas, gracias por las detalladas respuestas que estás dando, aclaran muchos panoramas.

Mi inquietud vá por hacer streaming, por consola de linux, del audio de entrada de una PC a otra (unicast), me funciona bien cuando hago streaming de un archivo de audio [vlc -vvv audio.mp3 –sout udp:192.168.1.241 –ttl 12], pero cuando intento enviar el audio de entrada no se escucha nada en la segunda PC. En la PC emisora he verificado que el audio esté entrando y que el dispositivo de grabación sea LineIn, probé también con Mic.

Las sentencias con las que hice pruebas son [vlc -vvv adev=/dev/dsp –sout udp:192.168.1.241 –ttl 12] resultando: http://tinypaste.com/86f23, [vlc -vvv v4l:/dev/video0:adev=/dev/dsp:norm=ntsc:size=0x0 –sout udp:192.168.1.241 –ttl 12] resultando: http://tinypaste.com/1cd88 (para esta segunda sentencia creé un supuesto /dev/video0 [touch /dev/video0]).

Un dato aparte y curioso: no recuerdo bien con que otra sentencia (creo que enviando por RTP) pero no sé porque indicando en el emisor que el puerto sea 1234 en el destino se oía en el puerto 1230.

En fin, espero me puedas dar una mano con ésto, gracias.

bushwaca - 14 enero 2011

Bueno, la verdad que hoy ando algo lento… veamos si entiendo lo que me consultas o por lo menos si lo planteamos de forma mas simple. Podriamos decir que de alguna manera tu quieres hacer streaming por unicast utilizando el microfono de tu pc?

Sobre el tema de que transmites por un puerto y lo escuchas por otro me dejas a pie… no tengo idea.

Bueno, si me confirmas eso intentare darte una mano, ahora bien, puede que me tome un poco de tiempo para hacer unas pruebas de paso.

Saludos y suerte.

Franco Mego - 18 enero 2011

Hola, si, quiero hacer streaming de una fuente externa de audio a través del mic, sino line-in, de una pc a otra con comandos (consola linux).

Gracias por responder.

Franco Mego - 25 enero 2011

Hola, ¿habrá noticias de cómo hacer el streaming live?. Saludos.

bushwaca - 25 enero 2011

Pues.. la verdad que he probado bastante y solo me he encontrado con problemas de lo mas variados por eso es que he demorado en responderte… entre ALSA, Pulse y encontar el “device” de la entrada del mic me he vuelto loco. Desde VLC puedo decir que no lo he conseguido segun tus requerimientos.

Ahora bien… hay otras apliciaciones mas especificas relativas al audio para hacer streaming estilo icecast con sus variantes, pero no podria decirte que podras utilizar el “line-in” con ellos.

Sera cuestion de indagar mas sobre el tema y supongo que deberias hacerlo mas orientado al tema de “Radio on-line”.

Saludos y suerte con eso.

Franco Mego - 25 enero 2011

Gracias por la respuesta, he de decirte que he trabajado ya antes con icecast y aunque si consigo hacer streaming con él el problema es el tiempo de retrazo, con VLC, a diferencia de icecast, se puede trabajar con UDP que reduce dicho tiempo.

Las pruebas que he hecho con VLC han sido todo por consola en un debian muuuy básico, ello para reducir el número de procesos en ejecución, de allí que no halla usado ni Pulse ni nada de ello para seleccionar el dispositivo de grabación, ello lo he hecho por consola con ‘alsamix’.

No pretendo montar una Radio OnLine, sino enviar audio de un ordenador a otro con la menor latencia posible de allí que quiera hacerlo en modo unicast con UDP.

Gracias por el tiempo tomado, si logras algo hazmelo saber🙂

11. Raul Villafani - 21 enero 2011

Saludos, agradeceré si puedes instruirme cuando trato de enviar Video con VLC desde una dirección IPv6, cual es la secuencia que debo seguir, ya que al intentar hacerlo en forma similar al IPv4 tengo problemas con el Puerto. Quizas algo más estoy olvidando??

bushwaca - 22 enero 2011

La verdad que nunca lo he probado, aun sigo con IPv4. Ahora, en la documentacion de VLC dice que pueden existir algunos problemas y que no se puede hacer RTSP. Ahora bien, la forma de hacerlo no es igual, supongo que eso es lo que estas “olvidando”.

Por las dudas te dejo el link directo donde hablan de eso.

Saludos y suerte con eso.

12. Double-Tres - 29 enero 2011

saludos a todos, yo tengo una preguntica, por ejemplo, la emision mediante http yo la hago sin problemas, ahora yo quiero por ejemplo con el virtual DJ hacer lo mismo, emitir la musica y que las personas escuchen la musica que yo estoy poniendo en el virtual DJ, pudieran ayudarme para yo poder emitir musica con el virtual dj como mismo hago con el vlc???

bushwaca - 29 enero 2011

Pues.. no uso esa aplicacion la verdad, con lo cual no tengo idea. Ahora bien, segun tengo entendido esa aplicacion no es para linux y ademas esto es sobre VLC con lo que tenemos un doble problema.
Por ahi esto te sirve como para tener una idea de como es el funcionamiento del streaming, lo que no quiere decir que las demas aplicaciones funcionen de la misma manera.

Saludos y suerte con eso.

13. Mona - 1 abril 2011

Hola pues yo quiero transmitir con listen2myradio.com como lo enlazo con el VLC??? tengo Ubuntu 10.04 que tengo q hacer he estado buscando pero no lo he podido hacer. Agradecería mucho su ayuda😀

bushwaca - 5 abril 2011

La verdad que streaming de radio no es mi fuerte, sobre todo si se trata de un servicio web especifico como el que tu pones. Igualmente cuando tenga algo de tiempo le dare una mirada.

Saludos.

14. DsKaTeR - 14 julio 2011

Buenas, he estado tratando de hacer streaming en justin.tv como se plantea en el comentario 6 con la consola no he podido generar el archivo vlc.sdp este es el código que he estado usando:

padsp vlc “screen://” :input-slave=oss:///dev/dsp -vvv input_stream –sout=’#duplicate{dst=display, dst=”transcode{venc=x264{keyint=60,idrint=2},vcodec=h264,fps= 3,vb=500,acodec=mp4a,ab=32,channels=2,samplerate=22050}:rtp{dst=127.0.0.1,port=1234,sdp=file:///home/dskater/vlc.sdp}”}’

también he tratado con la respuesta que diste, sin embargo yo no solo quiero hacer streaming de audio, digamos tambien videos o peliculas, pero no logro hacer el archivo requerido (vlc.sdp) solo logro hacer un vlc.mp4 o cosas así, me puedes dar una mano?.

bushwaca - 17 julio 2011

Lo he intentado y tampoco he podido…. parece ser que en las nuevas versiones de vlc lo han quitado (antes se podia como puse en los comentarios anteriores)….. si googleas veras que hay toneladas de quejas con respecto a eso. Lo mejor seria consultarlo en la web de vlc o instalar una version antigua de vlc (o usar Debian que usa una version antigua de vlc) para hacerlo o usar otra aplicacion para poder hacer streaming en justin.tv.

Saludos y suerte.

15. decken - 5 noviembre 2011

Buenas, he intentado realizarlo en Windows pero me apaerece un error “VLC es incapaz de abrir el MRL: <>, alguna idea de como solucionarlo?.

Gracias

bushwaca - 9 noviembre 2011

Seguramente algo estas haciendo mal. Con solo ese dato no puedo dar con la solucion, no se si quieres habrir un fichero de video dentro de un dvd, no se el formato, el puerto, de que podo quieres hacer el streaming, nada… tal vez si me especificas que es lo que quieres hacer y como es que lo estas haciendo (paso a paso) pueda guiarte un poco.

Saludos y suerte con eso.

16. rocco - 7 noviembre 2011

grande man !! estaba bueno tu tuto !! se entiende thanks . hacer streaming al baño de las chicas !!! : D

bushwaca - 9 noviembre 2011

Heee!!!! quiero la direccion de ese streaming!!!

Me alegro de que te gusto, saludos, suerte y que no te pillen. xD

17. Juan Manuel - 17 noviembre 2011

Una pregunta igual superchorra, pero llevo tiempo buscando y no encuentro nada.

Tengo un servidor con ubuntu, solo consola. He instalado vlc, el tema está en que este servidor no tiene tarjeta de sonido, y como digo no tiene entorno gráfico.
Quiero hacer streaming reproduciendo desde el server, pero solo consola, y el tema es que no consigo que funcione el vlc.

Si quiero reproducir por ejemplo un .mp3 pero para escucharlo en otra máquina, la máquina desde la que lo lanzo (el servidor solo consola) ¿debe ser capaz de oirla (digo si no tiene tarjeta de sonido)?

El caso es que cada vez que lanco el vlc (cvlc) me intenta arrancar las X, y claro no chuta.

“VLC media player 1.1.9 The Luggage (revision exported)
Blocked: call to unsetenv(“DBUS_ACTIVATION_ADDRESS”)
Blocked: call to unsetenv(“DBUS_ACTIVATION_BUS_TYPE”)
[0x94a62fc] inhibit interface error: Failed to connect to the D-Bus session daemon: //bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.”

Un saludo y gracias.

bushwaca - 17 noviembre 2011

Voy respondiendo por puntos:

1 – Siempre tienes la opcion de instalar algun entorno grafico para facilitar las cosas, como por ejemplo alguno bien minimo como lo es fluxbox o alguno similar. Segun mi punto de vista siempre es util tener un entorno grafico… nunca sabes cuando lo puedes necesitar.

2 – Si la maquina no tiene placa de sonido… por donde va a salir el sonido? No, no vas a escuchar nada en el servidor si no tienes placa de sonido, pero si en la pc que recibe el streaming (siempre y cuando lo hagas bien).

3 – Logico que quiera lanzarte el entorno grafico… VLC es grafico. Ahora bien, cuando instalas VLC tienes instalado VLS que es para lo que tu quieres hacer… es decir, hacer streaming con vlc sin lanzarlo graficamente. Basicamente es lo mismo, solo que en los comandos en vez de poner “vlc” pones “vls” y listo.

Ahora bien, VLC y VLS tienen algunas pequeñas diferencias segun tengo entendido.

Como dato agrego que si tomamos desde la web oficial nada dice sobre hacer streaming de sonido con VLS pero seguramente funciona:

VLC media player which can be used as a server and as a client to stream and receive network streams. VLC is able to stream all that it can read.
VLS (VideoLAN Server), which can stream MPEG-1, MPEG-2 and MPEG-4 files, DVDs, digital satellite channels, digital terrestial television channels and live videos on the network in unicast or multicast. Most of the VLS functionality can now be found VLC. Usage of VLC instead of VLS is advised.

Saludos y suerte con eso.

Juan Manuel - 18 noviembre 2011

Gracias por tu respuesta.

En mi caso el VLS no está al menos no reconoce ningún comando vls. Sin embargo, al final he conseguido lanzar el vlc en modo consola

vlc -I ncurses ….

y se lanza un menú de esos tipo caracter. Con esto he consigo hacer streaming a través de icecast2 de un mp3. Sin embargo desde la máquina cliente no consigo habirlo con VLC:

[audio src="http://imprentasa.com:8000/pru.mp3" /]

Sin embargo si se lanza desde la página del icecast, habre un reproductor (supongo que será flash) en Firefox y se escucha la canción.

Lo que no consigo es lanzar un .avi (una peli desgargada de internet), supongo que sera cosa de ajuste de codecs. En el server si se lanza la peli pero no consigo verla en el cliente, ni desde la web, ni desde el VLC.

Un saludo, y gracias. Este sitio es muy bueno y ya lo tengo en favoritos.

bushwaca - 19 noviembre 2011

Mmm se ve que me despiste con eso que te puse antes, puede que sea compilandolo o que ahora no este mas vls. Revisando un poco el post, me di cuenta que habia puesto como se hacia para hacer lanzar vlc sin lanzarlo graficamente y era poniendo cvlc.

Gracias por el dato no sabia que con “vlc -I ncurses” tambien se podia hacerlo.

Cuando escribi el post hice streaming de un mp3, pero no por icecast, nunca me funciono. Lo hice por http.

Lo de hacer streaming de un avi es como dices, dependiendo el formato del video es los codecs que debes usar. Lamentablemente, la unica forma de saberlo es ir probando hasta dar con el. En el post puse para hacerlo con mp4, con avi no recuerdo como era.

Ahora bien, no se que esta pasando pero en Debian testing no puedo hacer streaming, ni siquiera lanzandolo graficamente con lo cual no puedo saber si realmente funciona todo esto que te estoy poniendo. Tengo que tomarme un tiempo para seguir intentandolo. Si me entero de algo lo pondre aqui.

Saludos y suerte.

18. elestigio - 27 enero 2012

Buenas tarde colega esta muy interesante tu turorial. Tengo algunas inquietudes para saber si puedes orientarme para ver como puedo solucionar el siguiente problema.

Estoy tratando de hacer que mi servidor que tiene VLC Server trate de crear diferentes hebras o hilos para las emiciones de streaming de video a diferentes estaciones de PC Clientes donde son solicitadas por ellos.

Todo esto estoy tratande de lograrlo via la red local. Estube investigando como podria implementarlo via WEB.

Gracias de antemano.

bushwaca - 13 febrero 2012

Me alegro de que te gusto el post, aunque no se si podría llamarse tutorial, o por lo menos a mi gusto le faltan muchas cosas jaja.

“crear diferentes hebras o hilos para las emiciones de streaming de video a diferentes estaciones de PC Clientes donde son solicitadas por ellos”

Entre el trabajo y las pocas horas de sueño me pongo un poco torpe, eso es un hecho, pero no se si logro entender del todo lo que me consultas.

Por lo que parece quieres hacer streaming bajo demanda. Mi recomendacion es algo obvia, pero lo primero que haria en tu lugar es intentar hacer streaming de las 3 cosas que puse aqui, es decir de un video, de audio y de una webcam por http. Porque? Porque puedes tomarlo como un ejercicio con el que cubres un amplio espectro y utilizando un protocolo facil como lo es TCP/IP (http). Luego una vez que ya sabes como se hacerlo y luchaste un buen rato con vlc, recien ahi me pondria a probar lo otro que es algo mas complejo(RTSP, RTP, UDP) en el cual es muy posible que tengas que luchar con el protocolo.

Saludos y suerte.


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: