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: #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-XBMC Developer
Posts: 425
Joined: Dec 2010
Reputation: 16
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!

Always read the XBMC online-manual, FAQ and search the forums before posting.
Do NOT e-mail Team-XBMC members asking for support. Read/follow the forum rules.
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: #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: 46
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
JabberwockPL Offline
Junior Member
Posts: 46
Joined: Jan 2010
Reputation: 0
Post: #16
The kitchen radio is a standard UPnP device, so it is not _that_ far off from what you were planning.

Such extension of XBMC UPnP functionality might have also other uses, e.g. music following the user (as he moves, the music stops playing in one room and starts playing in another), or starting watching a movie in the living room and "sending" it to finish in the bedroom.

If I might suggest something else, it might be useful not to limit the functionailty to XBMC UPnP server, but to use any server available in the network. The direct benefit would be that transcoding could be coded later - there are already freeware transcoding UPnP servers available, so you might start with that.
find quote
k4rtik Offline
Junior Member
Posts: 9
Joined: Mar 2012
Reputation: 0
Post: #17
The ideas you mention sound interesting. Smile

Thanks for your suggestion, I will take that into consideration surely.
find quote
k4rtik Offline
Junior Member
Posts: 9
Joined: Mar 2012
Reputation: 0
Post: #18
Alas, not selected. :|
Congrats to those who got selected this year. Smile
find quote
billyvnilly Offline
Junior Member
Posts: 19
Joined: Dec 2011
Reputation: 0
Post: #19
This would have been a nice feature. Keep up your spirits, and hopefully you'll get to see this project through one way or another.
find quote
Post Reply