Your All-in-One Media Source


1TG Blog Sponsors

Check out some special Android applications not found on the Play Store. One we found to be amazing is a Chromecast compatible version of XBMC KODI (forked) with special external player options for multiple ways to play movies and TV shows has been made by the XBMC HELPERS.

With this version of XBMC KODI, stream movies and TV shows even Live TV to various platforms such as Chromecast, Nexus Player, Samsung Smart TVs, other Smart TVs with internet connection for UPnP and DLNA settings options available.


"How it works...

To start we are a developer group who helps 10s of thousands of people each year with results. Providing help like setup, updates and troubleshooting any device or computer platform as well as multiple types of software and hardware.

Modifying certain applications through a github fork we created several versions of Android applications that give you external player features using Google Casting code and other types of external player options to Smart TVs and TV players like Chromecast, Nexus Player, Amazon Fire TV, LG and Samsung Smart TVs.

All are forked and modified but as a reminder we do not host any of the content. We can not control any of the updates and suggest not to. Also from time to time file locations or 3rd party add-ons for streaming content will change or need updating. We try our best to help everyone and ask you stay patient and keep trying to communicate if you have a legitimate problem or question.

We are not selling anything and our main work or helping is free. We do accept donations. Donations are used to help with buying new hardware/software/website hosting costs. We like to eat food too and we tend to help so many people it takes away from making an income. We are all students of various trades and professions and studies and as that you understand we do not spam, scam or want you to do anything other than what you enjoy, streaming TV and movies.

A reminder, we are not selling you anything and you should understand and expect NO refunds as that makes no sense to ask for a refund for a donation.
When you make a transaction we decide to release a version that is for testing only. This is not available in the Play Store and is given to use to try out. We ask that you understand you are not buying the applications but are donating to app and code writers students who use any donations to further development of possible future ideas or new ventures in code creation and official releases.

If you decide to make a transaction do not expect a refund. Do not expect anything to work or have any help behind troubleshoot or setup. Android devices come in many forms with many makers and with many levels of Android OS. We will try to help anyone with issues but do not expect to receive anything."

XBMC HELPERS Apps (github fork)
1TG Blog Sponsors

Several types of apps for testing.

Choose from below.

Buy Now!

TroubleShooting Tips
If you have a similar version like KODI or XBMC already installed, remove it first before installing any version from here.

StreamHUB® Android Applications for Premium TV shows and Movies

We've made it easy to download your favorite applications. StreamHUB® Android applications bundle pack takes the latest and greatest developers and code writers and gives them a place to share, collaborate and get recognized for their great applications for Android TV an movies. 
All apps are compatible with Android tablets, cell phones, Amazon fireTV and fireTV stick, Chromecast and Smart TVs (Samsung and LG Smart TVs)
1TG Blog Sponsors
Consider this a new era in how you will search for and download all the very best applications for Live Sports, movies and TV shows in HD commercial free!
So far we have gotten the creators for the apps listed below but as time goes more and more apps will be added. When you make your transaction today, you will be emailed with updates and links to downloading other new apps and updates totally free. As time goes you can count on us to give you what you need and without hassle or headache. We work directly with the developers and creators to StreamHUB® your ability to stay up-to-date and keep you doing what you enjoy, streaming TV, movies, live sports, music, games and more!

Apps so far include the latest updates for all applications

More coming soon and you will be notified when to download newest added apps and updates.


1TG Blog Sponsors
Disclaimer:  we do not host any of files listed here we're merely held for developers to post their newest build versions of premium applications. Consider your transaction a donation and not to purchase
1TG Blog Sponsors


#showbox #playbox #moviedroid #moviesHD #popcorntime
1TG Blog Sponsors

Get Started with Chromecast

Set Up Chromecast

Please note: The use of a mobile hotspot with your Chromecast is not recommended.
(You can turn on video captions in your language. Play the video, and click the "CC" button. Then pick your language from the menu.)

You can set up your Chromecast in a snap using either an Android or iOS phone or tablet or a Mac, Windows or Chromebook computer running Chrome 28 or higher. You only need to set up your Chromecast once - you can cast from additional supported devices without having to set up Chromecast again. Before you begin the setup process, make sure you are connected to a 2.4 GHz Wi-Fi 802.11 b/g/n Wi-Fi network.

Get started with Chromecast by visiting www.google.com/chromecast/setup on a device that is running a supported operating system:

To set up Chromecast using your Android Phone or Tablet, Android version 2.3 & higher:

  1. Install the Chromecast App by navigating to www.google.com/chromecast/setup on your Android device, available for Android devices running Android Gingerbread 2.3 and higher.

  2. Press the ‘Get It On Google Play’ button to download the Chromecast App.

  3. Launch the Chromecast App for Android.

  4. Select the Chromecast device you want to set up from the list and follow the prompts on the screen to complete the setup of your Chromecast.

To set up Chromecast using your Windows computer; Windows 7 & higher:
  • Install the Chromecast App on your Windows by navigating to www.google.com/chromecast/setup, available for Windows computers running Windows 7 or higher.

  • Save the file or run it once it is downloaded. If you choose to save the file, you will need to double click on the file to begin the installation process.

  • Run the Chromecast app and select the Chromecast device you want to set up from the list and follow the prompts on the screen to complete the setup of your Chromecast.

To set up Chromecast using your iOS phone or tablet, iOS version 7 & higher:

  1. Install the Chromecast App by navigating to www.google.com/chromecast/setup on your iOS device, available for iOS devices running iOS 7 or later.

  2. Press the ‘Available on the Apple App Store’ button to download the Chromecast App.

  3. Launch the Chromecast App for iOS.

  4. Select the Chromecast device you want to set up from the list and follow the prompts on the screen to complete the setup of your Chromecast.

To set up Chromecast using your OS X laptop computer; version 10.7 & higher:
  • Install the Chromecast App on your OS X device by navigating to www.google.com/chromecast/setup, available for OS X laptops running OS X 10.7 and higher.

  • Drag the Chromecast app to your Applications folder, then double click the folder to open it.

  • Run the Chromecast app and select the Chromecast device you want to set up from the list and follow the prompts on the screen to complete the setup of your Chromecast.

To set up Chromecast using Chrome OS on a Chromebook running Chrome 28 & higher:
  1. Get started with Chromecast by navigating to www.google.com/chromecast/setup, on your Chromebook.

  2. Add the Cast extension for Chrome.

  3. Once you’ve added the Cast extension, setup will automatically start in a new tab.

  4. If setup doesn’t automatically begin, or if you want to run setup later, click on the Cast extension button in your browser and select Options. On the Options page, click on Add Chromecast.

If your Chromecast is set up correctly and your TV is on the correct input, you will see the Chromecast Home Screen with your Wi-Fi network name referenced on the bottom left-hand side. If you don't see the Chromecast Home Screen, change the input on your TV using the Input or Source button on your TV’s remote control.

Please note: Your Wi-Fi network configuration may prevent you from setting up Chromecast successfully. If you are having trouble connecting Chromecast to your Wi-Fi network, please see our Chromecast Router Compatibility list here. If you're still having trouble, please visit our Chromecast troubleshooter here.

Mac OS and OS X are registered trademarks of Apple Inc. Windows is a registered trademark of Microsoft Inc. iOS is a trademark or registered trademark of Cisco Inc. The Netflix logo is a trademark of Netflix, Inc. Netflix is available in certain countries. Unlimited streaming membership required. More information at www.netflix.com.

KODI Approved Sponsored Ad

Get Started with Chromecast

Plug In Chromecast

Remember, to set up your Chromecast you'll need:

  • A display device with an HDMI input, for example, a high-definition television (HDTV)
  • Access to an available power outlet or an available (non-service) USB port on your HDMI-enabled display
  • Access to a secure wireless network (make sure you have the wireless network password handy)
  • A Mac, Windows or Chromebook computer, or an Android or iOS smartphone or tablet.

