Rabbit like sharring/streaming
#1
Lightbulb 
This is going to be a little hard to explain so please bear with me.

There is a program for OSX called "Peanut Gallery" that allows multiple people to watch a movie together over the web. One person picks the content, sets up a server that other users can connect to as client and once connected they watch the movie together and can communicate via chat / emotes though little shadowy avatars at the bottom of the screen.

http://peanutgallery.kaisakura.com/

While maybe not useful enough to add as "core" feature of XBMC, the idea has a very unapologetic MST3k feel to it and I think that this would be a really cool feature for any media center program. Since the xbox doesn't have a keyboard the whole chat idea might translate better into the linux / windows ports of XBMC, but I thought the idea itself was cool enough to bring up.

I work primarily as a web developer by day, but I have some experience with C# and C++ and would love to contribute to this project if people think this would be a good feature.

Is it possible to get some feedback about the feasibility of this concept by someone who has some experience with the project? Is something like this possible to accomplish as an addon python script to XBMC?
Reply
#2
it would probably be accepted. but we'd have to know something about what protocols it uses.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


Image
Reply
#3
I hadn't really thought of just trying to tie in to the protocol that the Peanut Gallery uses to accomplish this, I meant more of writing / designing our own service that would be just for XBMC.

For starters it could just let two internet connected xboxes start and pause a divx movie together. It would be awesome to be able to stream a movie to other clients like Peanut Gallery does, but I think for the initial concept each xbox would need to have the same movie file and then match them up using something like the IMDB id.
Reply
#4
Despite this probably being a lot of work, I think this would be hilarious. I'm curious as to how often it would be used, though, if it's just for XBMC users. Having it use the same protocol as Peanut Gallery would mean it could be used with anyone having a Mac as well.

I've never even heard of this before. Sounds fun. Smile
Reply
#5
After a cursory glance at the website I must say, this does look really cool!! I love mst3k and I have lots of cheesey old scifi/horror flicks that need bashing Wink If I am understanding the concept correctly it wouldn't be a hug leap to then roll part of this code into an IM client? Perhaps something platform/service independant like trillian? That way it could be used for chat/spoofing inside peanut gallery and for general communication otherwise. Wow that would be really cool. Just kind of talking out loud, but if you haven't noticed I think it is great!!
Reply
#6
Yeah I think the chat code could definitely be abstracted into an "im client" of sorts, but only in the simplest sense. In order for any of this to work there would have to be some kind of profile, alias or handle that you could choose for yourself which would be used uniquely identify you when you make requests to watch a movie with someone.

I remember using xlink KAI with my xbox and maintaining a friends list that I could play games with. Maybe there is something there that we can reuse.

The more I talk about this, the more I think that it's not going to be possible to rock this in python. I'm just going to grab a copy of the SVN repo and just start digging around. I'd like to get a proof of concept going to see if this is feasible before expanding a whole lot further.

If anyone has any tips or places they think I should start, please let me know.
Reply
#7
Could something like the Autoconnect being used ?

Maybe ther could be an extra option to set a Box as Master or Client and if it is a client the master distributes the Playlist incl link to shares to the Clients and they play Music/Photos or even Videos.

Sonos does something like this
Reply
#8
Lightbulb 
Drewdah Wrote:I hadn't really thought of just trying to tie in to the protocol that the Peanut Gallery uses to accomplish this, I meant more of writing / designing our own service that would be just for XBMC.
I do not like the idea of using our own protocol in XBMC that nobody else uses, so instead how about using an existing open source library like PulseAudio (or similar) and extend it to support video as well as audio (that way that library could be re-used in XBMC so that it is implemented for both video and audio synchronization, no matter if both XBMC boxes are located in the same house or over the internet to another country).
http://en.wikipedia.org/wiki/Pulseaudio

Also read this existing topic-thread about "Synchronize music/video-stream playback on multiple-Xboxes (Multi-Zone Audio/Video)"
http://forum.xbmc.org/showthread.php?tid=6207

