Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_upnp (Read 1646811 times) previous topic - next topic
0 Members and 3 Guests are viewing this topic.

foo_upnp

Reply #1025
Quote
Am I correct in below short meanings?
b) Means when you play files from a SqueezeServer library, with Foobar on the local PC to the local soundcard.
Correct.
Quote
c) Means when you simply control the Squeezebox from Foobar. The files are at the SqueezeServer library, and the SqueezeBox is the player.
Correct.
Quote
I guess this is only useful if the SqueezeServer library is on a remote NAS. If the SqueezeServer library is on the local PC, then it's no point. Because then it's easier to drag local files to the Controller.
You are correct that there is no point doing this if everything is on the same PC. It applies to the case where you have a separate music server (which can be either a NAS or another PC). For example I have a micro format PC with no screen or keyboard as my music server; it runs Windows XP and has Squeeze Server and Whitebear running full time as Windows services. With this I can use any other UPnP DMC on any other PC in the house to browse the Squeeze Library and "Play To" any Squeeze player in the house or to any other PC soundcard renderer.
Quote
d) This is when you want to play files from the local PC filesystem, with the SqueezeBox. I think this is the opposite direction to b). Is it rather should be "Foobar(NativeLibrary) => Foobar(DMC + DMS) => Whitebear(DMR)" ?
Yes you are correct to say it is the opposite of b). But you are not correct to say that Foobar's DMC is browsing the native Foobar native library; this is actually part of Foobar's normal UI.

foo_upnp

Reply #1026
According to the manufacturer http://forums.slimdevices.com/showthread.php?t=83320 the music stream formats supported by Squeeze Server are:

MP3 (audio/mpeg)
FLAC (audio/x-flac)
AAC/AACplus ADTS (audio/aac, audio/aacp)
Vorbis (audio/x-ogg)
WMA (audio/x-ms-wma)

{ Apparently, surprisingly, not including LPCM or WAV }

So the conclusion is that you need to make settings in Foo_UpnP so it transcodes all other files to one of the above formats.

If you have lossless files in FLAC, you are probably fine without transcoding. But due to the lack of LPCM support, other unsupported lossles formats (e.g. ALAC) could only be downsampled to MP3 (becuase I don't think that Foo_UPnp can transcode ALAC to FLAC on the fly...)


foo_upnp

Reply #1027
Is there any news on "Remote library changes notifications to the client are not implemented."?

I have foobar and foo_upnp on a server under my desk, I have to remember to restart foobar after uploading any music

Thanks

foo_upnp

Reply #1028
You have a less disruptive option.

Once the songs have been added to Media Library, you only have to stop and start the Media Server under Server > Basic Settings.

I download several podcasts every day and wanted foobar ready to go each morning.  I use foo_scheduler to shut down foobar at 3AM.  I restart foobar using Task Scheduler in Windows to run a type of batch file known as a cmd file.

I want to start foobar in High Priority mode. Create a text file with the following line:

start/high C:\foobar2000\foobar2000.exe

Save the text file as Start Foobar.cmd

Set up Task Scheduler to execute the cmd file.




Is there any news on "Remote library changes notifications to the client are not implemented."?

I have foobar and foo_upnp on a server under my desk, I have to remember to restart foobar after uploading any music

Thanks

foo_upnp

Reply #1029
Thanks Wacky, forgot about foo_scheduler, would be nice if foo_upnp saw changes straight away, but this will do in the meantime

foo_upnp

Reply #1030
MP3 (audio/mpeg)
FLAC (audio/x-flac)
AAC/AACplus ADTS (audio/aac, audio/aacp)
Vorbis (audio/x-ogg)
WMA (audio/x-ms-wma)

Hi Bubbleguum,

I have been exploring this further, and I am pretty much certain that foo_upnp is not at all compliant to the Upnp/DLNA specifications. I think there are two problems:

1) You are using your Preferences | Streaming Profiles to determine what music formats shall be transcoded to what when you serve a file to a UPnP renderer. Whereas, you should be calling GetProtocolInfo and looking at the returned SinkProtocolInfo list, to determine which music formats the renderer supports.

2) When you serve the music to a renderer, you are setting the Content-Type = "application/octet-stream" rather than the proper mime type for that music format e.g. audio/mpeg

For example with my renderer, even though I set the Streaming Profile to always transcode to MP3 (say), in fact foo_upnp is transcoding some MP3 files to WAV, even though this format is not in my renderer's SinkProtocolInfo list as returned by GetProtocolInfo. And the Content-Type = "application/octet-stream" instead of audio/x-wav. Both these things are wrong.

foo_upnp

Reply #1031
Has anyone gotten the "Internet Access" functionality to work?

I can load up the webpage on my browser and I get a quicktime player plugin, but when I hit play, the progress bar lasts about 3 seconds from beginning to end and there is no sound.

Likewise, when trying to add that address in PlugPlayer (iPhone) it says it cannot find an XML file.  I'm not sure what I'm missing there.

 

foo_upnp

Reply #1032
According to the manufacturer http://forums.slimdevices.com/showthread.php?t=83320 the music stream formats supported by Squeeze Server are:

MP3 (audio/mpeg)
FLAC (audio/x-flac)
AAC/AACplus ADTS (audio/aac, audio/aacp)
Vorbis (audio/x-ogg)
WMA (audio/x-ms-wma)

{ Apparently, surprisingly, not including LPCM or WAV }

So the conclusion is that you need to make settings in Foo_UpnP so it transcodes all other files to one of the above formats.

If you have lossless files in FLAC, you are probably fine without transcoding. But due to the lack of LPCM support, other unsupported lossles formats (e.g. ALAC) could only be downsampled to MP3 (becuase I don't think that Foo_UPnp can transcode ALAC to FLAC on the fly...)

Thanks a lot for letting us this know!

Meanwhile, I also discovered some new features in foo_upnp:
- The default controller can be set in advance, so one step can be spared.
- For the Playback Stream Capture, we need to set the codec to MP3, as neither WAV nor LPCM is supported by SqueezeServer (as Andrew said above).
- Also with right click menu in Foobar playlist, the songs can be sent to the Controller playlist.

So based on all current knowledge so far, I'm trying to compose a Mini-Guide here for those who never heard about using Foobar and Squeezebox together.

There is need 2 programs additional to the SqueezeBox, SqueezeBox Server, and Foobar:
- Whitebear Media Server
- foo_upnp plugin (this thread) under Foobar.

The Whitebear Media Server provides a UPnP interface to SqueezeBox Server. Minimum 2.0.1.1051 version required. It just need to be installed, and run. No need for any separate setting in Whitebear Media Server. Of course the SqueezeBox Server should be run as normally.

The foo_upnp provides a UPnP interface for Foobar. This should be installed to the plugins. This needs some settings to tweak, but it's easy, the settings I'll list in end of the guide.

Now both Squeezebox Server and Foobar can communicate each other via UPnP.

I. If the Foobar is the player

In this case, we want to play files from a SqueezeServer library, with Foobar on the local PC to the local soundcard, in the usual mode as normally. In this case the Squeezebox Server/Whitebear streams the music to Foobar. It can be described as this:
Whitebear(DMS) => Foobar(Browser + DMC) => Foobar(NativePlayer)

The steps are very simple:
In Foobar View menu -> "UPnP Browser". A small window comes up, here soon appears "Squeezebox library (by Whitebear)" server. Going into this, the music can selected the same way as it we were browsing in the real Squeezebox. Selecting a folder, a "UPnP Browser Selection" playlist is opening, containing the selected music. This you need to play as normal in Foobar.


II. If we want to use Squeezebox as a sound card

This case is the opposite direction of the previous. In this case, we want to play files with Foobar, but we don't want to use the soundcard of the local PC, instead, we want that the Squeezebox is playing the music. In other words, we want to use the Squeezebox as a soundcard. In this case, the Foobar is streaming the music to the Squeezebox. It can be described as this:
Foobar(NativeLibrary) => Foobar(Browser + DMS) => Whitebear(DMR)

The steps are the following in this case:
1. First you need to open the "UPnP Controller" in Foobar, in View menu. The "UPnP Controller" window comes up. At the same time, it also opens a "UPnP Controller Playback Queue" playlist.
2. Then you select "Squeezebox (by Whitebear)" in the UPnP Controller. At this point it resets the "UPnP Controller Playback Queue" so pointless to put files there before. Do not close this "UPnP Controller" window.
3. Now you just need to drag and drop files from the local disk from the filemanager to this "UPnP Controller" window. This also put these files to the "UPnP Controller Playback Queue" and starts to play the first file automatically.
4. Now you can control the playing with the buttons included on the Controller window. Or just select the file from this playlist to play with double click so it plays in Squeezebox.
5. Important! Do not close the "UPnP Controller" window. If you close it, it loses the control functionality with the Squeezebox!

Note 1:
The step 2 can be spared! If you check the "..." button at the right of the "Squeezebox (by Whitebear)" dropdown list, in that menu, the "Enable on startup" can be selected!, So then we don't need to choose Squeezebox always. The UPnP Controller will automatically select it when starting.

Note 2:
In step 3, the playing (sending music to the Squeezebox) can also be the following methods:
- You can drag and drop files not only from the local filesystem to the "UPnP Controller Playback Queue", but also from the "UPnP Browser Selection" playlist. This means, when the files are at the Squeezebox Server library (can be on remote place) and the player is also the Squeezebox, but it will be controlled by the Foobar. This can be describer in this way:
Whitebear(DMS) => Foobar(Browser + DMC) => Whitebear(DMR)

- If you right click on any of the Foobar's playlist, and if the UPnP Controller window is opened, there is a menu "UPnP Controller -> Play on Squeezebox" or  "Enqueue on Squeezebox" which is sending the files to the "UPnP Controller Playback Queue" playlist.

Note 3:
At the UPnP Controller window, the second Play button, which has a "c" letter, it is the "Play foobar2000 Playback Stream Capture" function. This means, anything is played by Foobar, that can be sent to the Squeezebox, encoded with the presetted codec. Currently only MP3 can be used for this codec. This should only be used if the playing file format is not any of these: FLAC, MP3, AAC, WMA, OGG. This feature resamples the sound so it is not sent bit-perfect to Squeezebox.

A similar function to "Play foobar2000 Playback Stream Capture" is the "wavin" plugin for the SqueezeServer. But this is not an elegant solution. It has a lot delay, the music is resampled. This is not worth to use. The best way to send the files as a stream without transcoding.

Needed settings in the Foobar foo_upnp

These are needed for the case II.

First of all, it's worth to know, as andrewfg figured it out, SqueezeBox Server can handle the following codecs directly, when it receives the stream: FLAC, MP3, WMA, AAC, OGG. Interestingly, WAV and LPCM are not handled. As a result, the following should be set:
a ) Foobar -> Preferences -> Tools -> UPnP -> Server -> Streaming Profiles : here it's worth the create a new profile. Use profile when User-Agent contain "Squeezebox". Here enter Squeezebox without the double quotes. Then, in this profile, set the followings:
b ) Decoding to PCM: Decode Never to WAV, except m4a. It's important that after "Except", there should NOT be FLAC, MP3, WMA, AAC, OGG! It's because SqueezeServer handle these formats directly, and these should not be decoded into WAV! If transcoded into WAV, SqueezeServer will not play it.
c ) Playback Stream Capture: Codec: MP3. Here we need to set MP3, because WAV and LPCM are accepted by Squeezebox Server. This only need to be set if you use the Playback Stream Capture feature.
(Renderer Capabilites: Can decode HTTP and MMS streams directly, this seems doesn't matter.)

That would be all.
I hope it is useful for others.




foo_upnp

Reply #1035
Thanks for the write-up - useful.

foo_upnp

Reply #1036
I have been exploring this further, and I am pretty much certain that foo_upnp is not at all compliant to the Upnp/DLNA specifications. I think there are two problems:

1) You are using your Preferences | Streaming Profiles to determine what music formats shall be transcoded to what when you serve a file to a UPnP renderer. Whereas,
you should be calling GetProtocolInfo and looking at the returned SinkProtocolInfo list, to determine which music formats the renderer supports.


Maybe. but protocolInfo matching is limited and doesn't offer great flexibility. For example it is not appropriate for Internet streaming were transcoding to mp3 might be preferred.  Also for example you cannot tell if ALAC is supported from protocol Info as mime-type audio/m4a is not sufficient. So I choose to let the users to have more control over how files are streamed instead of making automatic "Intelligent" decisions that will be inapropriate in some cases. Add to that the mime-type mess and the fact that some renderers might have buggy/incomplete protocolInfo...Or for example the PS3 that do braindead things when streamed anything other than LPCM (if you stream mp3 to it, it will do 6-8 http requests adding 3 second gaps between tracks...). There are plenty of corner cases like this where it is useful to bypass automatic matching. Streaming profiles are far from perfect and if I was starting over I would do a few things differently.

Quote
2) When you serve the music to a renderer, you are setting the Content-Type = "application/octet-stream" rather than the proper mime type for that music format e.g. audio/mpeg

For example with my renderer, even though I set the Streaming Profile to always transcode to MP3 (say), in fact foo_upnp is transcoding some MP3 files to WAV, even though this format is not in my renderer's SinkProtocolInfo list as returned by GetProtocolInfo. And the Content-Type = "application/octet-stream" instead of audio/x-wav. Both these things are wrong.


I cannot reproduce Content-Type = "application/octet-stream". Can you give me the exact profile settings used ?  Transcoding to mp3 always set Content-Type to  audio/mpeg. And as I don't use SinkProtocolInfo at all (as streaming profile conf is used instead) it's possible non playable formats are sent to the renderer.
Also I suspect another profile than the one you configured might be used. You can easily check which profile is used by spotting messages like this in the console:

foo_upnp: opened 'file://blah\08 - August.flac' for streaming, profile: foobar2000, MP3 / CBR 320 kbps, replaygain: off, DSP chain: off

foo_upnp

Reply #1037
Nice guide!

The steps are very simple:
In Foobar View menu -> "UPnP Browser". A small window comes up, here soon appears "Squeezebox library (by Whitebear)" server.


You can also add the window to your DUI or CUI layout. You must first close it, then enter layout editing mode (View>Layout>Layout editing mode), and then add the
"UPnP Browser" UI element. You can do that for the UPnP Controller as well.

Quote
In step 3, the playing (sending music to the Squeezebox) can also be the following methods:
- You can drag and drop files not only from the local filesystem to the "UPnP Controller Playback Queue", but also from the "UPnP Browser Selection" playlist.


You can drag and drop files to the Controller from any playlist. You can also  drag a node from the UPnP Browser (an album for example) as well as the Album List.
And if you hold SHIFT while d'n'd, it will enqueue instead of immediate play.


Quote
At the UPnP Controller window, the second Play button, which has a "c" letter, it is the "Play foobar2000 Playback Stream Capture" function. This means, anything is played by Foobar, that can be sent to the Squeezebox, encoded with the presetted codec. Currently only MP3 can be used for this codec. This should only be used if the playing file format is not any of these: FLAC, MP3, AAC, WMA, OGG. This feature resamples the sound so it is not sent bit-perfect to Squeezebox.


There's resampling only if you play a file whose samplerate do not match the configured  Playback Stream Capture samplerate in the profile.


foo_upnp

Reply #1038
Hi!

I have the same problem as another user some pages before:

I want to use foo_upnp to serve my library to my Samsung LE40B650 TV.
Streaming with Win 7 and/or Samsung share manager works just fine.
The TV can "see" foobar2000 but is not able to show me any contents.
When I select for example "playlists" the TV always prompts me the same message: "Unable to handle request, mediaplayer now returns to the main screen". Also when I use UPnP controler, his color is grey but I can control the volume of the TV( if I play a file from Win7).

