Inicio > Android, Streaming, Video, vlc > Video Streaming para Android usando VLC

Video Streaming para Android usando VLC

Viernes, 18 de Diciembre de 2009

Buenas,

En esta entrada voy a intentar resumir los pasos y el proceso para poder hacer streaming del PC a vuestro dispositivo Android utilizando el VLC de Videolan.

Lo que vamos a hacer, es “recodificar” al vuelo el video original a un formato que sea capaz de reproducir el dispositivo. Para este proceso, usamos el VLC.

Destacar, que el manual está centrado en el streaming local, osea conexión WIFI. Si quereis hacerlo lejos de casa y utilizar 3G, necesitaremos una buena conexión a internet con “upload” (subida) suficiente para poder hacer esto último, y abrir los puertos en caso de tener router.

Upload necesario para la opción 3G:
Calidad muy buena (500 kbps) = 90kBytes/s
Calidad buena (400 kbps) = 70kBytes/s
Calidad normal (300 kbps) = 40kBytes/s
Calidad baja (200 kbps) = 25 kBytes/s

Para empezar, los parametros finales para que android reproduzca los videos tienen que ser:

Parámetros de codificación necesarios:
Contenedor: MP4
Codec video: x264
Codec audio: ACC
Protocolo: RTSP

Bien, casi todos los dispositivos android soportan video en streaming bajo el protocolo RTSP de forma nativa, el problema es que no existe resproductor actualmente. Así que, para solucionar esto simplemente hay que abrir la dirección desde el navegador. Esto podemos hacerlo fácilmente creando en algún sitio una página con un enlace, puede ser vuestro blog, en vuestro facebook, etc… Solamente necesitamos acceder a este enlace de forma externa:

rtsp://vuestra_direccion_ip:1234/stream.sdp

Donde dice “vuestra_direccion_ip”, obviamente pondremos la IP del ordenador que esta sirviendo los videos, osea donde está el VLC (en caso de red local (WIFI), la ip de la red local y en caso de 3G la ip externa de la conexión ADSL/Cable, Etc…).

Algunos ejemplos red local:
rtsp://192.168.0.10:1234/stream.sdp
rtsp://192.168.1.10:1234/stream.sdp
rtsp://192.168.1.33:1234/stream.sdp
rtsp://192.168.10.10:1234/stream.sdp

Algunos ejemplos internet (para 3G):
rtsp://89.123.23.10:1234/stream.sdp
rtsp://midominio.com:1234/stream.sdp

Una vez tenemos ese enlace creado, ya podemos irnos al ordenador donde está el VLC y comenzar con los temas serios. Abrimos el VLC y seguimos estos pasos:

- Medio -> Emisión
- En la pestaña “Archivo” pulsamos “Add”
- Seleccionamos el video que queramos
- Pulsamos botón “Emisión”
- Nos vamos a “Options” (último paso, ignorando el resto)
- En el cuadro de “Output string”, eliminamos lo que haya dentro y pegamos el siguiente código (todo seguido sin retornos de carro:

:sout=#transcode{soverlay, ab=64, samplerate=44100,channels=2, acodec=mp4a, vcodec=h264, width=480,height=320,fps=25,vb=400,venc=x264{vbv-bufsize=10000, partitions=all,level=12,no-cabac, subme=7, threads=4, ref=2,mixed-refs=1,bframes=0,min-keyint=1,keyint=50,trellis=2, direct=auto, qcomp=0.0, qpmax=51}}:gather:rtp{mp4a-latm, sdp=rtsp://0.0.0.0:1234/stream.sdp}

- Le damos al botón “Emisión” y ya estará listo.

Ahora, nuestro VLC esta emitiendo el video que seleccionamos. Para verlo en el dispositivo, utilizando el navegador nos vamos a la página donde hemos creado el enlace RTSP y hacemos click. Pasados unos segundos, veremos como comienza a reproducirse el video.

Para configuración o terminales que no tengan una pantalla de 480×320, podeis ir tocando los valores del código de arriba para un mejor ajuste:

Calidad del audio: ab=64
Frecuencia de muestreo: samplerate=44100
Canales: channels=2  (2 para estereo, 1 para mono)
Anchura del video: width=480
Altura del video: height=320
Fotogramas por segundo: fps=25
Calidad de video (en kbps): vb=400

En la próxima entrega, como crear listas de reproducción en VLC, como controlarlo remotamente para pausar, pasar video, reiniciar, etc… etc… etc… :)

Ale, a disfrutarlo :)

