Docs/Features and Requirements.md

BUBBLEUPNP SERVER IS NOT AN UPNP/DLNA MEDIA SERVER: IT DOES NOT INDEX YOUR MEDIA FILES.


Requirements

General

  • a machine on your local network supporting Java 7 or higher (Java 8+ recommended). This ranges from a small ARM single board computer (SBC) such as a Raspberry Pi to powerful desktop computers
  • the machine must be connected to your local network. Wired connection (Ethernet) is preferred to increase reliability and bandwidth
  • A minimum of 32 MB RAM allocated to the Java process
  • at least one working UPnP AV media server or renderer on your local network, or a Chromecast device
  • a web browser for configuration. Internet Explorer and Microsoft Edge are not supported due to technical limitations

Video transcoding

  • a powerful CPU may be needed depending on the original video resolution and codec
  • for Chromecast video transcoding, GPU accelerated transcoding is supported on some platform/GPU combinations. This lowers the CPU requirement considerably

Features overview

BubbleUPnP Server provides a collection of services working on top many of your UPnP/DLNA renderers, media servers and Chromecast devices:

  • make various media formats not natively supported by Chromecast playable with smart transcoding. Works in conjunction with Android BubbleUPnP
  • secure Internet access to your UPnP/DLNA Media Servers content with Android BubbleUPnP and foobar2000 (Windows music player).
    • stream and download your music, video, photos with your Android device from a mobile or WiFi connection with optional transcoding to reduce bandwidth.
    • no need to sync, to upload to the cloud, to register to an online service
  • create OpenHome Renderers from any UPnP AV or Chromecast renderer (provides on-device playlist, multiple Control Point access to the same renderer)
  • create an UPnP/DLNA renderer from any Chromecast device
  • fix issues of UPnP/DLNA Media Servers (discovery issues, broken data, add some audio DLNA compliance) by creating a proxy Media Server
  • access your UPnP/DLNA Media Servers across different networks

Chromecast transcoding

Chromecast can only play a few supported media formats and codecs.

BubbleUPnP Server can:

  • transcode unsupported media on the fly to make it playable: MKV, AVI, MOV, WMV, RMVB, TS, WMA, …
  • smartly transcode only what is necessary to preserve original media quality as much as possible (examples: transcode only the audio track part of a video. Perform a simple remux if that’s sufficient). It takes into account the specificity of each Chromecast model (example: only Chromecast Ultra supports HEVC)
  • use NVIDIA and Intel GPUs to do fast and efficient hardware transcoding
  • force transcoding of high bitrate videos to limit WiFi bandwidth required and avoid stuttering on the Chromecast
  • make large photos load faster and rotate photos according to EXIF orientation
  • extract embedded subtitles in textual form (eg not image based) in MKV, MOV, MP4 for display on the Chromecast. For performance reasons, limited to videos stored on LAN media servers and not stored on Android device

Internet streaming and downloading

BubbleUPnP Server makes your LAN Media Servers available to Android BubbleUPnP, for streaming over mobile (3G/4G) and WiFi connections, with the following advantages:

  • Easy to setup: you do not have to modify your Media Servers configuration in any way
  • Secure: all communication between Android BubbleUPnP and your Media Servers go through BubbleUPnP Server and is password protected. HTTPS is supported
  • Network bandwidth efficient: bandwidth is greatly optimized between Android BubbleUPnP and your Media Servers, reducing loading times over mobile networks
  • Transcoding: BubbleUPnP Server can transcode audio on the fly to MP3, video to H264, and images, to adapt to lower bandwidth usually available on mobile networks
  • Transcoded downloads: you can download a transcoded version of your tracks for playback on your Android device with any audio player. Useful to download an MP3 version of your FLAC or lossless albums stored on your NAS

This functionality can also be used on a regular LAN, for example to bypass regular UPnP SSDP device discovery in the rare cases it is not available for whatever reason (blocked by a firewall, UDP multicast disabled at the router level, …).

Internet UPnP tethering

Using Android BubbleUPnP or the BubbleUPnP Tether client, you can make your Media Servers from your home local network visible on another LAN to any UPnP AV devices of this LAN (TV, Control Points, …).

To illustrate this functionality consider this scenario:

Suppose you have a Twonky server at home (replace Twonky with your favorite Media Server) and you go visit a friend who has a brand new UPnP/DLNA device connected to his stereo and a Windows 10 PC with Window Media Player. Using your Android device and BubbleUPnP you can push music from your Twonky Server to his stereo.

With UPnP tethering you can do the same using the “Play to” functionality of Windows Media Player. In short, your Android device makes your home Twonky server visible to Windows Media Player on your friend’s network. This is UPnP tethering.

LAN Media Server proxying

Many Media Servers have bugs and sometimes return incorrect data which can prevent them from working fully with some UPnP Software. BubbleUPnP Server can create a “proxy” Media Server (associated to a real Media Server on your LAN), that will attempt to convert incorrect data into correct data. Data is always reformatted in a more compact format with the benefit of speeding up browsing on slower devices. Except for this difference, the proxy Media Server acts exactly as the real Media Server it is linked to.

Another possible use of proxying is to solve potential Media Servers discovery issues in your network with some UPnP software. As long as BubbleUPnP Server is able to discover your Media Server, it can create a proxy Media Server which in turn has more chance to be discovered by UPnP software.

Persistent and shared playlist for UPnP AV renderers (OpenHome)

When operating an UPnP AV Renderer, the playlist of audio tracks resides on the Control Point which must remain running for playlist track advance to happen. It has 2 main drawbacks:

  • keeping a Control Point app running isn’t the best solution, in particular on mobile devices as it consumes battery.
  • two or more Control Points cannot control the same UPnP AV Renderer and share the same playlist. For example, you cannot create a playlist on your smartphone Control Point and later modify it on your PC or tablet Control Point

To tackle these issues, the OpenHome standard addresses the deficiencies of UPnP AV, adding the ability for an OpenHome Renderer to store and manage its playlist. It can advance playback by itself without requiring a Control Point to be running. Several OpenHome enabled Control Points can be connected simultaneously to the renderer, sharing the same playlist. Any playlist change on one Control Point is immediately reflected on the others.

BubbleUPnP Server makes it easy to create an OpenHome renderer from any exisiting UPnP AV Renderer.


Video (courtesy of Stephen Philips) showing OpenHome in action, using an antiquated version of Android BubbleUPnP (2013 !!!) running on vintage Android devices: