Project Idea on XBMC-Remote

  Thread Rating:
  • 2 Votes - 5 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
k4rtik Offline
Junior Member
Posts: 9
Joined: Mar 2012
Reputation: 0
Post: #1
Hi

I am a 3rd year student of Computer Science & Engineering from India and new to XBMC development. I want to apply for GSoC 2012 with XBMC.

I am interested in working for android remote client project idea mentioned in the wiki at http://wiki.xbmc.org/index.php?title=Goo...erver_area I have been using the XBMC-Remote android app for quite a while now.

Can I get some more details about the project idea and how can I get started? I have already explored the Google Code site for xbmc-remote and read the wiki pages (detailing usage of MVC model, etc.) but there doesn't seem to be much activity in recent time (moving to github a possible reason).

I have some experience with web development (which includes MVC model), good experience with C, and object oriented concepts in C++ and good familiarity with Python. Also, I have hands on experience on UNIX sockets API, message passing mechanisms in Linux, etc (due to my Networks and Operating Systems Labs) - I mention these since they seem to be related to the idea mentioned in the wiki. And since I have my summer vacation starting early May, I hope to catch up with other requirements before official coding period starts.

I would also like to know whether a beginner (like me) can make it to a successful XBMC GSoC project?

--
Kartik
find quote
jmarshall Offline
Team-XBMC Developer
Posts: 26,221
Joined: Oct 2003
Reputation: 178
Post: #2
Hi there,

I suggest you drop the authors of the xbmc-remote a line first and foremost. I'll also give them a nudge this way.

And yes, a beginner can make a successful XBMC GSoC project if they're willing to work hard Smile

What ideas did you have of your own for the remote? What in particular do you want it to be able to do?

Cheers,
Jonathan

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: badge.gif]
find quote
freezy Offline
Team-XBMC Android Remote Developer
Posts: 885
Joined: Dec 2006
Reputation: 15
Location: Switzerland
Post: #3
Hiya,

How about implementing remote streaming from XBMC to the device? You would need to implement some kind of transcoding API using ffmpeg on XBMC's side and grab the stream on Android's side. This would really be a kick-ass feature and gives you the possibility to touch a load of different technologies.

Jonathan, your thoughts?

Also Montellese and topfs2 are probably good people to answer API related questions.

Running XBMC on my HTPC, tablet, phone and pinball machine.
Always read the XBMC online-manual, FAQ and search the forums before posting. Do NOT e-mail Team-XBMC members asking for support. For troubleshooting and bug reporting, make sure you read this first.
find quote
k4rtik Offline
Junior Member
Posts: 9
Joined: Mar 2012
Reputation: 0
Post: #4
(2012-03-26 23:33)jmarshall Wrote:  I suggest you drop the authors of the xbmc-remote a line first and foremost. I'll also give them a nudge this way.

And yes, a beginner can make a successful XBMC GSoC project if they're willing to work hard Smile

What ideas did you have of your own for the remote? What in particular do you want it to be able to do?

Thanks for your suggestion Jonathan, I managed to contact freezy of xbmc-remote and gained a lot of information about the direction of the project. In particular he informed me that JSON-RPC transition is already completed in the latest sandbox of the project.

As for ideas, as freezy mentions I am considering media streaming to remote device from the server and also including a way to download the media file itself to mobile device (e.g. my Galaxy S has 16 GB of memory and huge screen, can be a great feature for users on the go), this should also include all the meta info about the media file.

(2012-03-27 17:44)freezy Wrote:  How about implementing remote streaming from XBMC to the device? You would need to implement some kind of transcoding API using ffmpeg on XBMC's side and grab the stream on Android's side. This would really be a kick-ass feature and gives you the possibility to touch a load of different technologies.

Thanks for showing a way forward freezy, I am looking forward to hear what Jonathan, Montellese and topfs2 have to say in this regard.

--
Kartik
find quote
Montellese Offline
Team Kodi Developer
Posts: 3,921
Joined: Jan 2009
Reputation: 36
Location: Switzerland
Post: #5
(2012-03-27 18:54)k4rtik Wrote:  As for ideas, as freezy mentions I am considering media streaming to remote device from the server and also including a way to download the media file itself to mobile device (e.g. my Galaxy S has 16 GB of memory and huge screen, can be a great feature for users on the go), this should also include all the meta info about the media file.
Just as an FYI concerning the download functionality: xbmc's webserver already allows downloading files but obviously only over HTTP. So you'd primarily need some logic on the remote which pulls the media file and it's metadata from xbmc.

Do you already have any plans concerning how to implement the streaming? Over HTTP or some other more stream-specific protocol like RTP?

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: badge.gif]
find quote
erhnam Offline
Team-XBMC Live Developer
Posts: 673
Joined: May 2009
Reputation: 2
Location: The Netherlands
Post: #6
(2012-03-27 17:44)freezy Wrote:  How about implementing remote streaming from XBMC to the device?

Sounds indeed as an awesome idea!
find quote
k4rtik Offline
Junior Member
Posts: 9
Joined: Mar 2012
Reputation: 0
Post: #7
(2012-03-27 20:10)Montellese Wrote:  Just as an FYI concerning the download functionality: xbmc's webserver already allows downloading files but obviously only over HTTP. So you'd primarily need some logic on the remote which pulls the media file and it's metadata from xbmc.

Okay, I wasn't aware of that. Thanks. But I think it will be even easier if the download functionality can be made available through the remote client's interface itself (since it already provides a way to browse through the whole connection). Being able to remember what files were downloaded, an additional option can be directly play them through xbmc-remote using the meta data from stored cache.

(2012-03-27 20:10)Montellese Wrote:  Do you already have any plans concerning how to implement the streaming? Over HTTP or some other more stream-specific protocol like RTP?

None currently, busy with some of my tests/evaluations these days. I hope to come up with an idea soon, will need at least a day of research. On second thoughts, http streaming might be easier (both for implementation and clients), not very sure though. Any comments?

--
Kartik
find quote
joethefox Offline
Team-Kodi Member
Posts: 1,384
Joined: Nov 2010
Reputation: 32
Post: #8
(2012-03-27 17:44)freezy Wrote:  How about implementing remote streaming from XBMC to the device? You would need to implement some kind of transcoding API using ffmpeg on XBMC's side and grab the stream on Android's side.

I was thinking, but would be a right approach extend the UPnP server capabilities with transcoding support?
find quote
freezy Offline
Team-XBMC Android Remote Developer
Posts: 885
Joined: Dec 2006
Reputation: 15
Location: Switzerland
Post: #9
Fair question. Protocol-wise it's still an open question for me. If there already are protocols that allow the setting of bandwidth, resolution etc, we should make use of them.

Running XBMC on my HTPC, tablet, phone and pinball machine.
Always read the XBMC online-manual, FAQ and search the forums before posting. Do NOT e-mail Team-XBMC members asking for support. For troubleshooting and bug reporting, make sure you read this first.
find quote
k4rtik Offline
Junior Member
Posts: 9
Joined: Mar 2012
Reputation: 0
Post: #10
(2012-04-05 00:18)freezy Wrote:  Fair question. Protocol-wise it's still an open question for me. If there already are protocols that allow the setting of bandwidth, resolution etc, we should make use of them.

How about DLNA support (which again uses UPnP) on XBMC? I tried streaming to my DLNA-supported phone through XBMC, I was able to browse the media collection through Samsung's AllShare app but for some reason the streaming failed to work. Was it simply because media streaming (other than through http) is missing in XBMC or did I miss something here?

I am preparing my GSoC proposal currently, would be grateful if I can get an idea on this.
find quote
k4rtik Offline
Junior Member
Posts: 9
Joined: Mar 2012
Reputation: 0
Post: #11
Here's my proposal that I have submitted at GSoC's application form:

Project Title
Adding Streaming Support for Remote Clients

Summary:
XBMC currently acts as a UPnP MediaServer ControlPoint and remote clients are able to control the media server but unable to stream from it. This project essentially aims to let XBMC also act as a MediaRenderer so that a remote client (e.g. an Android device) can play the media on its own screen which is being streamed from XBMC server. This will involve implementing on-the-fly transcoding functionality using ffmpeg (or some other suitable library) to XBMC and adding streaming support to client software.