...and as for the IM or VoIP chat part I think that should be dealt with separately from the synchronization part, as they are two different features which if implemented should be able to be used separately from each other as well as together.
Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.
Reply
#9
Thanks for the links Gamester. I'll look into CMPlayer and PulseAudio and see what I can find.
Reply
#10
Ok, so from what I've read so far Cave-MPlayer (which is just a patch for mplayer) seems to have the video sync concept worked out, but it's still in pre-alpha stages. I'm also looking into vlc streaming, but at the moment I can't find specific mention of it keeping the video / audio streams synced up.
Reply
#11
Drewdah Wrote:Yeah I think the chat code could definitely be abstracted into an "im client" of sorts, but only in the simplest sense. In order for any of this to work there would have to be some kind of profile, alias or handle that you could choose for yourself which would be used uniquely identify you when you make requests to watch a movie with someone.

That is why i suggested something along the lines of trillian that would work with many different im clients like AIM, YIM, GCHAT etc. You could use your email address as a "unique id" and your contacts could be your friends list. A quick search on sourceforge shows a few im projects that speak to multiple clients. As Gamester mentioned it would be great if the IM aspect and video streaming functioned as standalone apps and also in cooperation with each other. It would add lots possibilities beyond the peanut gallery concept (which is again a freaking awesome idea Wink ) Cheers.
Reply
#12
I agree with Rand Al Thor. Using some form of IM library makes the most sense. Then you'd just have to send messages over it to specify the stream information plus what the avatars are doing/saying.

By using an IM library to handle communications, you don't have to worry about the friends list or any other behind-the-scenes info. It could also be extended for other purposes, like allowing people to play emulator games against each other (assuming the XBMC versions of those emulators allow parameters for server/client IP address in addition to the game file). Smile
Reply
#13
As gamester said, no need to reinvent the wheel. If you use an existing library and start with a fully functional IM client the possibilities increase exponentially. There would also be little user configuration, just enter an email addy and pass. Most multi client IM apps will do the rest of the work and get all your contacts etc. szsori suggested some great stuff. I can also see voip/video chat being possible. Also if another xbmc is detected on the local network you could use it as an intercom too. Just off the top of my head.
Reply
#14
Lightbulb 
Drewdah Wrote:Ok, so from what I've read so far Cave-MPlayer (which is just a patch for mplayer) seems to have the video sync concept worked out, but it's still in pre-alpha stages.
Note that XBMC is now a cross-platform application and the MPlayer used in XBMC is only available for the Xbox version of XBMC, for all other versions our own in-house developed video-player (that is currently called "DVDPlayer") is the only video player, and it is likely to stay so in the future.

So if it is synchronized video-playback you want then you are better of concentrating your efforts on our "DVDPlayer" video-player, to integrate a library like PulseAudio either into "DVDPlayer" itself or as its own DLL than can be called from both the "DVDPlayer" video-player and our in-house developed audio-player (which is called "PAPlayer"), ...I think that if you manage to support both, or at least make the library capable of being extended in the future to support both then you are much more likely to get help with it from other developers and being actively maintained in the future.
http://wiki.xbmc.org/?title=DVDPlayer
http://wiki.xbmc.org/?title=PAPlayer

IMHO the synchronization part should be added natively (in C/C++) integrated into XBMC, but the IM or VoIP part could probably be a python script, ...and I also like to point out that I do not think that the discussion IM part belongs in this topic-thread, instead that should be a separate topic-thread and a separate free-standing discussion. So please try to keep this discussion in this topic-thread on-topic and limited to only the synchronization part.

PS! You do not happen to be a student?, see => http://wiki.xbmc.org/?title=Google_Summer_of_Code_2008

My 2 cents Nerd
Reply
#15
Wow the scope of these suggestions just keeps getting bigger Smile

I like the idea of using an existing IM service rather than rolling our own but support for multiple protocols doesn't really fit into the idea I had in mind. I was thinking of just using the Jabber (open source IM) protocol and tailoring it specifically for our purposes. I'd make it modular so if other people wanted to add support for other IM services they could - but remember, we're still dealing with a distinct lack of keyboard for 99% of the XBMC user base. That's why I wanted to stick with a simple communication method to begin with that would just allow you to uniquely identify yourself outside of just an IP address.

Since we're talking expanded scope, I was also thinking that having some kind of community networking or "friends list" could grow from this that would allow movie recommendations from people on your list similar to the way NetFlix does. This obviously would require a much deeper integration into the other aspects of xbmc and is not really something I think I'm qualified to tackle.
Reply

Logout Mark Read Team Forum Stats Members Help
Rabbit like sharring/streaming1