Streaming y otras cosas.

Introducción

Los objetivos pueden ser muy diferentes, por lo que la idea de este artículo es identificar que tecnología se adapta mejor a solucionar qué problema.

Posibles problemas.

P1: ordenador como reproductor multimedia.

Todo empezó aquí. Primero con programas reproductores de audio, video, fotos, … (ej. mplayer). Después su HMI evolucionó a mostrar la información de una forma adecuada para la tele (ej. MythTV). Finalmente, nacen distribuciones pensadas para no tener que saber Linux para poder disfrutar de un centro multimedia (ej. GeeXBox).

P2: separación (almacenamiento+reproducción) - controlador.

En el caso de reproducir música, puede interesar no tener monitor (no nos interesa la imagen). La música estaría en un ordenador con su disco duro y su tarjeta de sonido pero sin monitor. Se necesita un controlador que diga qué queremos reproducir. Un ejemplo sería el uso de un teléfono con wifi. Una ventaja de este modelo es que no necesita streaming. Una desventaja es que, en principio, no se distribuye el contenido a otros reproductores dentro de la cas.

P3: separación del almacenamiento y la reproducción.

El separar el almacenamiento de la reproducción tiene muchas ventajas. El almacenamiento era relativamente caro y el mantener la información sincronizada entre distintos equipos es incómodo.

Separando el almacenamiento y la reproducción permite que tengamos toda la información en un disco duro y que todos los equipos de la casa (jugando el papel de reproductores) pueden reproductor cualquier fichero que en él se encuentre.

P4: almacenamiento-reproductor-controlador

Este es el modelo usado por DLNA. En un sitio el disco duro con los ficheros multmedia. En otro los reproductores (un ordenador, una televisión, …). Un control remoto que dice: qué se reproduce dónde.

P5: los nuevos móviles.

Dentro de esta arquitectura, los móviles tienen un papel muy especial ya que pueden jugar cualquiera de los roles identificados con anterioridad.
a. Pueden usarse como fuente de datos. Para mostrar una imagen o un video grabados con el móvil, pero también para reproducir música que tengamos en el móvl en casa de un amigo.
b. Pueden usarse como controladores. La pantalla es táctil y en color y está siempre encendido. Esto hace que sea ideal como control remoto. En este caso ni la música está en el móvil ni se reproduce en él.
c. Como reproductores. Los móviles no tienen mucho almacenamiento. Nos puede interesar querer reproducir en el móvil con los cascos música que tengamos en nuestro almacenamiento compartido.

P6: almacenamiento online

Combinaciones anteriores, pero en lugar de tener el almacenamiento en casa, lo tenemos en algún servicio online. Tiene la ventaja de que la información estará disponible no sólo en casa, sino en cualquier sitio al que vayamos. La desventaja es clara: sin internet, no hay nada.

Esta solución puede ser atractiva para disponer de música en el coche.

P7: procesamiento - reproducción

Nos puede interesar hacer el procesamiento en un ordenador potente (ej. aplicar filtros FIR multicanal) y distribuir todos esos canales a otro ordenador. Ésto lo permite JACK, que puede enviarse por la red local. Sin embargo este problema comienza a ser irrelevanta dada la potencia que están alcanzando los nuevos sistemas.

Soluciones

DLNA

No sé si es un estándar, pero es lo que usa de forma masiva la industria. Por ello, es relevante. Micro$oft parece estar detrás. Las consecuencias es un sistema complicado en exceso que sólo soporta:

  • Imágenes: jpeg, png
  • Audio: AC3, AMR, ATRAC3, LPCM, MP3, MPEG4, WMA (¿dónde están: vorbis, flac, aac, …?)
  • Video: mpeg1, mpeg2, mpeg4 (sólo: divx, h264) (¿theora, vp8, …?), wmv9
  • Containers: MPEG PS/TS, MP4, ASF for video files … (¿avi, mkv, ogg?)
  • Profiles (perfiles): son combinaciones de los anteriores (se soportan del orden de los 300). Son combinaciones: x codec de video, y resolución, z codec de audio, m bitrate, n container, … Si no se cumple el profile, no puede interpretarse.

Para los que hacen hardware, tiene la ventaja de restringir qué es lo que tiene soportar su tele o su reproductor de música. Para Micro$oft, $ony, … soporta sus formatos. Pero esta especificación hace que prácticamente la mayoría de los formatos no funcionen sobre DLNA.