How will I achieve this:
First step will be to find out the best way to transcode various types of media files while maintaining a good balance of quality and low resource consumption on both server and client side. This might involve optimizing GStreamer FFmpeg's (or other suitable transcoder's) configuration for our purpose.
Secondly, extending the UPnP-server API in XBMC using the Platinum UPnP SDK to support streaming.
Last step will be to adding the client software support to play the rendered stream from the server. I will be focusing on the Android XBMC Remote; this will involve working on the code of android-xbmcremote app and add necessary layouts and views taking into consideration the associated meta data is accessible too (as in the main media center).

Benefits:
For users: One of the use cases is that the possibility, of playing another stream on a remote device while the server is already playing a media file on a home theatre, opens up. Other one can be storing of streamed media locally so as to play later while traveling.
For developers: Since the project involves extending functionality of XBMC's UPnP API, I plan to make it as flexible as possible so that it will be easier for devs to implement client interfaces for other devices.

Goals:
1. Extending the UPnP API to effectively make XBMC a UPnP MediaRenderer.
2. Maintaining DLNA standard compliance while extending the UPnP API so that compatibility with maximum devices can be ensured.
3. Implementing a client interface to support streaming from XBMC for at least one android device (my Samsung Galaxy S at least).

What does it touch in XBMC:
This first part of this project will mainly extend the UPnP API (with transcoding support) and JSON-RPC API (to support transfer of additional meta while streaming).
The second part will just extend the remote client app without needing to touch XBMC core codebase.

Requirements:
Knowledge of programming languages C++, JavaScript, Python, Java (for android app) will be needed. Familiarity with multiple platforms – windows, linux, android – also is a must. Among hardware – an android device is necessary (I have my own). Also necessary is familiarity with XBMC codebase, technical know how about streaming technologies and usage of multiple API's – JSON-RPC, Android's etc. I am currently experimenting with Android app development and plan to get up to speed with XBMC codebase, and JSON-RPC in the due course of the project.

How long have you been writing software for work/fun?
Since about 4 years, it started with creating some simple websites and then coding a basic TicTacToe game in C from scratch, then more web development, mostly Drupal (but including using MVC model with Django) and then various assignments/projects at college. Most of my code is available at https://github.com/k4rtik

What is your primary development language/environment?
Primarily C/C++ in GNU/Linux environment with Git version control system. I have good familiarity with Python and love Bash too.

Is this your first GSOC?
Yes

Have you contributed to XBMC or other FLOSS projects?
Not yet as a code contributor. Though I have been connected to FLOSS community in India by attending and organizing various workshops and conferences in my college and around.

-----------------------
Application deadline approaches soon (in around another 6 hours), if there is any problem with the proposal please let me know so that I can edit it, I would really appreciate that.

Thanks
Kartik
find quote
garbear Offline
Team-Kodi Developer
Posts: 783
Joined: Dec 2010
Reputation: 38
Location: gangsta's paradise
Post: #12
I hope this comes to fruition. I dream of a "2AM" mode, where the video plays but the audio is streamed to headphones plugged into my android phone. Full audio experience, no pissed off neighbors Smile Good luck!
find quote
k4rtik Offline
Junior Member
Posts: 9
Joined: Mar 2012
Reputation: 0
Post: #13
(2012-04-06 15:11)garbear Wrote:  I hope this comes to fruition. I dream of a "2AM" mode, where the video plays but the audio is streamed to headphones plugged into my android phone. Full audio experience, no pissed off neighbors Smile Good luck!

Wow, didn't think of that, sounds like a great use case! Smile And thanks.
find quote
JabberwockPL Offline
Junior Member
Posts: 48
Joined: Jan 2010
Reputation: 0
Post: #14
This sounds interesting!

I've always wished that XBMC functionality as Control Point was extended - for example, to use XBMC in my living room to control playback on my kitchen Internet radio - using XBMC's excellent music browser instead of the radio's tiny display... But this is probably beyond the scope of what you are planning?
find quote
k4rtik Offline
Junior Member
Posts: 9
Joined: Mar 2012
Reputation: 0
Post: #15
Yeah, this sounds like going into a very different direction (though I am not much aware about how a kitchen Internet radio works).
find quote
Post Reply