Current version: 0.5.4 (April 15th 2012)
Download the Windows Installer
Download zip archive
Changelog 0.5.4
- added HTTPS support for connecting. Default port is 58051. Works with Android BubbleUPnP 1.3.3+ and foo_upnp 0.99.37+
- added support for sending compressed data to foo_upnp 0.99.37+ to save bandwidth
- added support for logging media streams connections, in the NCSA common file format
Media streams logs are added to file access_log.txt found in the installation directory. Can be enabled/disabled in the "Network and Security" tab. Disabled by default
- fixed obscure startup crash on some Windows installs
- fixed new version check notification not working since v0.5
- updated documentation (https)
BubbleUPnP Server:
- extends your existing UPnP AV Media Servers and Media Renderers on your network with new functionality
- allow easy Internet streaming and downloading of your music and videos over mobile and WiFi connections with BubbleUPnP for Android,
in a secure and network bandwidth efficient way.
- since v0.5.3 it is possible to do Internet streaming on Windows as well
BUBBLEUPNP SERVER IS NOT AN UPNP AV MEDIA SERVER.
It requires at least one working UPnP AV Media Server (Windows Media Player, Twonky, Asset UPnP, ...) or Media Renderer to do something useful.
At this time, the following features are supported:
Internet streaming and downloading
BubbleUPnP Server makes your LAN Media Servers available to BubbleUPnP for Android, 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 BubbleUPnP for Android and your Media Servers go through BubbleUPnP Server and is password protected. HTTPS is supported (since v0.5.4).
- 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 and video to H264, 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 BubbleUPnP for Android, 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 7 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 you 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.
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 Playlist specification 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 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 (WMP for example). Refer to this section for more information on how
to create and control an OpenHome Renderer with BubbleUPnP for Android or other OpenHome Control Points.
Requirements
BubbleUPnP Server can run on any platform where Java 1.6 is available. This includes:
- Windows XP/Vista/Seven
- MacOS X
- Linux
- Any NAS on which Java is available
Windows XP/Vista/Seven
On Windows, the easiest way to get started is to download the installer below.
Download the Windows Installer
Run the installer. If Java 1.6 is not installed on your system, the installer will launch the Java installer before installing BubbleUPnP Server.
At the end of the installation process, BubbleUPnP Server should be running as a Windows service. The installer will launch your Web Browser to configure it.
You can also connect to it pointing your Web Browser to http://localhost:58050 or launch the Desktop shortcut.
If the Web Browser cannot connect to BubbleUPnP Server, refer to the troubleshooting section.
You will find shortcuts in the Windows Start menu to stop/start the service and launch the configuration interface in your web browser.
If you do not want to run BubbleUPnP Server as a Windows service you can download the archive for other platforms.
Other Java platforms (Linux, MacOS X, NAS, ...)
Download BubbleUPnP Server
BubbleUPnP Server is distributed as an archive containing a jar file.
- unpack the archive in a directory
- on unix platforms make launch.sh executable: chmod +x launch.sh
- on unix platforms run launch.sh, on Windows run launch.bat. Java 1.6 must be installed and the "java" executable must be in your PATH
- point your Web Browser to http://localhost:58050 to show the configuration interface
- for Internet access with Android BubbleUPnP, configure your firewall / Router NAT to allow access to TCP port 58050 (see server configuration below)
If you want transcoding support you will need to install ffmpeg on your system.
Here are specific installation guides for:
Alternatively you can run the server with:
java -jar BubbleUPnPServer.jar
If you get an error on startup, refer to the troubleshooting section.
IMPORTANT: There is a known JRE crash with some versions of OpenJDK on the ARM platform. It can be workarounded
starting the server with:
java -XX:+PrintCommandLineFlags -jar BubbleUPnPServer.jar
The core of BubbleUPnP Server is Web Server running on port 58050 by default for HTTP and on port 58051 for HTTPS.
The server must be accessible from the Internet on this port (LAN proxying functionality does not require this).
The Windows Installer will try to auto-detect network settings so the server is usable straight away adding the required firewall and NAT rules, but
this might not work in all network setups.
The configuration front-end is divided into 4 tabs:
This page displays a summary of the server operational status and has all information required to configure BubbleUPnP for Android:
- the server's status when connecting from the Internet
- the server's public IP Address and hostname
- the server's public HTTP Port
- the server's public HTTPS Port
- the server's LAN IP Address
- the Internet connection test for both HTTP and HTTPS
- the server's version and expiration date if any
- the server's support for audio transcoding
- the server's support for video transcoding
If "Server is reachable from Internet" is displayed, everything is fine and BubbleUPnP Server is ready to use.
Otherwise something is preventing the Internet to connect on the HTTP or HTTPS port.
This will likely be a NAT or firewall issue. For example, if the public HTTP port is 58050 and the LAN IP Address displayed is 192.168.1.10
- Add a rule on your router to redirect connection on TCP port 58050 to LAN IP Address 192.168.1.10 on port 58050. You must use the same port for the redirection
- Add a rule on your firewall to allow incoming traffic on TCP port 58050 on the 192.168.1.10 machine
- For HTTPS access repeat the 2 steps above with the HTTPS port (58051 by default)
IMPORTANT: if you use HTTPS access, the HTTP port must still be open as it is still used for media streaming requests only.
In this page you can set the login and password that you will use to connect to the server:
- in BubbleUPnP for Android
- in foobar2000
- to access the configuration interface when connecting from the Internet (if "Allow to access server from the Internet" is enabled)
If you are using a dynamic DNS service because your ISP changes your IP address at regular interval, you can change the public hostname to your stable dynamic DNS hostname.
If option "Allow to access server from the Internet" is disabled, the server will deny all Internet connections.
If you plan to use BubbleUPnP Server with BubbleUPnP for Android, you must enable this setting.
If option "Allow to configure the server from the Internet" is enabled, these credentials are also used to connect to the configuration web interface from the Internet.
By default this option is disabled and the configuration web interface is only accessible on the LAN.
If option "Enable media access log file" is enabled, all media streaming connections will be logged to the access_log.txt file found in the installation directory.
This page displays the list of Media Servers detected on your local network.
For each Media Server you can configure:
- if this Media Server should be made available to BubbleUPnP for Android when it connects
- if a proxy of this Media Server should be created on the LAN
When a proxy Media Server is created, a new Media Server with the same name will appear on your LAN with "[proxy]" appended to the name.
For example if you have a Media Server named "Awesome" then a new one called "Awesome [proxy]" will appear.
You can connect to it with any UPnP software like you would connect to "Awesome".
This page displays the list of UPnP AV Media Renderers detected on your local network.
For each UPnP AV Renderer you can create a playlist aware OpenHome Renderer that you can control with either BubbleUPnP for Android (requires 1.3.3+)
or other OpenHome Control Points.
An OpenHome Renderer has the following advantages over a regular UPnP AV renderer:
- each OpenHome renderer has its own playlist
- no need to leave the Control Point running for playlist track advance to happen
- several OpenHome Control Points (BubbleUPnP, Linn Kinsky) can be connected to the same renderer simultaneously, showing the same playlist and playback state
- create a playing playlist on a device and pick it up later on another device
For example, consider this scenario:
- with BubbleUPnP Server you create an OpenHome renderer from WMP
- in BubbleUPnP for Android on your phone you select this renderer and make a playing playlist and start playback
- you exit BubbleUPnP. Playlist track advance is still performed by BubbleUPnP Server
- sometimes later you launch BubbleUPnP on your tablet (or phone) and select the WMP OpenHome renderer. The initial playlist is displayed
To create an OpenHome Renderer from the selected UPnP AV Renderer just check "Create an OpenHome renderer".
A new UPnP Device will appear on the network named after the UPnP AV Renderer's name with "(OpenHome)" appended.
For example if you select a Windows Media Player Renderer called "bob (MYPCNAME: Windows Media Player)", then
the newly created OpenHome Renderer will appear as "bob (MYPCNAME: Windows Media Player) (OpenHome)" in BubbleUPnP for Android.
An OpenHome renderer has two optional parameters that you can modify:
- Room: the physical room where your renderer is located. Limited to 20 characters
- Name: the name of the renderer within the room. Limited to 20 characters
Room and Name are ignored by BubbleUPnP for Android. However they are used by other OpenHome Control Points such as Linn Kinsky
to get the full name of the renderer which will usually be "Room: Name".
To control an OpenHome renderer you cannot use a regular UPnP AV Control Point. You need an OpenHome Control Point:
Untested Control Points: ChorusDS (iOS, MAC), Konductor (iOS), PlugPlayer (iOS), SongBook DS (iOS), SongBook Mac.
Here are screenshots of both Linn Kinsky (left, PC) and BubbleUPnP for Android showing the same playlist for the Windows Media Player renderer as an OpenHome Renderer:
Help
This page. The FAQ section will be updated over time.
Once BubbleUPnP Server is up and running you can configure BubbleUPnP to connect to it
and start streaming music.
In BubbleUPnP:
- Go into Settings > Networks and settings, select an unused Network and set the connection parameters (left screenshot)
- Use the Test button to test the connection
- Use the Apply button to connect to BubbleUPnP Server and have the remote Media Servers listed in the Devices tab of the app (right screenshot)
Name
This is the name used to identify the remote BubbleUPnP Server network. You can choose any name you want.
It is used to identify Media Servers from different networks. For example if your home Media Server is named
"My Media Server" and you set Name to "Home", this Media Server will be listed as "My Media Server [Home]" in the Library tab (as shown in the right screenshot).
Server address
This is the public connection URL to BubbleUPnP Server. The information used to set this field is displayed in the Status tab of BubbleUPnP Server.
For example if the Status tab shows:
Public IP Address: 1.2.3.4
Public HTTP Port: 58050
Public HTTPS Port: 58051
Public host name: my.host.org
To connect through HTTP, you must set "Server Address" to either http://1.2.3.4:58050 or http://my.host.org:58050
To connect through HTTPS, you must set "Server Address" to either https://1.2.3.4:58051 or https://my.host.org:58051
Login
Use the login that you defined in the Security tab.
Password
Use the password that you defined in the Security tab.
Active on connection
This setting allow you to set when BubbleUPnP should automatically connect to this remote network to make the
associated Media Servers available in the Devices tab of the app.
For example you may want to connect to this network only when your Android device uses a Mobile data connection.
In that case you would set this setting to "Mobile". Now every time your Android device switches to a mobile connection,
BubbleUPnP will connect to BubbleUPnP server to make your Media Server available in the Devices tab.
And if you switch from a mobile connection to WiFi, it will disconnect and remove them from the Devices tab.
The possible choices are:
- Disabled: never connect to this network
- Mobile: connect to this network on mobile connections
- WiFi /Ethernet: connect to this network on WiFi or Ethernet connections
- Mobile / WiFi / Ethernet: connect to this network on mobile or WiFi or Ethernet connections
Advertise on LAN
This setting if enabled will make all Media Servers of this remote network (those listed in the right screenshot) visible on the target LAN on which your Android device
is currently connected. This only work if your Android device uses a WiFi or Ethernet connection.
It means that your UPnP devices on the target LAN (a PS3, a DNLA TV, etc) should be able to see and browse your remote Media Servers.
This is UPnP tethering.
For example a PS3 accessing to your home Media Server follows this path when issuing commands (browsing, searching, etc):
PS3 -> Android device (BubbleUPnP) -> Internet -> BubbleUPnP Server -> Your Media Server.
For streaming audio or retrieving album art the PS3 talks directly to BubbleUPnP Server without Android BubbleUPnP in the middle:
PS3 -> Internet -> BubbleUPnP Server -> Your Media Server.
BubbleUPnP Server can optionnaly transcode audio (to MP3) and video (to H264/MP3) for playback on the Android device itself (using the local renderer).
No transcoding is ever performed if streaming to an external renderer, as it may have a faster connection to BubbleUPnP Server than your Android device.
Separate transcode settings are also available for downloaded files.
For transcoding to work, BubbleUPnP Server must report that audio and/or video transcoding are supported in its Status tab.
NOTE: Video transcoding is only available since BubbleUPnP 1.3.2
In BubbleUPnP for Android, you can configure how BubbleUPnP Server should perform the transcoding in Settings > Networks and settings.
There are separate settings for Audio and Video and for each connection type.
Music playback transcoding
- Mobile Max Bitrate: on a mobile connection, BubbleUPnP Server will transcode to the specified bitrate all audio whose bitrate is higher than this bitrate
- WiFi / Eth Max Bitrate: on a WiFi / Eth connection, BubbleUPnP Server will transcode to the specified bitrate all audio whose bitrate is higher than this bitrate
- Lossless only: enabling this setting will ensure that only lossless tracks will be possibly affected by the transcode settings. This is to prevent
lossy->lossy transcodes which should be avoided if possible are they are bad for audio quality (unless the source is 320Kbps in which case it might be acceptable)
Video playback transcoding
Here you can specify which profile should be used for video transcoding:
- No transcoding
- 720p / 128Kbps audio
- 480p / 128Kbps audio
- 360p / 128Kbps audio
- 240p / 128Kbps audio
- 240p / 64Kbps audio
- 120p / 64Kbps audio
All profiles will transcode to H264 for video and MP3 for audio, into an AVI container (for technical reasons it cannot be MP4).
Aspect ratio is preserved.
The transcoded video IS NOT playable by the standard Android video player and requires a third party video player app
supporting software decoding. DicePlayer and MoboPlayer have been verified to work but there are probably many others.
- Mobile transcoding: profile to be used on a mobile connection
- Wifi / Eth transcoding: profile to be used on a WiFi / Eth connection
Downloads transcoding
Here you will find specific transcode settings applied to downloaded files:
- Lossless audio bitrate: downloaded lossless audio files will be transcoded by BubbleUPnP Server as MP3 of the specified bitrate