martes, 10 de enero de 2017

BubbleUPnP, Audiocast y uso de reproductores DLNA antiguos

Estos días estoy redescubriendo Google Music, la alternativa de Google a Spotify y compañía, como consecuencia de su reciente oferta de 4 meses gratuitos, que estoy utilizando de modo conjunto con BubbleUPnP (3,99€ extraordinariamente bien empleados).


Esta conocida aplicación, que funciona como servidor, reproductor y punto de control DLNA viene aquí de perlas puesto que es capaz de conectarse a este servicio (además de a otras "nubes" como a las de Tidal, Google Drive, Qobuz, Amazon, Dropbox, etc.)...


...para actuar como interfaz de control alternativa a las propias apps nativas de Google Music, Tidal, etc.


Funcionando de este modo BubbleUPnP puede además enviar el audio recibido de estos servicios hacia dispositivos capaces de actuar como puntos de reproducción DLNA (perfil renderer) o simplemente hacia un Chromecast, de un modo análogo a lo que podríamos conseguir con un i-cacharro recurriendo a la conocida función AirPlay, integrada de un modo transversal en todos los dispositivos de Apple, desde ordenadores a móviles y tabletas.

No obstante el uso de Google Music (por ejemplo) desde BubbleUPnP presenta carencias. Por un lado, la reproducción sin pausas (gapless) falla en muchos dispositivos DLNA y, por otro, no es posible realizar búsquedas en el catálogo del servicio.

Afortunadamente BubbleUPnP es una auténtica navaja suiza. Una de sus funciones menos conocidas es la de emitir el audio de cualquier aplicación del sistema hacia un punto de reproducción DLNA, superando estas y otras limitaciones de algunas aplicaciones de audio nativas de Android, que si bien no es infrecuente que puedan emitir hacia un Chromecast suelen ser incapaces de entenderse con dispositivos DLNA o AirPlay. A esta característica de BubbleUPnP se la denomina Audio Cast, y se encuentra relativamente escondida en las profundidades de los ajustes de la aplicación:


Una vez activemos Audio Cast, dispondremos de un botón situado a la derecha de cada reproductor DLNA. Si lo pulsamos el audio de (casi) cualquier aplicación de Android será enviado hacia él, lo que nos permitirá emplear el servicio que deseemos (en mi caso Google Music) directamente a través de su app nativa disfrutando de todas sus funcionalidades.


Aquí podéis ver el tinglado en acción con OSMC corriendo en una Raspberry Pi 2 como punto de reproducción. Fijaos en que el audio se emite sin pérdidas de ningún tipo, de hecho en este caso se envía como LPCM 44/16 (1411Kbps):


Lamentablemente para disponer de Audio Cast necesitamos un móvil o tableta con root, esto es, que haya sido modificado para poder hacer cosas que, de serie, la seguridad de Android no permite. Este requisito es necesario puesto que es imprescindible instalar (realmente flashear en la ROM del dispositivo) previamente un componente denominado Xposed y un módulo sobre este último que permite finalmente la activación de Audio Cast.

El procedimiento no lleva más de 5 minutos en un dispositivo con root utilizando el instalador de Xposed disponible en los enlaces anteriores, y apenas 5 más si es necesario conseguir root previamente (nuevamente hay varias apps muy efectivas y compatibles con gran número de dispositivos, además de docenas de tutoriales en foros especializados). No obstante hay que advertir que esta modificación suele suponer la pérdida de la garantía y, si no se sabe bien lo que se hace, la aventura puede terminar con un dispositivo que no arranca. Mucho ojo.

Otra de las ventajas de aventurarse a activar Audio Cast tiene que ver con el uso de reproductores DLNA que no admitan el control desde apps como BubbleUPnP, esto es, carezcan de compatibilidad con el perfil renderer.

En este caso es posible "sintonizar" un flujo DLNA que genera BubbleUPnP y queda expuesto en la red local como si de un archivo almacenado en un servidor DLNA se tratase. Una vez nuestro reproductor DLNA abre este flujo (navegamos hasta él con su mando a distancia) ya solo es necesario reproducir lo que queramos en el móvil o teléfono, que sonará a través del primero (el montaje es similar al que se puede orquestar con el componente UPnP de Foobar). Aquí podéis ver esta función en acción utilizando el reproductor DLNA de mi receptor Pioneer SC-LX81, que ya tiene unos años a cuestas y no ofrece compatibilidad con el mencionado perfil:




Nuevamente podéis ver que la emisión se realiza en LPCM 44/16 con una tasa de bits de 1411kbps (sin pérdidas). La cosa suena francamente bien y nos permite seguir empleando reproductores DLNA ya un poco antiguos.

En principio esta misma mecánica debería funcionar con los Oppo 9x, pero por alguna razón no he conseguido que el mío inicie la reproducción del flujo Audio Cast. Quizás tenga que ver con la versión del firmware del aparato o simplemente con alguna pequeña incompatibilidad con BubbleUPnP, que dicho sea de paso dispone de un montón de ajustes y tweaks que aún estoy explorando.

Afortunadamente, BubbleUPnP tiene aún otro as en la manga: Es capaz de exponer través de su servidor DLNA integrado la biblioteca de cualquiera de los servicios de streaming que soporta (por ejemplo Tidal o el propio Google Music), permitiendo conectarse a ellos desde un reproductor DLNA, aunque no sea compatible directamente con el servicio en cuestión. Para ello BubbleUPnP, actuando como intermediario, genera una estructura de carpetas dinámicas que cuelgan de su servidor DLNA. Los reproductores simplemente navegan por ellas como si lo hicieran directamente a través de las opciones y menús del servicio de streaming correspondiente. Y esto sí funciona perfectamente con nuestros Oppo 93/95; aquí tenéis a uno ojeando Google Music, la interfaz de usuario no es muy vistosa y hay problemas con las etiquetas, pero es operativo y suena bien:




No hay comentarios :