• 1(current)
  • 2
  • 3
  • 4
  • 5
  • 15
[RELEASE] Multiroom Audio & Video Streaming Plugin (Syncronized)
#1
Thumbs Up 
Updated: 2/1/2013

Hello everyone. It's been awhile but I am happy to let everyone know that I am in the process of re-writing the plugin to take advantage of the new features in XBMC Frodo. Specifically regarding the Airplay feature/functionality and new sound/player engine enhancements.

More to come.... Nod




Depredicated
Introducing a Multiroom "Syncronized "Audio & Video Streaming Plugin

plugin.program.multiroom addon (maintenance release) v1.1.3 - for XBMC 10.0 and above RELEASED!!!
NEWS FLASH!!! Now available via the Add-ons Feature!!!

NEWS FLASH!!! Installation Documentation!!!
I have put together specific step by step documentation that outlines the steps to a successful implementation and some underlying questions and to ultimately clear up any confusion.Eek

Documentation For Windows based users:
http://xbmc-multiroom-audio-plugin.googl...v1.1.1.pdf

Documentation For Linux based users:
http://xbmc-multiroom-audio-plugin.googl...v1.1.1.pdf

Author: VortexRotor (teshephe)

The release of Multiroom v1.1.3 plugin includes these New Features:

- Logo/Icon Changed


Multiroomaudio / Video Plugin Info

The purpose of this plugin is to facilitate the implementation and framework for a True Multi-Room "Syncronized Audio"
AND Video solution for XBMC. This is why I have chosen VLC as the program of choice for this effort. Not only does it support
just about all audio and video formats very well but it provides the inherent capability to provide client/server streaming
syncronization over the local network which means that no more "out-of-phase" audio issues for those of you that have more
than one XBMC box in your home.

All comments, suggestions, help are very welcome.

This plugin requires the following:

- XBMC 10.0 (Dharma) or higher
VLC 1.1.4 !!!!!! (gives us clock sync if your wondering why)
For windows users: Powershell 2.0 is required (helps keep those pesky DOS windows out of the mix) if someone has a better idea I am open. :Big Grin:

INSTALLATION: (PLEASE READ the README) :Big Grin:

For Dharma BETA and above:

check out the readme for more info.

Enjoy!

All comments, suggestions, help are very welcome.
Enjoy OpenSource! :nod:
MY SETUP: XBMC 12 Frodo RC3, Multiple Asus EB1501's throughout the Home for XBMC based STB's
Reply
#2
Wow! Thanks for your work on this! I have been looking for something like this for years. I'm really surprised that there hasn't been more interest until now.

Just a couple of questions:
1. Will it work on current svn versions of xbmc with the new plugin system?

2. Just to clarify how this is supposed to work. You need to fire up your media in vlc then play the stream on other machines with your xbmc plugin?

Once again, thanks for your work,

Phil
Reply
#3
Dude,

Saw this last week, forgot to reply.

Looks very interesting... exactly what I was looking for, but I don't use any Linux any more at the moment.

I'm contemplating going back, and when I will, I will be testing this for sure!

Thanks for your work so far.
Joy In Repitition
Reply
#4
pssturges Wrote:Wow! Thanks for your work on this! I have been looking for something like this for years. I'm really surprised that there hasn't been more interest until now.

Phil,

Here are my answers... Big Grin

Just a couple of questions:
1. Will it work on current svn versions of xbmc with the new plugin system?

Yes. This has bee tested with the latest svn's. (Linux)

2. Just to clarify how this is supposed to work. You need to fire up your media in vlc then play the stream on other machines with your xbmc plugin?

Nope... (But you could do that and it would work) so you got it somewhat right. You will load this plugin on another XBMC as well and lets call that one the MASTER, setup the plugin as directed but set the instance up as Master rather than slave. Once it is setup, anything that you play on that XBMC machine will be streamed to the clients automatically. This will enable you to control whats playing and volume throughout the whole house (or clients) from one XBMC (the master).

Now you can install and setup on another XBMC machine, but this time choose SLAVE when setting it up.


Check out the readme included (it's pretty straight forward) but let me know if you have a problem.

And as always, input and recommendations are welcome!

Regards,
Enjoy OpenSource! :nod:
MY SETUP: XBMC 12 Frodo RC3, Multiple Asus EB1501's throughout the Home for XBMC based STB's
Reply
#5
Thanks, sounds awesome. I am however, having some trouble getting it installed. I have installed the required packages and extracted the contents of the zip file to ~/.xbmc/plugins/programs. It doesn't seem to show up in xbmc under 'Programs'. I'm sure I'm missing something obvious. Does vlc need to be running or be configured in a particular way?

Oh, and I'm on r33078
Thanks again,
Phil
Reply
#6
BTW... I just released a new version which supports video too! Big Grin

Ok... after further research on your build... the current release plugin will not work with the "NEW" add-on system that is in place with Dharma.

I am testing a new build with the BETA release and hopefully should have something out specific for that release by the end of the week. ;-)

As far as the VLC portion of your question... no. :-)
Enjoy OpenSource! :nod:
MY SETUP: XBMC 12 Frodo RC3, Multiple Asus EB1501's throughout the Home for XBMC based STB's
Reply
#7
Ahuh! No worries. I'll look forward to testing it when ready.