En otras palabras, DLNA no es que esté mal diseñado, sino que se diseñó para la industria en lugar de para los usuarios. Básicamente la idea es: hacer teles fáciles de fabricar y disponer de un ordenador potente con Windows que hace la recodificación en tiempo real a un formato que entiende la tele.

Alternativa al DLNA

Lo primero es: ¿por qué puedo querer tener una alternativa?

Música

Si quiero reproducir música sin comprimir (FLAC), con DLNA no podré (y si puedo será porque el servidor está recodificando a otra cosa).

Video

Lo ideal es poder reproducir el formato de video que me de la gana. Una posible solución deseable es usar una máquina de bajo consumo (ej. http://www.pandaboard.org Pandaboard]) como centro multimedia para el salón. Con una distribución de linux adecuada será capaz de reproducir cualquier cosa. Además podré continuar visualizando contenido proporcionado por servidores DLNA (por ejemplo, ver fotos almacenadas en el móvil).

Hardware

Podemos comprar aparatos que nos resuelvan la problemática. En este caso, lo más sensato parece ser ir a dispositivos compatibles con DLNA. Si tenemos una televisión DLNA (DLNA player), podemos usarla para reproducir el contenido disponible en el móvil (ej. fotos, video, música). También podemos usarla para reproducir el contenido de un NAS (Network Attached Storage) compatible con DLNA. Las últimas versiones del Windows Media Player son compatibles con DLNA también (buena esta software, pero la ponco dado que la mayoría de la gente todavía lo usa).

DLNA es muy práctico pero potencialmente poco seguro.

También podemos encontrar servidore NAS. Estos pondrán a nuestra disposición la música, videos, fotos, … disponibles en discos duros. Hay discos duros duros que incorporan esta capacidad por defecto. También hay dispositivos que se puede comprar por separado y convierten cualquier disco duro USB en un NAS.

  • Conversor: USB2 a red
  • NS-K330: es un NAS al que podemos conectar un disco duro USB. Además funciona como servidor DLNA, samba, puede compartir impresoras, servidor ftp, … Consume 5V/2A (10W) y no tiene partes móviles. Puede usarse incluso como cliente de Bit-torrent (si lo usas, esta solución es más ecológica). Puede usarse con SnakeOS (firmware para NS-K330 / WLX-652). (Approx. 30€).
  • WLX-652: parecido al anterior (ojo: la WLX 652R no es compatible con Snake OS).
  • Snake OS soporta otros dispositivos basados en el SOC str8132. Consulta esto. El compatible más barato que he visto: ZAP-LN-86BT (aprox. 24€).

Otras alternativas hardware es:

  • BTR-006: es un sencillo receptor bluetooth (se puede transmitir la música inalámbricamente desde el ordenador o el móvil).

Online

Spotify es un servicio de subscripción (5 o 10 libras mensuales; la segunda permite escuchar música en el móvil) con millones de canciones disponibles. Tienen linux un poco olvidado, con un binario sólo disponible para Fedora y Debian.
Otras alternativas:

Existen servicios similares para ver la television o para ver videos:

Estos servicios son prácticos, pero las empresas pueden desaparecer, o las condiciones del servicio cambiar. En principio no confiaremos completamente en ellos, aunque es bueno conocer su existencia.

Software relevante

Soluciones para varios problemas

Música de calidad

Peña del pueblo

Centro multimedia

NS-K330

Comprado!
Por defecto viene como:

  • user: admin
  • pw: admin

Actualización

Se descarga el firmware al ordenador: snakeos-V1.3.2-20101130-from-original.bin. Es importante que se haga "from-original" la primera vez.

Las nuevas claves son:

  • user: admin
  • pw: snake

Lo primero el Router

En el router tengo DHCP para asignar IPs automáticamente. Lo configuro para que ese dispositivo en particular siempre reciba la misma IP, así me será fácil localizarlo. Le asigno: 192.168.0.240

Preparación del disco duro

En un disco duro de 500Gbytes de 2.5 pulgadas:

  • Particion 1: 512Mbytes, tipo: swap (83) y después formateamos

mkswap /dev/sdb1

  • Partición 2: el resto, tipo: Linux (82) y después formateamos

mkfs.ext3 /dev/sdb2

Configuración

Software interesante

http://mediatomb.cc/
http://blog.flexion.org/2009/12/18/mediatomb-minidlna/http://code.google.com/p/snake-os/wiki/Debian_Chroot
http://groups.google.com/group/dealextreme-nas-/browse_thread/thread/a7eacd81562ed411

Salvo que se diga otra cosa, el contenido de esta obra está bajo la licencia: Creative Commons Reconocimiento NoComercial CompartirIgual 2.5 España.