HTTP/Mobile Branch of XBMC?
#1
I am posting this here because this is more than just a feature suggestion for XBMC. I have little bit of development background and would be interested in working on this project if anybody was interested.

As you know the latest SVN builds of XBMC have moved from GoAhead web server to MicroHttpd. I believe there is also currently a project going on to improve the XBMC web interface. With apps available such as Collect3's XBMC streamer for streaming music to your iPhone, I feel that XBMC has lot to offer in the mobile world as well. Below are a few of my ideas:

Streaming video to a mobile device from XBMC is coming eventually, and I think that it would make sense to have an additional field/flag in the XBMC MyVideos34.db to denote "Mobile Videos". For example, you are traveling and would like to watch a movie/tv episode on your mobile device. It doesn't make sense to try and stream a huge MKV file over http, so what if you were to have a second copy of your episode/movie, but encoded to a smaller size for mobile streaming. So say I have the movie "My Movie" in my video library, but I would also like to watch this on my phone while traveling. I could encode the same movie at a much lower bitrate, etc. and with mp3 audio for example, but instead of the mobile version being named "My Movie.mkv", it would be named something like "mob.My Movie.mkv. XBMC would be able to differentiate based on the file name (similar to how current TV episode scraping works), and only display this movie in XBMC's Videos Library once.

With the proper web interface and plugins for video playback within the
XBMC web interface you could watch your mobile videos from a web browser on your laptop. Furthermore, an iPhone/Android app could be written to interface with the HTTP interface in XBMC to enable the mobile device playback. Obviously, .MKV container would not be a good choice for the mobile video format as the end playback devices would need to support the container and codecs used.

I know the web server is not the highest priority in XBMC, but I believe that it is a very cool and currently under-utilized feature. I would be interested in working with some other people interested in this on a possible separate branch for HTTP & mobile access development for XBMC.

Thoughts? Feasibility? What other cool things could be made available via the HTTP interface? XBMC Web Media Manager looks like a big step in the right direction. Platform independent is a good thing!
Reply
#2
You can already do this with VLC and you don't even need a second copy of the video. VLC can transcode and stream on the fly.
Reply
#3
VLC is not XBMC, and I am unaware of an Android or iPhone app for VLC. The entire purpose of what I am proposing is to fully integrate this process into XBMC. I may be wrong, but i also seems like transcoding on the fly while steaming would require a considerable amount of processing power on the XBMC box, which for most people is something with a Atom processor. Not efficient. Thoughts?
Reply
#4
You don't have to use VLC as the media player, merely use it as the streaming backend. So for Android you just play the media file with this command:

Code:
ffmpeg -i %1 -vcodec rawvideo -acodec pcm_s16le -f asf - | cvlc - --sout '#transcode{soverlay,ab=42,samplerate=44100,channels=1,acodec=mp4a,vcodec=h264,width=320,height=180,vfilter="canvas{width=320,height=180,aspect=16:9}",fps=25,vb=200,venc=x264{vbv-bufsize=500,partitions=all,level=12,no-cabac,subme=7,threads=4,ref=2,mixed-refs=1,bframes=0,min-keyint=1,keyint=50,trellis=2,direct=auto,qcomp=0.0,qpmax=51}}:gather:rtp{mp4a-latm,sdp=rtsp://[YOURIP]:5554/stream.sdp}'

Then just create a hyperlink to:
Code:
rtsp://[YOURIP]:5554/stream.sdp

And tap it. Bang, you're watching the video in Android.

It doesn't require very much processing power because you're only encoding 320x180 at a pretty low bitrate. Besides, if your concern is efficiency, having two versions of all your media is not the way to do it.
Reply
#5
Just a note, I have considered adding a convert tool to the webserver / jsonrpc for transcoding, however it won't be added until at earliest camelot+2.

Also before I start that patch I want to discuss with a html5 developer how they want it so they can leaverage it, I know how to do it for android and general applications.

Cheers,
Tobias
If you have problems please read this before posting

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

"Well Im gonna download the code and look at it a bit but I'm certainly not a really good C/C++ programer but I'd help as much as I can, I mostly write in C#."
Reply

Logout Mark Read Team Forum Stats Members Help
HTTP/Mobile Branch of XBMC?0