Thanks again for your work

Phil
Reply
#8
I love the idea and well done for taking on this challenge, but I have a few questions/suggestions/rambles.

My understanding of this plugin, the master streams the media (audio or video) to every slave client you have set up. People with more than 1 XBMC in the house seem to be moving towards the idea of a MySQL database on a central media server (or one of the XBMC Machines).

So using your plugin with a central database would you end up with the media being streamed from the Server (or the XBMC Machine with the MySQL database) to the Plugin Master and then from the Master to the Clients? Now that’s fine if the Plugin Master is also the machine than holds the MySQL database, but if the Database is on a separate machine to the Plugin Master you will end up ‘double streaming’ (I think, if I understand correctly).

In that situation (Central Database and a series of XBMC clients), could you set it up so rather than the Master streaming to the Client, the Master simply tells which file on the MySQL database to play (and when)? This would reduce the network traffic and load on the Plugin Master.

Also, how (im)possible would it be to make a windows and mac version? I am sure this is something nearly everyone with more than 1 XBMC clients in their house would want.

I hope this doesn’t sound too negative, I am just thinking out loud
Reply
#9
Thumbs Up 
pssturges Wrote:Ahuh! No worries. I'll look forward to testing it when ready.

Thanks again for your work

Phil

Nerd After basically rewriting the plugin into the wee hours last night... I have uploaded a version for XBMC 10.0 with the add-ons support.

http://xbmc-multiroom-audio-plugin.googl...v1.0.4.zip

Check it out and give me some feedback
Enjoy OpenSource! :nod:
MY SETUP: XBMC 12 Frodo RC3, Multiple Asus EB1501's throughout the Home for XBMC based STB's
Reply
#10
Thumbs Up 
Targettio Wrote:I love the idea and well done for taking on this challenge, but I have a few questions/suggestions/rambles.

My understanding of this plugin, the master streams the media (audio or video) to every slave client you have set up. People with more than 1 XBMC in the house seem to be moving towards the idea of a MySQL database on a central media server (or one of the XBMC Machines).

So using your plugin with a central database would you end up with the media being streamed from the Server (or the XBMC Machine with the MySQL database) to the Plugin Master and then from the Master to the Clients? Now that’s fine if the Plugin Master is also the machine than holds the MySQL database, but if the Database is on a separate machine to the Plugin Master you will end up ‘double streaming’ (I think, if I understand correctly).

In that situation (Central Database and a series of XBMC clients), could you set it up so rather than the Master streaming to the Client, the Master simply tells which file on the MySQL database to play (and when)? This would reduce the network traffic and load on the Plugin Master.

Also, how (im)possible would it be to make a windows and mac version? I am sure this is something nearly everyone with more than 1 XBMC clients in their house would want.

I hope this doesn’t sound too negative, I am just thinking out loud

No worries, the comments are more than welcome... Big Grin