You can connect Chromecast to your TV in a few simple steps:

  • A: Plug one end of the USB power cable into your Chromecast and the other end of the cable into the power supply and then into a nearby power outlet. We recommend that you use the USB power cable and power adapter that is included in the box for optimal performance.

  • B: Plug your Chromecast into any open HDMI input on your TV.

  • C: If you do not have access to an open outlet, you can also power your Chromecast by plugging the USB power cord directly into an open USB port* on your TV.

It's important to use the cords and adapters that come inside the Chromecast box. If you’re having trouble fitting Chromecast into your TV’s HDMI port, or if you need to improve your Wi-Fi reception, try using the HDMI extender that came in the Chromecast box.

Once your Chromecast is plugged in, you should see the Chromecast home screen. If you do not see the Chromecast home screen on your TV after setting up Chromecast, use the Input or Source button on your TV’s remote control to change the input until you see the Chromecast home screen.

*Do not plug the USB cable into a port labeled 'Service'; it must be labeled 'USB' or display the USB symbol.

KODI Approved Sponsored Ad
BubbleUPnP Server

Latest version: 0.9-update3 (Jan 21th 2015) (full Changelog history)


Report issues, get support and leave feedback on XDA.

What is BubbleUPnP Server ?

BubbleUPnP Server provides new services, many of them running on top of your existing UPnP/DLNA devices:
  • make various media formats not natively supported by Chromecast playable with transcoding. Works in tandem with Android BubbleUPnP
  • secure Internet access to your UPnP/DLNA Media Servers content with Android BubbleUPnP and foobar2000.
    • 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 Media Renderers from any UPnP AV renderer (provides on-device playlist, multiple Control Point access to the same renderer)
  • 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

Unless BubbleUPnP Server is used only for use with Chromecast, it requires at least one working UPnP AV Media Server or Media Renderer to do something useful.


Chromecast can only play a handful of supported media formats.

BubbleUPnP Server can:

  • transcode unsupported format on the fly to make most media playable: MKV, AVI, MOV, WMV, RMVB, TS, FLAC, WMA, ...
  • make large photos load faster and rotate photos according to EXIF orientation
  • perform transcoding to limit WiFi bandwidth required and avoid stuttering on the Chromecast
  • extract embedded subtitles in MKV, MOV, MP4 for display on the Chromecast
If you are using BubbleUPnP Server only with Chromecast, go here.

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 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 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 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)

Video showing that feature (courtesy of Stephen Philips)

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 Android BubbleUPnP or other OpenHome Control Points.

Download and installation


BubbleUPnP Server can run on any platform where Java 7 or higher is available (latest Java 8 recommended). This includes:
  • Windows XP / Vista / 7 / 8
  • MacOS X
  • Linux
  • Any NAS or device on which Java 7 or higher is available

IMPORTANT: if after install you cannot connect to the web interface, refer to the troubleshooting section.

Windows XP / Vista / 7 / 8

On Windows, the easiest way to get started is to use the installer.
  • Windows installer (requires 32-bit or 64-bit Windows with 32-bit Java, includes 32-bit ffmpeg)

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.

Ubuntu Linux

Ubuntu packages are provided in a PPA repository for easy updates. The server is managed as a regular upstart job.

First you must ensure that Java 7 or higher is installed:

$java -version
java version "1.8.0_25"
Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)
If Java is not installed, the easiest way is to install the Oracle Java 8 JRE via the webupd8team PPA:
$sudo add-apt-repository ppa:webupd8team/java
$sudo apt-get update
$sudo apt-get install oracle-java8-installer
Although the Oracle JRE is preferred, the OpenJDK 7 or higher should also work:
$sudo apt-get install openjdk-7-jre-headless
To install the BubbleUPnP Server PPA package only for Ubuntu Vivid, Lucid, Utopic, Trusty and Precise, enter theses comands:
$sudo add-apt-repository ppa:bubbleguuum/bubbleupnpserver
$sudo apt-get update
$sudo apt-get install bubbleupnpserver
For other Ubuntu versions, or if you prefer to install the package without using the PPA, enter theses comands
$wget https://launchpad.net/~bubbleguuum/+archive/bubbleupnpserver/+files/bubbleupnpserver_0.9-1_all.deb
$sudo dpkg -i bubbleupnpserver_0.9-1_all.deb

After install the server should be running. Connect to it with your web browser: http://localhost:58050 (from your Ubuntu machine) or http://<server LAN ip>:58050 (from another machine on the LAN).


  • the package installs a ffmpeg static binary to provide audio/video transcoding out of the box
  • the user running the BubbleUPnP Server as well as the http ports can be easily changed in /etc/default/bubbleupnpserver (needs a server restart).
  • data files (configuration, log files, playlists, ...) are stored in the .bubbleupnpserver subdirectory of the home directory of the user running the server. For root this is /root/.bubbleupnpserver.
  • to start BubbleUnP Server:
    $start bubbleupnpserver
  • to stop BubbleUnP Server:
    $stop bubbleupnpserver

Arch Linux

Download the package from the AUR and extract it to a temporary directory. Alternatively, use a tool such as cower to download and extract the package automatically:
$cower -d bubbleupnpserver
Change to the temporary directory:
$cd /tmp/bubbleupnpserver
Run makepkg to download, build, and install the package:
$makepkg -si
Follow the prompts and onscreen instructions to begin using BubbleUPnP Server.

NOTE: the source of the package is available on github

Synology NAS

Download Synology package

If you get error "This package does not contain a digital signature" after selecting the .spk package, open Package Manager, click Settings. In 'General', set the Trust Level to 'Any Publisher'

If the server doesn't start, make sure 'User Home Services' is enabled (instructions).


You can install one of these packages and read detailed instructions here You can find additional instruction to compile ffmpeg (if needed) here.

Alternatively you can follow the "Other Java platforms" section below for manual install.

Other Java platforms (Linux, MacOS X, Raspberry Pi, NAS, ...)

Download BubbleUPnP Server

BubbleUPnP Server is distributed as an archive containing a jar file.

  1. unpack the archive in a directory
  2. on unix platforms make launch.sh executable: chmod +x launch.sh
  3. on unix platforms run launch.sh, on Windows run launch.bat. Java 7 or higher must be installed and the "java" executable must be in your PATH
  4. point your Web Browser to http://localhost:58050 to show the configuration interface
  5. 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.

Alternatively you can run the server with:

java -jar BubbleUPnPServerLauncher.jar

Raspberry Pi

See this indepth article written by Stephen Phillips for additional setup information on the Pi and instructions for making the Pi an OpenHome renderer.


If you are using BubbleUPnP Server only for Chromecast transcoding, go here.

The core of BubbleUPnP Server is a 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 6 tabs:


This page displays a summary of the server operational status and has all information required to configure Android BubbleUPnP:

  • the server's status when connecting from the Internet
  • the server's public IP Address and hostname
  • the server's public HTTP and 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, video and image transcoding
If "Server is reachable from Internet" is displayed, everything is fine and BubbleUPnP Server is ready to use for remote access.

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

  • Add a rule on your router to redirect connection on TCP port 58050 to LAN IP Address 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 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.

Network and Security

In this page you can set the login and password that you will use to connect to the server:
  • in Android BubbleUPnP
  • 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 Android BubbleUPnP, 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.

Media Servers

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 Android BubbleUPnP 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".

Media Renderers

This page displays the list of UPnP AV Media Renderers detected on your local network.

Creating OpenHome renderers