I tried 0.99.28  but nothing happens? Any ideas?
(Also when I drag n drop a file on the controler ,on only 0.99.28 it says: "SetAVTransportURI Error:Resourse not found (716)"


same here with samsung ue40c7700  any solutions found? glad i'm not the only one, as i'm new to the upnp streaming-stuff and wasnt quite sure if i missed something!

foo_upnp

Reply #1039
Maybe. but protocolInfo matching is limited and doesn't offer great flexibility. For example it is not appropriate for Internet streaming were transcoding to mp3 might be preferred.  Also for example you cannot tell if ALAC is supported from protocol Info as mime-type audio/m4a is not sufficient. So I choose to let the users to have more control over how files are streamed instead of making automatic "Intelligent" decisions that will be inapropriate in some cases. Add to that the mime-type mess and the fact that some renderers might have buggy/incomplete protocolInfo...Or for example the PS3 that do braindead things when streamed anything other than LPCM (if you stream mp3 to it, it will do 6-8 http requests adding 3 second gaps between tracks...). There are plenty of corner cases like this where it is useful to bypass automatic matching. Streaming profiles are far from perfect and if I was starting over I would do a few things differently.
Well I think you should try to respect the UPnP specification. You complain about others not respecting it, and then you commit the same crime yourself. If you feel it is really necessary to implement special profiles, then the default "null" profile should be to respect SinkProtocolInfo, and then any additional added profiles could override this default behaviour.

foo_upnp

Reply #1040
I cannot reproduce Content-Type = "application/octet-stream". Can you give me the exact profile settings used ?  Transcoding to mp3 always set Content-Type to  audio/mpeg. And as I don't use SinkProtocolInfo at all (as streaming profile conf is used instead) it's possible non playable formats are sent to the renderer.
Also I suspect another profile than the one you configured might be used. You can easily check which profile is used by spotting messages like this in the console:
foo_upnp: opened 'file://blah\08 - August.flac' for streaming, profile: foobar2000, MP3 / CBR 320 kbps, replaygain: off, DSP chain: off
I saw application/octet-stream when fobbar_upnp was trying to send lpcm to the client. And it should use audio/L16 in this case. But if you need more information I will dig into it deeper and send you more detailed settings information.


foo_upnp

Reply #1042
sorry for my - probably simple for you - question. I was searching google and here but topic is complex for me
I would like to stream music (mp3,flac) from PC, preferably foobar, preferably in linux:P to my amplifier over ethernet, usb cable or anyhow excluding sound card
the goal is to forget about the sound card, not to worry about its low-quality decoding et cetera and let all this work to the hi-fi amplifier to get good sound quality
what do I need?
Is it only above plugin and any amplifier with a network socket?
do I mistake sth?

thanx so much

foo_upnp

Reply #1043
I recently purchased a Sony BDP-S370 blu-ray player, which I note has DLNA support, so here I am.

Windows Media Player streaming works fine for mp3, but I'd rather use foobar2000.

I can browse to it, scrolling through lists of artists/albums/songs is really fast.  I just cannot play back any songs (which again play via WMP just fine)

Sony thinks the file is corrupt or unplayable.

UPnP Server settings are all unmodified from defaults. 

Naturally I'll want to tackle flac, shn, aiff once I've got mp3 working, but first things first.

I can excerpt the server logs if that helps.  Thanks!


foo_upnp

Reply #1045
Naturally I'll want to tackle flac, shn, aiff once I've got mp3 working, but first things first.
The Sony will probably only support MP3 and LPCM (L16) formats.


Directly, but I thought I could manage more through transcoding?  At any rate, I'm at a loss for what could stop it from playing mp3.  I can stream the same file to WMP or Chrome through foo_upnp, I can stream the same file to the Sony via WMP.

foo_upnp

Reply #1046
I'm at a loss for what could stop it from playing mp3.  I can stream the same file to WMP or Chrome through foo_upnp, I can stream the same file to the Sony via WMP.
You need to be more precise about where the problem occurs. Are you 1) using FB2k to browse and select the music and commanding it to "Play To" the Sony? Or are you using the Sony's on screen UI to browse and select the music and commanding it to "Play" (to itself)?

foo_upnp

Reply #1047
Hello everyone,

First, thank you for this wonderful plugin. I'm using it to control my Popcorn Hour C200.

Though, I'v a couple of problems that I would like to solve in order to have a perfect experience.

First, I managed to push media to my Popcorn by populating the Upnp Controller playback queue. OK

Problems i'm facing :
1. The feature "Playback stream capture" is not working. It is annoying because that's the most interesting part of the plugin that I would like to use. any idea on how to configure foo_upnp to make it work. Is there any other popcorn (C200) users on this forum who made it work.
2. I cannot see any information on my player about the artist/album/tag Info. blank field are displayed. I let the default configuration string on the format option.
3. Is there a way to have the upnp controller window embedded in the player instead having a separate window.

Thank you in advance for your support


foo_upnp

Reply #1048
I'm at a loss for what could stop it from playing mp3.  I can stream the same file to WMP or Chrome through foo_upnp, I can stream the same file to the Sony via WMP.
You need to be more precise about where the problem occurs. Are you 1) using FB2k to browse and select the music and commanding it to "Play To" the Sony? Or are you using the Sony's on screen UI to browse and select the music and commanding it to "Play" (to itself)?


FB2K running upstairs with upnp plugin.  Sony UI in basement to browse to mp3 files via Artist/Album to play through home theater.
I can browse really fast.  Songs show up as MP3.  When I change settings to always transcode to LPCM the songs show up as LPCM.
In either case the files are "corrupt or format not supported"
I can stream mp3 from FB2K to WMP, to a web browser. 
I can stream from WMP to the same Sony no problem, but it doesn't honor track # tags, browsing is much slower.

foo_upnp

Reply #1049
FB2K running upstairs with upnp plugin.  Sony UI in basement to browse to mp3 files via Artist/Album to play through home theater.
I can browse really fast.  Songs show up as MP3.  When I change settings to always transcode to LPCM the songs show up as LPCM.
In either case the files are "corrupt or format not supported"
I can stream mp3 from FB2K to WMP, to a web browser. 
I can stream from WMP to the same Sony no problem, but it doesn't honor track # tags, browsing is much slower.


Never mind...  I picked a new port and all is well.  Silly me, I thought that disabling sharing via WMP and shutting down WMP was enough to free up the port.