Now, to clarify your first point... the plugin does not stream your media by default and only if you tell it too when you utilize the "PLAY Using" in the context menu. The concept is to give the ability to stream whatever is playing from whatever room you happen to be in to the rest of the house and flexibility so that any given XBMC instance can be a master or a client. (Note: if you are using the plugin on multiple XBMC's in your home you should configure each box to have a unique IP/Multicast address in the Streaming Server settings of the plugin).

Now the idea of utilizing MySQL is a great idea and I have pondered it as most Commercial Multiroom solutions have only one Master in the system and all stream and control are handled by that box. Again, this plugin has far more flexibility and thus options on how you set it up based on your needs.

As far as multi-OS support, the code is there for the most part but some testing and re-engineering of the scripts outside of python that are generated need to be addressed and this would be solely based on acceptable or equivalent tools that replicate the functionality of xdotool and wmctrl for Win32 and MacOS but my goal here is to ultimately integrate the vlc.py module so that reliance on any other tools outside of vlc will be a thing of the past.

(side note regarding vlc.py - currently the module available causes segmentationfaults when trying to create a virtual instance of the vlc player so if anyone has experience specifically with this module you help would be greatly appreciated as there is very little info on the web) Thanks

Regards,
Enjoy OpenSource! :nod:
MY SETUP: XBMC 12 Frodo RC3, Multiple Asus EB1501's throughout the Home for XBMC based STB's
Reply
#11
Thumbs Up 
pssturges Wrote:Ahuh! No worries. I'll look forward to testing it when ready.

Thanks again for your work

Phil

Hey Phil... and everyone else that might have downloaded the initial Dharma version of the plugin (v1.0.2)

There was a problem with v1.0.2.Oo I fixed it and regression tested it so here is the new version: http://xbmc-multiroom-audio-plugin.googl...v1.0.4.zip Big Grin

I need more coffee!!!!
Enjoy OpenSource! :nod:
MY SETUP: XBMC 12 Frodo RC3, Multiple Asus EB1501's throughout the Home for XBMC based STB's
Reply
#12
Thanks! I did have a bit of a play with 1.0.2 with mixed results. I think most of the problems were with my configuration. I will try 1.0.4 over the next couple of days and see if I do any better. I'll let you know how I go.

Thanks again for your fantastic work.
Phil
Reply
#13
Big Grin 
pssturges Wrote:Thanks! I did have a bit of a play with 1.0.2 with mixed results. I think most of the problems were with my configuration. I will try 1.0.4 over the next couple of days and see if I do any better. I'll let you know how I go.

Thanks again for your fantastic work.
Phil

Ok. Uninstall 1.0.2 first as that ver was busted. Eek Let me know if I can help Wink
Enjoy OpenSource! :nod:
MY SETUP: XBMC 12 Frodo RC3, Multiple Asus EB1501's throughout the Home for XBMC based STB's
Reply
#14
Ok, so what is the best way to uninstall? Within xbmc ->system ->add-ons?

I think I'd be best starting my configuration from new is there some way to wipe all my settings and start again? Delete some files in my .xbmc folder perhaps?

I am still having trouble getting my head around the configuration. It may best to describe my settup then you may be able to point me in the right direction...

I have 3 systems on my network:

Living room - ip:192.168.0.4
lounge room - ip:192.168.0.2
Bed room - ip:192.168.0.3

My plan is that the living room machine will be my master and the other 2 will be slaves. I would like to play synced media through all 3. What info needs to be configured on each machine? In particular which ips go where?

Sorry if this all a bit basic. I just can't quite get my head around it yet.

Thanks for your patience.
Phil
Reply
#15
Thumbs Up 
pssturges Wrote:Ok, so what is the best way to uninstall? Within xbmc ->system ->add-ons?

I think I'd be best starting my configuration from new is there some way to wipe all my settings and start again? Delete some files in my .xbmc folder perhaps?

I am still having trouble getting my head around the configuration. It may best to describe my settup then you may be able to point me in the right direction...

I have 3 systems on my network:

Living room - ip:192.168.0.4
lounge room - ip:192.168.0.2
Bed room - ip:192.168.0.3

My plan is that the living room machine will be my master and the other 2 will be slaves. I would like to play synced media through all 3. What info needs to be configured on each machine? In particular which ips go where?

Sorry if this all a bit basic. I just can't quite get my head around it yet.

Thanks for your patience.
Phil

No problem.. ;-)

Go ahead and uninstall via the addons section, but I have noticed that the uninstall functionality of the XBMC still needs a little work (like removing the app_data created by the previous plugin) ... so once you have unstalled via the addons section, close XBMC and via naut, browse to the ~/.xbmc/userdata/addon_data directory and remove plugin.program.mutiroomaudio.

Now, browse to ~/.xbmc/addons/packages and remove plugin.program.mutiroomaudio...zip

Now you have a clean system. Hopefully the addons Uninstall feature will get better...it's still pretty cool already.

Anyhow,

Now for the 2nd part of your question...

(We are going to use the Livingroom pc for this example)
On your master machine, after you reinstall the plugin, go ahead and setup the plugin via the context menu "addon settings". We are going to take the defaults for now, so go ahead and select OK so that the system generates the proper playercorefactory.xml file.

Now restart XBMC on the master.

Via the Master (livingroom) pc we are going to define a slave via the MultiroomAudio plugin. Upon starting the plugin...
1) Select "Slave (Stream Receiver)
2) Add an index # of 1 and select done
3) The next dialogue that pops up, select done as nothing should go into this
4) In the Source URL dialogue enter the following: udp://@224.1.1.152:1152
select done (BTW...This is the default that the Master will stream from)
5) For the title enter the name of Localhost and select done


Now for the clients (we will use your "lounge room" pc as an example)

Ok... on the lounge room pc (assuming that you already followed the process to re-install)

Go to the Multiroom plugin and let define a new client to the master you configure above by:

1) Select "Slave (Stream Receiver)
2) Add an index # of 2 (the number 1 should be reserved) and select done
3) The next dialogue that pops up, select done as nothing should go into this
4) In the Source URL dialogue enter the following: udp://@224.1.1.152:1152
select done (BTW...This is the default that the Master will stream from)
5) For the title enter the name of the master (in this case) Livingroom and select done

Repeat this for the other client(s) ... e.g. Bedroom

Ok.. now lets start a stream

1) Via the Master pc (Livingroom) MultiroomAudio plugin - select the Localhost slave you created earlier (this is optional so that you will be to listen to what is being streamed on the master (livingroom) pc.

2) Still on the master pc and within XBMC goto Music and browse to a song and via
the context menu select "Play using" and select "MR_Audio_Stream

3) Go to the lounge pc and via MultiroomAudio plugin - select the Livingroom slave you
created earlier.

Now you should be listening to the "syncronized" audio in both rooms.

Let me know if you have questions.
Enjoy OpenSource! :nod:
MY SETUP: XBMC 12 Frodo RC3, Multiple Asus EB1501's throughout the Home for XBMC based STB's
Reply
  • 1(current)
  • 2
  • 3
  • 4
  • 5
  • 15

Logout Mark Read Team Forum Stats Members Help
[RELEASE] Multiroom Audio & Video Streaming Plugin (Syncronized)1