For each UPnP AV Renderer you can create a playlist aware OpenHome Renderer that you can control with either Android BubbleUPnP 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
  • gapless playback is supported when the underlying UPNP AV renderer supports it
  • no need to leave the Control Point running for playlist track advance to happen
  • several OpenHome Control Points (Android 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 Android BubbleUPnP 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 Android BubbleUPnP. 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
  • Gapless playback: enable music gapless playback (see below)
Room and Name are ignored by Android BubbleUPnP. 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".

OpenHome Gapless playback

Enabling gapless playback has several benefits:

  • the obvious one is to be able to play gaplessly gapless albums like "Dark side of the moon"
  • a less obvious one is to reduce gaps between non-gapless tracks streamed from the cloud (Dropbox, Google Music, etc). The next track to be played is buffered in advance making possibly long buffering unnoticeable on next track transition

Gapless playback can only be enabled on renderers on which it may work. Enabling it is not a guarantee that it will work. If gapless playback works in Android BubbleUPnP with the regular UPnP AV renderer, it should work with the OpenHome renderer managed by BubbleUPnP Server.

Non-exhaustive list of renderers tested working:

  • Denon DNP-F109 (and possible variants)
  • Cambridge Audio Stream Magic 6 (with latest firmware)
  • Simaudio Moon Mind 180D
  • Electrocompaniet ECI-6DS
  • foobar2000 (with foo_upnp)
  • JRiver Media Center (playlist track reordering is buggy)
  • gmrender-resurrect

If gapless playback does not work or if track advance fails, disable this setting.

NOTE: Changing this setting takes effect when next track is played.

Controlling OpenHome renderers

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.

Linn Kinsky and Android BubbleUPnP both showing the same playlist and status, playing to foobar2000 as an OpenHome Renderer:


This page contains additional settings.


  • Transcode high-res audio to 44.1/16 or 48/16 FLAC: force transcoding of audio > 48Khz to either 44.1/16 or 48/16 FLAC. This can be useful for streaming on networks where bandwidth is sufficient for 44.1/16 or 48/16 FLAC but not higher (for example 4G/LTE on mobile)
  • Video encoding quality: Set video encoding quality for H264 transcoding. Higher quality requires more CPU power
  • Log to file: logging to file. Enabled by default. Disable to prevent hard drive spinning on some NAS when in power saving mode

foobar2000 remote access

These settings are used when connecting with foobar2000.

Chromecast transcoding

Installation and setup

First, you must determine on which machine of your network to install BubbleUPnP Server. In most cases it will be a desktop computer or a NAS.
If you plan to transcode videos, you will need a powerful CPU. A fast PC is recommended, especially for 1080p video. Many NAS will not be powerful enough (save for the most powerful ones).
If you need to transcode only audio (including just audio in videos), any machine should be able to handle it.

The easiest way is to install BubbleUPnP Server on a Windows PC or on Ubuntu Linux (PPA package). It includes everything you need for Chromecast transcoding straight away, without requiring to configure anything. Just install it and it will be ready for use.

On other platforms, you must check these additional requirements:


A working ffmpeg binary is required. The ffmpeg version must not be too old (at least v1.0) and the more up to date it is, the better.

A working ffprobe binary is optional. If a local ffprobe binary is not found, ffprobe will be called from the cloud, requiring that BubbleUPnP Server is passing the connectivity test succesfully.

  • ffmpeg/ffprobe binaries located in the installation directory are used if present, otherwise they are searched in the PATH
  • On Ubuntu, the PPA package will download the required ffmpeg/ffprobe binaries so it should work out of the box
  • On other Linux distributions, unzip these binaries in the installation directory
  • On MacOS X, download binaries from this site and put them the installation directory
  • On the Raspberry Pi (powerful enough only for audio), the ffmpeg/ffprobe version might be too old and you must replace them by more recent binaries. This ffmpeg compilation guide may be useful
  • On other platforms you can try using Google for finding suitable ffmpeg/ffprobe binaries

The downloaded ffmpeg/ffprobe binaries must be executable:

chmod +x ffmpeg
chmod +x ffprobe

Whenever you update the ffmpeg/ffprobe binaries, you must restart BubbleUPnP Server for the change to take effect.

You can check what version of ffmpeg is used by looking at the BubbleUPnPServer.log.0 log file.

For full functionality, ffmpeg must include mp3 encoding support (libmp3lame), H264 support (libx264), Matroska support (libmatroska).

For transcoding media from Google Drive and more generally https streams, ffmpeg must be compiled with the https protocol (ffmpeg -protocols). That is often not the case with static builds of ffmpeg found online.

Playing media with Android BubbleUPnP

Android BubbleUPnP automatically detects BubbleUPnP Server on your network for Chromecast transcoding duties.
There is no need to manually enter connection settings (unless you want to transcode to Chromecast outside your local network).

When BubbleUPnP Server is detected, the server version is displayed and all settings can be changed:

Simply play any media to Chromecast normally. BubbleUPnP Server will perform transcoding in the background if and only if necessary. If the media cannot be transcoded or if there is any error, the original media will be forwarded as is to the Chromecast and might not play at all or partially (ex: video but no audio).

For best quality, BubbleUPnP Server only transcodes what is required: audio or video or both. For example, a MKV containing H264 video and DTS audio will be transcoded to a MKV containing the unmodified H264 video and the DTS audio track transcoded to MP3. In some cases, audio and video are both untouched and just remuxed in a different container.

Standalone audio (eg FLAC, WMA, ...) is always transcoded to WAV, with no loss of quality.

Transcoding media outside the local network

It is possible to use transcoding features for use on the go, when you are not connected to your home local network. For example, if you visit a friend with your Chromecast and want to play on his TV a video that requires transcoding.

In that case, you must manually enter BubbleUPnP Server connection settings as explained here. When a remote BubbleUPnP Server is used, Settings > Chromecast > Version will show its ip address or hostname.

For technical reasons, only media reachable from the cloud can be transcoded by the remote BubbleUPnP Server. It includes:

  • your cloud media managed by Android BubbleUPnP: Google Drive, Dropbox, ...
  • your home media exposed to Android BubbleUPnP via BubbleUPnP Server
  • any media that is stored online and that BubbleUPnP is able to handle

Any media that resides on your Android device or your friend's local network cannot be transcoded by BubbleUPnP Server, because it cannot be reached.

Depending on the download bandwidth available on the target network and the upload bandwidth of your home network, you may have to decrease "Max video bitrate" substantially for the video to play smoothly (not stutter due to insufficient bandwidth).

Troubleshooting video stuttering issues

First, it is important to understand that some videos have very high bitrates requiring too much network bandwidth that the Chromecast WiFi cannot handle, causing stutter.

And unlike wired networks such as Ethernet, WiFi is bad at sustaining stable bandwidth over time: it is usually very spiky and irregular.

For best performance and for media not stored on your Android device, make sure that the machine running your UPnP/DLNA Media Server managing your media use a wired (Ethernet) connection to your WiFi router. If that is a PC or a NAS, make sure that it is not connected through WiFi as this will degrade network performance for streaming significantly.

Videos causing stutter will be in most cases high definition videos such as 1080p. Most cameras on current phones take 1080p videos at very high bitrates and enter in the problematic category.
Stuttering can start to apppear with video bitrates higher than 8000 Kbps (1000 KB/s) and maybe even lower depending on the WiFi quality.

To reduce network bandwidth and eliminate stutter, BubbleUPnP can force transcode videos whose bitrate is higher than a user configured bitrate (the "Max video bitrate" setting).
For example, suppose you play a 1080p h264 video whose bitrate is 16000 Kbps. If "Max video bitrate" is set to 8000 and "Enforce max bitrate" is enabled, this will force a reencode to 8000 Kbps, because 16000 > 8000.

But transcoding a video to reduce network bandwidth can potentially cause stutter if the CPU is not fast enough to perform the transcoding. Transcoding a 1080p video requires a lot of CPU power and most current PCs are able to handle it. But if the CPU is not fast enough, video will stutter because it cannot be transcoded fast enough.

To troubleshoot stutter issues, follow these steps for a possible solution:

On the machine running BubbleUPnP Server, monitor the ffmpeg process CPU usage (using the task manager on Windows), while the stuttering video is playing:

  1. the ffmpeg process is not running (no transcoding is performed)

    The cause of stuttering is that the video bitrate is too high.

    • Make sure "Enforce max bitrate" is enabled
    • lower "Max video bitrate" to 5000 Kbps and play the video again
    • if the video still stutters
      • lower "Max video bitrate" to 2000 Kbps and play the video again
      • if the video still stutters, go to 3. to check if the CPU is maxed out

  2. the ffmpeg process is running and its CPU usage is not close to 100% (transcoding is performed, CPU not maxed out)

    The cause of stuttering is that the video bitrate is too high.

    • lower "Max video bitrate" to 5000 Kbps and play the video again
    • if the video still stutters:
      • lower "Max video Bitrate" to 2000 Kbps and play the video again
      • if the video still stutters the cause of the stutter is unknown and neither due to bandwith nor to the CPU usage

  3. the ffmpeg process is running and its CPU usage is close to 100% (transcoding is performed, CPU maxed out)

    The cause of stuttering is that the CPU is maxed out

    • to lower CPU usage, set "Video encoding speed" to "Ultra fast" and play the video again
    • if CPU usage:
      • is still at 100%: disable transcoding by setting a high value (such as 30000) for "Max video bitrate" and play the video again. if it still stutters there is no solution as the video requires too much bandwidth and your CPU is not powerful enough to lower it
      • is below 100% but video still stutters: go to 2.


Android BubbleUPnP doesn't detect BubbleUPnP Server

If you installed BubbleUPnP Server and Android BubbleUPnP doesn't detect it (Chromecast settings remain grayed out):
  • make sure that a firewall running on the machine on which BubbleUPnP Server runs is not blocking UDP port 1900
  • on Windows, check that BubbleUPnPServer.exe is not blocked by the firewall
  • reboot your WiFi router and Android device

Some or all of my videos managed by Windows Media Player do not play

There is a known issue with WMP. The symptom is that the Chromecast will show the video loading screen for a few seconds before reverting to the BubbleUPnP logo.

The cause is unclear and until there is a solution, it is suggested to use another Media Server such as Serviio.

Connecting with Android BubbleUPnP

Once BubbleUPnP Server is up and running you can configure BubbleUPnP to connect to it and start streaming your media.

Remote UPnP Network configuration

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)


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:
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 or http://my.host.org:58050
To connect through HTTPS, you must set "Server Address" to either or https://my.host.org:58051