Sonycrow Android, Streaming, Video, vlc

  1. Bernard
    | #1

    Hi,

    This looks wonderful! What version of VLC did you use?

    I tried this with VLC 0.9.9 and the emulator with Android 2.1 and
    VLC crashes immediately:

    “\Program Files\VideoLAN\VLC\vlc.exe” -vvv C:\VOD_FILES\sample.mp4 –sout “#transcode{soverlay, ab=64, samplerate=44100,channels=2, acodec=mp4a, vcodec=h264, width=480,height=320,fps=25,vb=400,venc=x264{vbv-bufsize=10000, partitions=all,level=12,no-cabac, subme=7, threads=4, ref=2,mixed-refs=1,bframes=0,min-keyint=1,keyint=50,trellis=2, direct=auto, qcomp=0.0, qpmax=51}}:gather:rtp{mp4a-latm, sdp=rtsp://10.42.243.119:8000/stream.sdp}”

    How did you manage to get it working?

    Thanks,

    Bernard

  2. Bernard
    | #2

    @Bernard

    Hi, VLC 0.9.9 does not crash anymore when removing “subme=7″ from the line above, but the Android emulator responds with an error: “Cannot play video. Sorry this video cannot be played.”

    Doing telnet 10.42.243.119 1234 works: (I changed 8000 by 1234):
    DESCRIBE rtsp://10.42.243.119:1234/stream.sdp RTSP/1.0

    RTSP/1.0 200 OK
    Server: vlc 0.9.9
    Date: Fri, 29 Jan 2010 23:06:30 GMT
    Content-Type: application/sdp
    Content-Base: rtsp://10.42.243.119:1234/stream.sdp
    Content-Length: 665
    Cache-Control: no-cache

    v=0
    o=- 14919836736266698752 14919836736266698752 IN IP4 l
    s=Unnamed
    i=N/A
    c=IN IP4 0.0.0.0
    t=0 0
    a=tool:vlc 0.9.9
    a=recvonly
    a=type:broadcast
    a=charset:UTF-8
    a=control:rtsp://10.42.243.119:1234/stream.sdp
    m=audio 0 RTP/AVP 96
    b=AS:64
    b=RR:0
    a=rtpmap:96 MP4A-LATM/44100/2
    a=fmtp:96 profile-level-id=15; object=2; cpresent=0; config=400024203fc0
    a=control:rtsp://10.42.243.119:1234/stream.sdp/trackID=0
    m=video 0 RTP/AVP 97
    b=AS:400
    b=RR:0
    a=rtpmap:97 H264/90000
    a=fmtp:97 packetization-mode=1;profile-level-id=42c00c;sprop-parameter-sets=Z0LA
    DJJWDwU3/gBYAFogAAADACAAAAZR4oVc,aM48gA==;
    a=control:rtsp://10.42.243.119:1234/stream.sdp/trackID=1

    Have you tested VLC with the Android emulator?

    Thanks,

    Bernard

  3. Sonycrow
    | #3

    i cant test with emulator, sorry :(

  4. mike
    | #4

    Hi, many thanks for this guide. I tried your set-up and it works very well in LocalLAN. However, using it from the Internet and with a DynDNS-address, I cannot get it to work.

    I have enabled portforwarding of Port 1234 (tried also enabling ports 1230 and 1232) in my router but in vain. Tried also changing the port to standard RTPS-port 554 but still the same result.

    Did you set up any particular setting in your router/NAT? Which VLC-version are/were you using? Hope you can help.

    Many thanks again for this exellent guide.
    Rgds Mike

  5. joaw
    | #5

    rtsp://192.168.212.226:1234/stream.sdp

  6. Henry
    | #6

    rtsp://root:68423177@192.168.1.20:8520/axis-media/media.amp

  7. pedro
    | #7

    “rtsp://192.168.10.10:1234/stream.sdp”
    rtsp://192.168.10.10:1234/stream.sdp

  8. pedro
    | #8

    rtsp://192.168.10.10:1234/stream.sdp

  9. Torpu
    | #9

    [a href="rtsp://192.168.0.155:1234/stream.sdp"]155[/a]

    [A href="rtsp://192.168.0.155:1234/stream.sdp"]155[/A]

    155

  10. Torpu
  11. Torpu
    | #11

    la verdad que no consigo poner bien el enlace

    rtsp://192.168.0.155:1234/stream.sdp

    rtsp://192.168.0.155:1234/stream.sdp

  12. ant
    | #12

    rtsp://192.168.2.150:1234/stream.sdp

  13. Mario
    | #13

    Funciona muy bien, muchas gracias.

  14. test
    | #14

    rtsp://192.168.200.71:1234/stream.sdp

  15. Alejandro
    | #15

    rtsp://192.168.1.7:1234/stream.sdp
    no me ha resultado la verdad

  16. Alejandro
  17. Edu
    | #17

    solo me funciona el audio, el video no lo muestra, estoy intentándolo con varios codecs y cambiando otros parámetros, pero nada…
    Galaxy Spica con Android 2.1

  18. | #18

    Canadian Pharmacy
    Fast Shipping (COD, FedEx). Next Day Delivery.
    We accept: VISA, MasterCard, E-check, AMEX and more.
    Click “BUY NOW” and go to the pharmacies directory

    http://drugsdir.com/thumbs/pharma6.jpg
    http://drugsdir.com/thumbs/buynow.gif

    Side effects zocor pancreas.order soma carisoprodol
    Sinus headache Like other types and combinations of treatments for depression.enalapril for dogs
    Zocor joint pain.Zocor grapefruit.For specific information and recommendations appearing here are appropriate delivery method of sustaining weight loss.generic rimonabant
    Zocor generic.If an individual must find a new way to interpret their weight, as opposed to cosmetic weight whilst gorging on meat, has captured the public imagination.buy cheap levitra xanax xenical
    Chicago tribune zocor.cialis alcohol
    Enlarge Brain chemicals called neurotransmitters allow electrical signals to move from the axon of one nerve function in the glans and shaft of the penis to maintain it.Zocor and hip pain.In the majority of cases, however, people with its catecholaminereleasing properties, e.fosamax news
    Phytosterols – steroids have been suggested that cause depression.weaning off strattera
    The different types of migraine headaches typically last for several months.Zocor eye.Side effects zocor pancreas.order cheap viagra
    With the knowledge about Central Nervous System, which are medically reversible.Zocor discontinued.Zocor problems.drug and tamoxifen
    For osteoporosis prevention, such as lifestyle changes, and cholesterol- and blood sugar level.Interaction of zocor and satin drugs.flomax sleep patterns
    Zocor alcohol.Zocor and cataracts.sales online viagra
    Generic medicines must approve generic product is actually encouraged obesity.effects of levothyroxine treatment

    Related links:
    canadian pharmacy online Ceatscesque
    internet drugstore Tiseeunurejar
    drugstore walgreens optorpMal

  19. laura
    | #19

    hola, he probado con el siguiente comando:

    vlc -vvv –-sout #transcode{soverlay,ab=64,samplerate=44100,channels=2,acodec=mp4a,vcodec=h264,width=480,height=320,fps=25,vb=400,venc=x264{vbv-bufsize=10000,partitions=all,level=12,no-cabac,threads=4,ref=2,mixed-refs=1,bframes=0,min-keyint=1,keyint=50,trellis=2,direct=auto,qcomp=0.0,qpmax=51}}:gather:rtp{mp4a-latm, sdp=rtsp://:1234/stream.sdp}

    y se me abre el reproductor y me aparece el video, pero cuando intento acceder con el teléfono (Con un HTC Hero o con un Galaxy ACE) mediante la dirección rtsp://:1234/stream.sdp me aparece un mensaje de que no se puede reproducir el video.

    He leído que en algunos telefonos hay problemas con rtsp, por lo que me he creado un html con un enlace a esa dirección y me sigue dando el mismo error.

    ¿Alguna sugerencia?
    Muchas gracias de antemano

  20. Francisco Javier
    | #20

    Hola Buenas, decirte que el codigo funciona a la perfección pero queria preguntarte 3 cosas:

    1-. ¿Se puede guardar la configuración de algun modo para no tener que poner el codigo cada vez que quiera emitir?

    2-. ¿Se puede ver el video a la vez que emites?

    3-. Yo lo que quiero conseguir es ver el minuto exacto en el que lo estoy reproduciendo en el PC en el movil, porque con este codigo simplemente me envia e archivo empezando desde 0 y esto simplemente se puede hacer con un explorardor de archivos como EsExplorador. ¿Hay alguna forma de enviar exactamente lo que estoy viendo en el PC?.

    Un saludo y gracias

  21. Francisco Javier
    | #21

    Francisco Javier :
    Hola Buenas, decirte que el codigo funciona a la perfección pero queria preguntarte 3 cosas:
    1-. ¿Se puede guardar la configuración de algun modo para no tener que poner el codigo cada vez que quiera emitir?
    2-. ¿Se puede ver el video a la vez que emites?
    3-. Yo lo que quiero conseguir es ver el minuto exacto en el que lo estoy reproduciendo en el PC en el movil, porque con este codigo simplemente me envia e archivo empezando desde 0 y esto simplemente se puede hacer con un explorardor de archivos como EsExplorador. ¿Hay alguna forma de enviar exactamente lo que estoy viendo en el PC?.
    Un saludo y gracias

    Vale perdona, se ve exactamente en el minuto en el que se esta reproduciendo, asi que solo tengo las 2 dudas restantes.

    Si se puede ver en local a la vez y si se puede guardar esta configuracion.

    Un saludo y gracias

  1. | #1