Bubbleupnp server для windows

Bubbleupnp server для windows

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, ideally wired to the network.

If you plan to transcode videos, you will need a powerful CPU or a supported GPU for hardware accelerated transcoding. A fast PC is recommended for pure software transcoding, 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.

Transcoding requires working ffmpeg/ffprobe binaries. Most BubbleUPnP Server installers include such binaries.

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]#cc_transcoding_outside).

When BubbleUPnP Server is detected, ‘More > gear icon > Chromecast > Current transcoding method’ will state so and display BubbleUPnP Server’s ip address.

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

GPU hardware accelerated video transcoding #

BubbleUPnP Server can use your GPU to accelerate video transcoding with the following benefits:

  • much more efficient than pure software transcoding. Keep the CPU usage much lower, reducing noise (fans) in demanding scenarios and keeping the machine usable for other tasks
  • ability to transcode on a machine with a weak CPU (or even a powerful CPU but in a very CPU intensive scenario) but having a supported GPU
  • higher resolution transcodes with a target up to 1080p @60 fps for Chromecast Ultra and @30 fps for other models (vs 720p for software transcoding)

OS and GPU requirements

  • Windows: modern NVIDIA cards starting from Kepler-based GeForce 600 Series, Intel CPU (since Sandy Bridge) or integrated Intel GPU supporting Quick Sync Video (QSV)
  • Linux: same as Windows. VA-API is also supported. See Linux section below for addtional requirements and setup instructions
  • macOS 10.8 or later: integrated Intel graphics supporting QSV (tested). Supposedly working (untested): AMD GPU

ffmpeg requirement

A recent version of ffmpeg (v4+ recommended) compiled with proper GPU and hardware acceleration support is required. The ffmpeg binaries installed with most BubbleUPnP Server installers and Docker images fit this requirement.

You need at least version 378.13 of the NVIDIA binary drivers.

You can check your current driver version with:

If you have installed the NVIDIA binary drivers from your distro repository (Ubuntu notably) they may be older and will not work with ffmpeg. In that case you will have to manually download and install NVIDIA drivers v378.13 or higher from their site, following carefully installation instructions.

Читайте также:  Windows 10 lite x64 ssd

Intel QSV (Linux):

You need to have the proper Intel drivers installed for your distro as well as the Kernel supporting QSV.

You need the proper VA-API support package installed for your dsitro. Check that VA-API is working with the vainfo command-line utility

Operation

BubbleUPnP Server will automatically attempts GPU transcoding if the requirements are met. Otherwise, or if GPU transcoding fails for whatever reason and nothing was transcoded yet, BubbleUPnP Server will fallback to software transcoding.

To check if your setup is suitable for GPU transcoding, you can perform a transcoding test in ‘Settings > Chromecast Transcoding’.

You can disable GPU transcoding entirely by unchecking ‘Settings > Chromecast Transcoding > Use GPU hardware accelerated transcoding’. It is recommended to leave it enabled unless you really prefer software transcoding, or to perform comparisons between software and GPU transcoding.

BubbleUPnP Server can perform either a full (decode+encode) or partial (encode only) GPU transcoding, depending on the input video and GPU features. GPU decoding support is as follow:

  • NVIDIA: depends on GPU. Refer to the NVIDIA GPU HW-Acceleration Support Table
  • Intel QSV: depends on CPU/GPU. See Wikipedia article
  • macOS: h264 only

All GPU encoding is done using h264 which is universally supported.

Only one GPU transcoding task is possible at the time. If BubbleUPnP Server must handle a new transcode while a GPU transcode is already active, it will fallback to software transcoding for that new transcode.

How can I determine GPU support for my setup ?

Start the BubbleUPnP Server web config, go into ‘Settings > Chromecast Transcoding’ and tap the ‘Peform GPU transcoding test’ button. After a few seconds (up to a minute), it will display if GPU transcoding is supported and if the case which GPU is used and its support for decoding various codecs.

How can I tell if GPU transcoding is used ?

1 Play with Android BubbleUPnP a video to your Chromecast that you know requires transcoding.
2 While the video is playing, In the BubbleUPnP Server web config, perform the GPU transcode test in ‘Settings > Chromecast Transcoding’. 3 => It should fail doing the test and report “GPU is currently in use”.

How can I measure the gain of GPU transcoding (vs software transcoding) on CPU usage ?

Follow these instructions to first check CPU usage with pure software transcoding, then with GPU transcoding:

  1. start the BubbleUPnP Server web config and disable GPU transcoding by unchecking ‘Settings > Chromecast Transcoding > Use GPU hardware accelerated transcoding’
  2. start Android BubbleUPnP
  3. in Android BubbleUPnP settings, verify that BubbleUPnP Server is recognized for transcoding in ‘Settings > Chromecast’
  4. play a video that you know requires (video) transcoding to your Chromecast, or temporary force transcoding in ‘Settings > Chromecast > Force transcode’ (do not forget to disable it later!)
  5. On the machine that runs BubbleUPnP Server, monitor the ffmpeg process CPU usage (as ffmpeg performs pure software transcoding)
  6. Now, in BubbleUPnP Server web config enable ‘Settings > Chromecast Transcoding > Use GPU hardware accelerated transcoding’. If using Android BubbleUPnP 2.8.10+, verify that ‘Settings > Chromecast > Use GPU transcoding’ is enabled
  7. play the same video and monitor the ffmpeg process CPU usage (as ffmpeg may now use GPU transcoding if possible)
  8. => if GPU transcoding is effective, CPU usage should be much lower in the second play. Note that if partial (encode only) GPU transcoding is performed, ffmpeg CPU usage can still be high. When full (decode+encode) GPU transcoding is in effect, CPU usage should be very low

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.

Читайте также:  Windows command close process

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

Some or all 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

In Android BubbleUPnP, when I play a video to Chromecast I get an error ‘failed to extract video info. Audio / Video track selection will not be possible’ #

This error happens if BubbleUPnP Server cannot analyze the video for some reason.

On Synology NASes, this error can happen if its UPnP/DLNA media server is set to transcode video. You can easily disable this in the Synology web interface > Menu (top-left) > Media Server > DMA Compatiblity > Enable video transcoding (make sure this is not ticked).

Bubbleupnp server для windows

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

Requirements #

General

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

Video transcoding

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

Features overview #

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

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

Chromecast transcoding #

BubbleUPnP Server can:

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

Internet streaming and downloading #

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

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

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

Internet UPnP tethering #

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

To illustrate this functionality consider this scenario:

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

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

LAN Media Server proxying #

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

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

Persistent and shared playlist for UPnP AV renderers (OpenHome) #

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

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

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

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

Оцените статью