Use the login that you defined in the Security tab.


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.

Audio, video and image transcoding settings

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.

In Android BubbleUPnP, you can configure how BubbleUPnP Server should perform the transcoding in Settings > Networks and settings.
There are separate settings for Audio, Video, Images, and for each connection type.

SD Card mobile music caching

Android BubbleUPnP can optionally cache to SD Card music accessed through BubbleUPnP Server, when using a mobile data network connection. This reduces mobile data usage when playing tracks that have been previously played.

This section allows to configure caching settings:

  • Cache folder: select folder for storing cached tracks.
    By default this is <internal sd card root>/BubbleUPnP/cache/media.
    You can specifiy any folder you want, including a high capacity additional external SD Card. The cached data is preserved across app reinstalls.
  • Max cache size: Max size in MB to allocate to cached tracks.
    When max size is reached, older cached tracks are deleted to make room for newer tracks.
    Set to 0 to disable caching.
  • Clear cache: delete all tracks from the cache folder
  • Add to Android Library: when a track is cached, it is added to the Android Music Library, thus visible to other music players

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)
  • Seekable tracks (since BubbleUPnP 1.7.7): request BubbleUPnP Server to generate seekable transcoded music tracks (see below)

Seekable transcoded music tracks

BubbleUPnP Server 0.7 introduces the ability to generate seekable transcoded music tracks (disabled by default) for tracks for which duration can be determined and whose duration is lower than 10 minutes.

It can be enabled with "Settings > Network and Settings > Seekable tracks" in Android BubbleUPnP 1.7.7+, or forced on the server side with the -transcodeAudioSeekable command line argument or related parameter in the configuration.xml file.

When enabled, BubbleUPnP Server will transcode a track fully before serving it for playback to the client. This introduces a variable delay depending on CPU speed and track duration before the track can be played. On a standard PC, it should not exceed a few seconds. That's why it is not recommended to enable it if BubbleUPnP Server is running on a slow CPU (such as some NASes). This delay only happens the first time a seekable track is generated as it is cached to disk for subsequent plays.

When enabling this feature, it is recommended to also enable Settings > Local renderer > Gapless playback, in Android BubbleUPnP. Gapless playback will trigger transcoding of the next track before current track finishes and make the delay discussed above unoticeable in most cases. Only playback of the first track may be delayed.

Video 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 MPEG-TS container (for technical reasons it cannot be MP4). Aspect ratio is preserved. The transcoded video may not be playable by the standard Android video player and requires a third party video player app such as MX Player or BS Player and probably many others. The recommended player is MX Player.
  • Mobile transcoding: profile to be used on a mobile connection
  • Wifi / Eth transcoding: profile to be used on a WiFi / Eth connection

Image transcoding to local renderer

  • Optimize bandwidth: reduce the size of image by resizing and recompressing. Necessary for viewing large size photos over mobile networks.
  • Image quality: 0-100 jpeg compression quality. Higher is better quality and higher size.

File 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
  • Video transcoding: downloaded videos will be transcoded to MKV with the specified quality

Music and video Internet streaming with foobar2000 on Windows (or Wine)

This feature allows you for example to stream to your work PC your music and videos from your home Media Server. Playing videos requires foo_upnp 0.99.45+.

NOTE: foobar2000 is a Windows program but it can run on other plaftorms through Wine. On Mac OS X, the easiest way to install foobar2000 is through Wineskin.

Connecting with foobar2000

First you must make sure the status page of BubbleUPnP Server shows that it is accessible from the Internet.

You can access your Media Server from the Internet for streaming music and videos on Windows, using the foobar2000 music player as the client.

After installation, in the View menu of foobar2000 select "UPnP Browser". The UPnP Browser window displays all your discovered LAN Media Server allowing browsing an playing music as shown in the left screenshot. In the view Menu, select "Add remote Internet UPnP Server..." and enter BubbleUPnP Server connection settings (left screenshot):
  • the public hostname of BubbleUPnP Server with the protocol (http or https) and port. For example: or
    It is recommended that you use https whenever possible
  • the login and password you defined in the "Network and Security tab" of BubbleUPnP Server
  • If you are behind a HTTP proxy, you must set it before connecting with "Configure http proxy settings..." or in File > Preferences > Tools > UPnP > Browser

TIP: If you are on a corporate network only allowing outgoing HTTP traffic on port 80, you can setup BubbleUPnP Server to run on port 80 (provided you have no other web server using this port). For HTTPS, use port 443.

After clicking OK and if the connection to BubbleUPnP Server is successful, the UPnP Browser tree will show a new Media Server named "BubbleUPnP Server (<Remote PC Network name>) [Internet]", as shown in the right screenshot.

This "Super" Media Server lists all your Media Servers on your remote LAN for which the setting "Make this Media Server available in Android BubbleUPnP and foobar2000 for Internet access" is enabled in BubbleUPnP Server (in the Media Servers tab).

To disconnect or remove the BubbleUPnP Server "Super" Media Server from the UPnP Browser, right click its root node and select "Remove server" in the context menu.

Note that you can integrate the "UPnP Browser" as a panel in the main foobar2000 window to avoid having a separate floating window. Here are basic instructions to do so:

  • make sure the standalone "UPnP Browser" window is closed
  • enter layout editing mode: View > Layout > Enable layout editing mode
  • right click in an existing panel
  • select "Replace UI Elements..."
  • select a splitter in the list
  • right click again in the new created area and select "Replace UI Elements..." again
  • in the list select "UPnP Browser"
  • exit layout editing mode: untick View > Layout > Enable layout editing mode

Transcoding audio to mp3

As with Android BubbleUPnP as a client, it is possible to transcode audio on the fly when accessing your Media Servers with foobar2000. Unlike Android BubbleUPnP, the transcoding settings are configured in BubbleUPnP Server, in the "Settings / foobar2000 remote access" tab.

  • Max audio bitrate: all files whose bitrate is greater than the specified bitrate will be transcoded to the specified bitrate. If bitrate is unknown, transcoding is performed. Set to "None" to disable all transcoding.
  • Apply Max audio bitrate only to lossless audio: if enabled, only lossless files (FLAC, ALAC, ...) are applied the Max audio bitrate rule so only lossless files will possibly be transcoded. This prevents any lossy->lossy transcoding which should be avoided if possible, if audio sound quality is important.

Transcoded files will not be seekable in foobar2000.

Changing these settings will only take effect in foobar2000 when browsing folders that were not previously browsed. To apply changes on browsed folders, you must disconnect/reconnect the BubbleUPnP Server "Super" Media Server.

NEW: Since foo_upnp 0.99.45 it is possible to override server transcode settings (only lossless audio) in foobar2000, in Files -> Preferences > Tools > UPnP > Browser > Remote Internet Servers:

Playing videos

foo_upnp 0.99.45 also now makes it possible to play videos from BubbleUPnP Server. To play a video:

  • Browse to the video folder using the UPnP Browser
  • In the "UPnP Browser Selection" playlist, double-click the video. Then select a video player app (VLC, ...) to start playback. You can alternatively open the video with context menu > UPnP Controller > Open ...
  • Starting with BubbleUPnP Server 0.6.4, it is possible to set video transcoding in foo_upnp settings in Files -> Preferences > Tools > UPnP > Browser > Remote Internet Servers > Video transcoding

Accessing Media Servers from a different network with BubbleUPnP Tether Client

Download BubbleUPnP Tether Client v0.9.1

BubbleUPnP Tether client is a simple Java command-line program that will make available on the LAN it is running Media Servers managed by BubbleUPnP Server on another LAN, with optional audio and video transcoding (UPnP Tethering). It is only meaningful to run this client on a different LAN than BubbleUPnP Server.

Start it from the command-line with a BubbleUPnP Server connection URL specified with -connect and the login specified with -login. For example, on Windows (launsh.sh on unix):

launch.bat -connect https://myhostname.org:58051 -login mylogin
[it will ask for BubbleUPnP Server password here]
Once started, you should be able to access tethered media servers from any UPnP program or device on the LAN the client is running.
By default, a tethered media server network name is appended "[tether]" to be differentiated from regular UPnP devices.

Several options can be specified on the command line and in particular transcoding options:

-connect VAL

BubbleUPnP Server connection URL (eg, http://hostname:port or https://hostname:port)

-deviceNameSuffix VAL

Suffix appended to tethered UPnP device network names (default: "tether"). Allows to differentiate tethered devices from regular devices


Show command line help

-logLevel VAL



Enable logging to file

-login VAL

Login for BubbleUPnP Server

-password VAL

Password for BubbleUPnP Server. If unspecified it will be prompted interactively


Set this option to transcode only lossless audio to the bitrate specified by -transcodeAudioMaxBitrate

-transcodeAudioMaxBitrate N

Set this option to transcode to mp3, audio files whose original bitrate is higher than the specified bitrate. Valid values: 128, 192, 256, 320

-transcodeVideoContainer VAL

Video container format used for transcoded videos (default: "mpegts"). Valid values: "mpegts" for MPEG-TS and "matroska" for MKV. Use MKV to preserve embedded subtitles in transcoded video. MKV requires BubbleUPnP Server 0.6.5+

-transcodeVideoHeightPixels N

Transcode videos as a MPEG-TS stream of to the specified height in pixels. Audio is transcoded to MP3 128 Kbps. For example, to transcode videos to 480p, set this value to 480. Valid values: [120...1200]


Where do I report issues, get support or leave feedback ?

You can leave a message in the XDA forums thread.

How do I change the default HTTP or HTTPS port ?

To change the HTTP or HTTPS port used by the server you must edit the configuration file and restart the server.

The configuration file is named configuration.xml. It is located in the installation directory. Open it with your favorite editor and modify the field httpPort (or httpsPort). If you set a port < 1024 on unix you will need to start the server as root otherwise you will get a permission error on startup.

To restart the server:

  • on Windows: use the "Stop BubbleUPnP Server Service" then "Start BubbleUPnP Server Service" found in the "BubbleUPnP Server" sub-menu of the Windows Start Menu
  • on other platforms: kill and restart the BubbleUPnP Server java process

How is security handled ?

You can connect to BubbleUPnP Server using either HTTP or HTTPS.
HTTP/HTTPS requests from outside the LAN (Internet) are authenticated using Digest Authentication.

Note that for technical reasons, media stream requests are neither authenticated nor use HTTPS.
That's why even if you connect through HTTPS, the HTTP port must still be available.

However, the HTTP stream URLs are constructed in a way that they cannot be "guessed" or "forged". They can only be obtained by browsing the server, whose access is always authenticated.

The HTTPS connection test fails while the HTTP test succeeds

If the HTTPS connection test fails while the HTTP test is successful on the Status page:
  • on your Router make sure that port 58051 is redirected to port 58051 on the target machine running the server
  • if using the OpenJDK JRE, try using an Oracle JRE instead. On Ubuntu Linux you can add this repository to install the Oracle JRE with apt

How can I connect through a VPN ?

Connecting through a VPN is not really necessary in most cases, as connecting through HTTPS over the Internet is more flexible.

If you want to connect through a VPN you can still do it, with the following limitations due to UPnP device discovery not being available on VPNs:

  • The connecting client (Android BubbleUPnP or foobar2000) will only be able to play media to itself (the local renderer in Android BubbleUPnP)
  • In Android BubbleUPnP, UPnP Tethering will be inoperant
To connect to a VPN in either Android BubbleUPnP or foobar2000, simply connect to BubbleUPnP Server using its LAN ip address instead of its public IP address, the same as if you were connecting to it on a LAN only.

I'm hearing gaps when streaming audio on my Android device

This is the symptom of the network bandwidth being insufficient, especially over a mobile connection. Try lowering the max bitrate setting in the Remote Network settings.

How do I enable MP3 audio transcoding support ?

On Windows, ffmpeg is bundled in the Windows Installer so transcoding will work out of the box. Transcoding support is enabled if the ffmpeg executable can be found in the PATH. ffmpeg must be compiled with libmp3lame support.

To check that libmp3lame is supported the command below should return this output:

$ffmpeg -codecs | grep libmp3lame
  EA    libmp3lame      libmp3lame MP3 (MPEG audio layer 3)
If ffmpeg doesn't recognize the -codecs option then ffmpeg is too old and cannot be used. Make sure you are using ffmpeg 0.6 or later (0.7+ recommended).

On other platforms, ffmpeg must be installed:

  • Linux (debian and derivatives): apt-get install ffmpeg
  • Linux (most distros): Download ffmpeg static binary. Unzip in the server's installation directory
  • MacOS X: you can install ffmpeg from MacPorts: sudo port install ffmpeg
  • Windows: ffmpeg binaries can be found here

How do I enable H264 video transcoding support ?

On Windows, ffmpeg bundled in the Windows Installer supports video transcoding out of the box.

A prerequesite for video transcoding is that MP3 audio transcoding is working (see paragraph above).

Additionaly you will need ffmpeg with libx264 present as well and the scale filter.

To check if libx264 is supported the command below should return this output:

$ffmpeg -codecs | grep libx264
  EV    libx264         libx264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10
To check if the scale filter is available the command below should return this output:

$ffmpeg -filters | grep scale
scale            Scale the input video to width:height size and/or convert the image format.

How do I compile ffmpeg on a QNAP NAS ?

Tested on QNAP TS-419p+ with ARM CPU, but should work the same way for others.

Install “Optware (IPKG)” qpkg from http://www.qnap.com/qpkg.asp

In case the “ipkg update” fails, try to adjust the following two config files:

[/opt/etc/ipkg] # more tsx19-kmod.conf
src/gz cs08q1armel http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable
[/opt/etc/ipkg] # more tsx19.conf
src/gz cs08q1armel http://ipkg.nslu2-linux.org/feeds/optware/cs08q1armel/cross/unstable

ipkg update
ipkg install optware-devel
ipkg install git
ipkg install yasm
ipkg install lame

mkdir /opt/compile
cd /opt/compile
git clone git://git.videolan.org/ffmpeg.git

cd ffmpeg
./configure --enable-ssse3 --prefix=/opt --extra-cflags='-I/opt/include' --extra-ldflags='-L/opt/lib' --enable-static --disable-shared --disable-ffplay --disable-ffserver --enable-libmp3lame
make install

replace built-in ffmpeg with link to new version

rm /usr/bin/ffmpeg
ln -s /opt/bin/ffmpeg /usr/bin

Troubleshooting server startup

A number of issues may prevent BubbleUPnP Server to start. Most of them are network related.

First, make sure the version of Java is 7 or higher. BubbleUPnP Server will not work with older versions.

You can find the execution log file named BubbleUPnPServer.log.0 in the installation directory (by default on Windows: C:\Program Files (x86)\BubbleUPnP Server). You can check this file for startup error messages:

org.teleal.cling.transport.spi.InitializationException: Could not discover any bindable network interfaces and/or addresses

On startup, usable network interfaces are enumerated. This error happens if none is found. A network interface is usable if:
  • it is up (connected)
  • it has at least one assigned ip address
  • it is not a VMWare or Parallels virtual interface
  • it is not a PPP interface
  • it is not a loopback interface
Furthermore, at least one network interface must have an IPv4 address that is neither a loopback address ( nor a link-local address (169.254.xxx.xxx).

MultiException[java.net.BindException: Address already in use, java.net.BindException: Address already in use]

The port (58050 by default) used by BubbleUPnP Server is currently used by another application (or BubbleUPnP Server is already running). You can check which ports are used with the netstat command. Configure a different port or kill the application using the current port.

org.teleal.cling.transport.spi.InitializationException: Could not initialize MulticastReceiverImpl: java.net.BindException: Address already in use

Some other program is bound to SSDP port 1900. You can check which ports are used with the netstat command.

org.teleal.cling.transport.spi.InitializationException: Could not initialize StreamServerImpl: java.net.SocketException: Permission denied: listen

Check that your firewall or other security software is not blocking Java

MultiException[java.net.BindException: Permission denied, java.net.BindException: Permission denied]

If you set a HTTP port < 1024, make sure you are running BubbleUPnP Server as root (on unix).

java.lang.RuntimeException: java.io.IOException: No route to host at org.fourthline.cling.transport.impl.DatagramIOImpl.send(SourceFile:159)

If you get this error on MacOS X and you are using a software called "Peer Guardian", go into Peer Guardian's settings and select the "Disable Filters" option.

Could not initialize StreamServerImpl: java.io.IOException: Unable to establish loopback connection

It seems this error is related to the Comodo firewall. Try disabling Comodo or adding a rule to allow BubbleUPnPServer.exe.

java.io.IOException: Cannot run program "netstat": error=2, No such file or directory

On non-Windows machines, the netstat command must be available and in the PATH.

[info] vmarg.3=-Djava.class.path=C:\Program Files (x86)\BubbleUPnP Server\BubbleUPnPServerLauncher.jar [info] Main Class: com/bubblesoft/bubbleupnpserver/server/Main Error occurred during initialization of VM java/lang/NoClassDefFoundError: java/lang/Object

This error may happen only on Windows when running BubbleUPnP Server as a service, if the Java JRE is not correclty installed or incomplete. Generally, reinstalling the latest version or the JRE (x86 or x64 depending on the Windows installer used) fixes it:

Oracle JRE Download page

I/O exception (java.net.SocketException) caught when processing request: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.DefaultSSLContextImpl)

This error may happen in the log and will cause the HTTPS connectivity test to fail. See this faq entry


0.9-update3 (Jan 21th 2015)

fixed failure to play video to Chromecast with Android BubbleUPnP in the following scenario:
  • Android BubbleUPnP and Chromecast are on a remote network
  • video played is exposed by BubbleUPnP Server (browsing remotely a [Home] media server)
  • video doesn't need transcoding (eg mp4)

0.9-update2 (Jan 20th 2015)

  • faster video analysis for some media types. Mostly noticeable when accessing the video is slow (cloud)
  • fixed failure to load the web configuration pages on the local network if there is no Internet connection
  • fixed transcoded video downloads (initiated from Android BubbleUPnP) not working with videos including image based subtitles (VobSub)
  • fixed possibly corrupted update download if the server is shutdown during download
  • fixed server crashing if browsing proxy media server folders with huge number of items (> 10K), with some browsing clients
  • fixed browsing MediaMonkey remotely (or as a proxy media server) returning no item (workaround MediaMonkey bug)

0.9-update1 (Nov 29th 2014)

  • fixed FLAC and other Chromecast non natively supported audio formats transcoded to mp3 instead of WAV (regression)
  • fixed inability to connect to BubbleUPnP Server with older versions of Android BubbleUPnP (regression)

0.9 (Nov 14th 2014)

  • Java 7 is the minimum version required
  • all installers now install the latest version, downloaded from bubblesoftapps.com

  • BubbleUPnP Server can update itself to new versions, either automatically or manually:

    How updates are performed can be configured in the Settings > Updates web page. By default, the server will check for updates everyday at 4am and automatically restarts with the new version if an update is found. If Auto-update is disabled, updates are still downloaded but not applied. This can be done manually in the Settings > Updates web page where manually checking for update can also be done. Moreover, if an update is found, it is notified on the Status page.

  • Chromecast: added ability to force video transcode even for supported formats. Enable in Android BubbleUPnP 2.1+: Settings > Chromecast > Force video transcoding
  • Chromecast: added ability to not transcode AC-3, for AC-3 passthrough. Enable in Android BubbleUPnP 2.1+: Settings > Chromecast > AC-3 Passthrough
  • Chromecast: HLS web streams (.m3u8 links) can now be played. The stream is just remuxed, with no loss of quality. Requires Android BubbleUPnP 2.1+
  • Chromecast: fixed unsupported container just containing a supported audio track, not playing (ex: a flv with an aac audio track)

  • cloud ffprobe (used on installs on which ffprobe is not available such as NASes) now supports probing https streams (mostly cloud streams: Google Drive, DropBox, ...)
  • added -disableChromecastSupport. Use if running multiple BubbleUPnP Server instances on the same LAN (not recommended!), so Android BubbleUPnP picks up the correct instance (the one not using this option) for Chromecast transcoding
  • fixed failure to create OpenHone Sonos renderers
  • fixed making NAT loopback requests that can fail with some routers
  • fixed rare fatal startup failure if adding NAT rules via UPnP fails

  • Windows: fixed uninstaller not deleting all files
  • Ubuntu: package installs newer ffmpeg binaries supporting https streams

0.8.3 (Jul 27th 2014)

  • resize large photos to max Chromecast resolution (1080p) for faster loading. Requires Android BubbleUPnP 2.0.4. Resized images are also cached to disk for even faster subsequent loading. Also rotates photos according to EXIF orientation.
  • web server updated to Jetty v7.6.15
  • fixes in public hostname detection and setting manually the hostname (DynDNS), to avoid an invalid hostname resulting in a failed connectivity test
  • fixed possible transcoding failure with PS3 Media Server
  • fixed failure to transcode non-seekable streams (live TV, HDHomeRun) for remote Android playback
  • fixed Chromecast transcoding failing for movies with multichannel audio with more than 6 channels (DTS-ES, 6.1, 7.1) and option "Preserve multichannel audio" enabled in Android BubbleUPnP
  • fixed proxy local media server not discoverable if the original device XML contains URLBase (example: Universal Media Server)
  • increase UPnP IGD timeout from 3 to 5s on Windows and 10s on non-windows (useful for slow devices such as Rpi)
  • automatic port forwarding rules added via UPnP IGD can be disabled with -disableUPnPPortForwarding
  • automatic opening of http and https ports with iptables (local firewall) can be disabled with -disableAddIptableRules (only on non-Windows and MAC platforms)
  • On Windows, sleeping prevention when streaming can be disabled with -disablePreventWindowsSleep (in case it causes Windows to never sleep)
  • Windows installer: updated icon, updated to WinRun4J 0.4.5, updated to ffmpeg 2.2.3
  • Ubuntu PPA: run BubbleUPnP Server with the user specified in /etc/default/bubbleupnpserver (default: root)
  • display better error messages in case the connection test fails

0.8.2 (Mar 20th 2014)

  • faster Chromecast embedded subtitle extraction if multiple subtitles
  • fixed non standard h264 profile videos not playing to Chromecast such as 10 bits videos.
  • fixed some video failing to transcode for Chromecast
  • preserve multichannel audio in video Chromecast transcodes
  • if an mp3 encoder is not available in the ffmpeg build, fallback to aac (if available) for audio transcoding in videos for Chromecast
  • detect ffmpeg versions too old for Chromecast video transcoding
  • fixed public hostname auto-detection sometimes incorrect
  • remove UPnP http/https port mappings on server shutdown
  • fixed Synology package to work with DSM 5.0 firmware

0.8.1 (Mar 4th 2014)

Chromecast Transcoding
  • support seek in transcodes
  • support for embedded subtitles
  • support transcoding to a max bitrate
  • support transcoding with a specified x264 profile
  • support transcoding a specified audio and video track
  • transcode mp4 if it contains unsupported codecs (eg xvid in mp4)
  • fixed failure to transcode non-seekable streams such as live TV
  • fixed failure to transcode FLAC with embedded album art
  • fixed very high CPU usage when transcoding 1080p videos
  • do not reencode vorbis to mp3 in videos
Other fixes
  • fixed recent failure to determine the public ip address
  • fixed web configuration showing a blank page in rare case

0.8 (Feb 19th 2014)

  • Chromcast transcoding support for use with Android BubbleUPnP 1.8.0
  • Windows: prevent computer from going to sleep if currently streaming
  • fixed Rygel media server not available when connecting to BubbleUPnPS Server with Android BubbleUPnP

0.7 (Jan 3rd 2014)

  • gapless playback for OpenHome renderers if the underlying UPnP AV renderer supports gapless (disabled by default, must be enabled in the "Renderers" page for each OpenHome renderer)
  • seekable transcodes of music tracks
  • higher quality downscaling of images whenever possible (enough memory). When updating from a previous version, clear manually the "cache" directory to regenerate images
  • attempt to automatically open http and https ports with iptables on Unix systems
  • added ability to set transcoded video H264 quality (Settings > Advanced > Video encoding quality)
  • added ability to force transcoding of high-res audio to either 44.1/16 or 48/16 FLAC (Settings > Advanced > Transcode high-res audio to 44.1/16 or 48/16 FLAC)
  • added ability to set logging level (Settings > Advanced > Log to file)
  • fixed OpenHome failure to seek FLAC and WAV for some renderers
  • fixed OpenHome failure to play next cloud stream in some cases
  • fixed transcoding LPCM streams not working
  • fixed transcoding TS stream with dvb_teletext subs failing
  • other obscure fixes
  • web: updated to GWT 2.5.1 (may work better with recent versions of IE)
  • Windows installer: updated java installer to 7u45
  • Windows installer: updated bundled ffmpeg to v2.1.1

0.6.5 (May 1st 2013)

  • added support for transcoding videos to MKV instead of MPEG-TS in a number of cases. MKV is automatically used when embedded subtitles must be preserved, and for transcoded video downloads (both require Android BubbleUPnP 1.6.8+). ffmpeg must have been compiled with MKV support
  • fixed proxy media servers not discovered by Windows Media Player
  • added option -useNumericIpInStreamURL to force the server to return numeric ip stream URLs instead of a hostname. This may be required for some specific renderers to accept to stream from a media server via tethering. This setting is forced if the browsing client is a Samsung TV, which requires it
  • fixed small CPU spike every 30s on slow NASes
  • fixed stream URLs becoming invalid if browsing large number of items (more than 3000)
  • fixed Sony SA-NS310 renderer recognized as a media server instead of a renderer
  • fixed proxies not carrying the X_MS_MediaReceiverRegistrar service
  • libshine is used for mp3 transcoding if compiled in ffmpeg (useful on slow NASes as it uses way less CPU than libmp3lame)
  • added missing Standby action support for OpenHome renderers (simply stops playback)
  • fixed transcoded images rarely failing to load due to low read timeout
  • Windows installer: updated ffmpeg to 1.2, added ffprobe, updated Java installer to 7u21

0.6.4 (January 18th 2013)

  • transcoded videos now use MPEG-TS as container instead of AVI:
    • compatible with more video players on Android
    • fixes bogus video duration reported in most Android video players (duration is 00:00 as the stream is not seekable)
    • necessary change for these streams to play on a PC with foobar2000 as the client, with optional transcoding (see here), to a video player such as VLC

  • transcoded audio streams <= 64Kps use Ogg Vorbis for codec if ffmpeg supports it (compiled with libvorbis). This improves audio quality at low bitrates. Works with Android BubbleUPnP and foo_upnp.

  • new command line option -webContextPath allows to change the root of all generated URLs by the server.

    For example if webContextPath is set to /myprefix, all URLs will be of the form http://:/myprefix/... The server's web interface will be found at http://:/myprefix.
    This URL must also be used as the Server connection URL in both Android BubbleUPnP (requires v1.6.5) or foo_upnp.

    This setting allows accessing BubbleUPnP Server through advanced proxies like LemonLDAP.

  • fixed proxy devices possibly not discovered by other UPnP software, when proxies are started before (in particular, software based on Platinum UPnP: XBMC, foo_upnp and many others)
  • fixed several OpenHome'd Xbox 360 issues
  • fixed slow retrieving of the WAN IP on startup when the primary server is not responding
  • fixed server remaining stuck on crash instead of exiting process
  • fixed server returning unplayable stream URLs if Internet connectivity appears after the server is started
  • fixed "Invalid pad bytes!" error (or similar message) preventing server startup on some exotic Java platforms (Solaris in particular)
  • fixed blinking popups in web configuration with Chrome 24

0.6.3 (November 15th 2012)

  • added subtitle support (including transcoded videos)
  • fixed certain XBMC and PS3 Media Server folders not browsable (due to invalid mime-types returned by these servers)
  • fixed rare issue on UPnP device disappearance
  • fixed sometimes wrong LAN IP detected in presence of a VPN
  • OpenHome room and name can be more than 20 characters

0.6.2 (September 12th 2012)

  • Ubuntu package in PPA repository. Downloadable ffmpeg static binary for Linux
  • Synology NAS: updated package scripts. Fixed image transcoding filling temp directory
  • fixed adding port forwarding rules using UPnP IGD not working anymore
  • fixed FLAC transcoding to MP3 not working if FLAC contains embedded album art, with newer versions of ffmpeg
  • on Java 7, modifying configuration.xml restarts the server automatically to take into account the changes
  • added advanced options in configuration.xml:
    • openHomeUseEventing: if true, the OpenHome renderer uses eventing instead of polling to get renderer state
    • openHomeTimeTaskPollingIntervalMs: polling interval in ms. Use higher values with problematic renderers (Pioneer)
    • thumbnailWidth: width of generated thumbnails in pixels (default: 160). Set to 0 to disable

0.6.1 (August 19th 2012)

  • fixed CPU and memory inefficient serving of transcoded images, now generated once and cached on disk
  • fixed rare issue were a Media Server discovered during BubbleUPnP Server initialization would not return correct streaming URLs
  • fixed browsing some Media Servers (PS3 Media Server, XBMC) failing due to invalid mime-types returned
  • removed minimserver removal of ">> Hide Contents" folder
  • removed -disableThumbnailTranscoding option not needed anymore
  • if no network interface is found on startup, make 3 new attempts at 10s interval. May help on Windows if service is started before network is fully up
  • added -Xss256k JVM parameter to launch.sh and launch.bat to prevent "java.lang.OutOfMemoryError: unable to create new native thread" on some systems

0.6 (August 13th 2012)

  • new demo server of BubbleUPnP Server to test without installing, with either Android BubbleUPnP or foobar2000+foo_upnp. Contains sample music, photos, videos.
    To connect use: host: https://bubblesoftapps.com:58051, login: demo, password: demo
  • Faster web host for BubbleUPnP Server downloads (http://www.bubblesoftapps.com/bubbleupnpserver)
  • Synology NAS package available (created by winxi. Thanks!)
  • Improved Media Servers proxies:
    • add some *audio only* DLNA compatibility to non compliant Media Servers
    • add a LPCM/44.1/16 stream resource playable by any DLNA device for audio items. Example: minimserver able to play FLAC on a PS3
    • simplify streaming URLs to not contain any special URL encoded characters. Add file extension to stream URL path to make it look like a file (some rare renderers need this)
  • support for transcoding images for BubbleUPnP 1.5.0+ to optimize bandwith for mobile. This makes viewing large photos on a mobile connection practical
  • support for rotating transcoded photos if necessary based on EXIF info
  • support for recent versions of ffmpeg not working anymore to transcode video (now uses -preset <preset> instead of -fpre <preset file>). The <preset> value can be set in configuration.xml (tag x264preset, valid values: ultrafast, superfast, veryfast, faster, fast, medium, slow, slower, verylow, placebo) If the -preset option fails, -fpre will be used as a fallback to still work on older versions of ffmpeg
  • updated ffmpeg executable bundled in Windows installer
  • log files are now rotated and limited to 10Mb. reduced error spam in log for devices having issues. improved logging (device details, ffmpeg error output).
  • the server can be restarted from the web configuration in the Status page. Useful if the list of devices listed in the Media Renderer or Media Server tabs is not correct
  • fixed possible issues with device alive maintenance
  • fixed Server returning very low res album art for full covers
  • fixed transcoding images failing on some specific headless non-Windows installs
  • fixed OpenHome playlists not saved on server shutdown
  • fixed proxy Media Servers sometimes not discovered by other UPnP sofware on the LAN
  • fixed some obscure UPnP devices not discovered due to device bugs
  • fixed changing Repeat not working on OpenHome renderer in some cases
  • fixed audio not synced with video when transcoding some streams (IPTV)
  • if the server cannot initialize HTTPS, show an explicit error message in the Status page
  • added command line options -logFileMaxSize, -nologfile, -nologstdout
  • added <disableAudioVideoTranscoding> config file option to disable all audio/video transcoding even if ffmpeg is installed
  • added <disableImageTranscoding> config file option to disable all images resizing / rotating (do not disable for viewing photos over mobile!)
  • added <disableThumbnailTranscoding> config file option to disable thumbnail generation
  • added LICENSE.txt to distribution, shown by Windows Installer
  • Windows installer propose to install java 7u5 if Java 6 or 7 is not already installed (June 9th 2012)

  • OpenHome playlists are now saved (on renderer network disappearance or server shutdown) and restored for each managed renderer (on network appearance)
  • BubbleUPnP Server can now be started without Internet connection. Limited to LAN-only functionality in that case (OpenHome, Media Server proxy)
  • support playing transcoded videos from starting position for resuming playback (requires Android BubbleUPnP 1.4.3+)
  • added fallback methods to find WAN IP Address
  • fixed mute notification not working on OpenHome'd WDTV Live
  • fixed ushare Media Server not discovered (ushare bug)
  • fixed Multicast2Unicast Server not being browsable (Multicast2Unicast bug)

0.5.4 (April 15th 2012)

  • added HTTPS support for connecting. Default https 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)

0.5.3 (April 6th 2012)

  • added support for Internet music streaming on Windows using foobar2000 + foo_upnp as client. Updated documentation
  • foo_upnp 0.99.36 can now control OpenHome renderers created by BubbleUPnP Server

0.5.2 (Mar 22th 2012)

  • fixed video transcoding possibly not working on non-Windows installs
  • video transcoding can be customized with preset file libx264-current.ffpreset. The content of this file can be modified or replaced with one of the presets found in the ffpresets sub-directory to control transcoding parameters
  • fixed server sometimes not starting on boot as a Windows Service
  • fixed seeking not working in Linn Kinsky when operating an OpenHome Renderer
  • various fixes

0.5.1 (Mar 1st 2012)

  • added ability to create an OpenHome renderer from any UPnP AV Media Renderer. Provides persistent server-side playlist for playback, with shuffle and repeat support
  • added video transcoding support with Android BubbleUPnP (requires BubbleUPnP 1.3.2 or higher)
  • added "Allow to access server from the Internet" setting in the Network tab. If disabled, all remote (non LAN) connections will be denied
  • fixed issue with stopping the Windows Service
  • fixed issue with bad XML encoding in some cases, on Windows
  • updated documentation

0.4 (Feb 1st 2012)

  • fixed 100% usage of 1 CPU core when serving files
  • fixed proxy devices not browsable by some Control Points
  • fixed PS3 Media Server not browsable beyond its root folder
  • remove unresponding Media Servers from list that failed to notify their disappearance (can be disabled with discoveryMaintenanceInterval=0 in conf file)
  • increased timeouts for WMP

0.3.2 (Jan 8th 2012)

  • increased heap from 16Mb to 24Mb on Windows when running as a service (prevents possible out of memory)
  • fixed 2 rare crashes on startup
  • fixed rare crash on Media Server disappearance
  • fixed network issue possibly leading server to prompt for login/password when connecting from LAN
  • discard link-local network interfaces
  • do not discard network interfaces that do not report they are multicast capable (may prevent a few undue "Could not discover any bindable network interfaces and/or addresses" errors on startup)
  • validate public IP Address returned by whatsmyip.org on startup
  • added "troubleshooting server startup"" section to documentation

0.3 (Dec 2nd 2011)

  • fixed Media Servers possibly disappearing/reappearing after some time
  • added the ability to specify manually public hostname, for networks using dynamic DNS
  • detect and use network interface connected to the Internet instead of the first network interface found (overridable with -lanIp)
  • improved reliability of streaming and downloading (fixed tracks possibly truncated before the end)
  • updated documentation and FAQ

0.2 (Nov 24th 2011)

  • optimize album art size for faster download speed over mobile connections
  • kill ffmpeg process when client stops playback
  • reduced exception spam in log
  • various fixes
  • updated documentation


  • fixed crash preventing web server to start with some network interfaces


  • initial version
KODI Approved Sponsored Ad

Oops! This site has expired.

If you are the site owner, please renew your premium subscription or contact support.