PDA

View Full Version : Supported "Real Streaming" Codecs/Protocols



noknok
July 13th, 2009, 02:02 PM
Have a question. Totally new to developig Boxee apps. So my question is this: what protocols/formats/codecs would be best to stream LIVE media.

By live, I mean media which is NOT alread boxed into say an MP4 container etc with the MOV section in the front (as that can only happen if the stream is complete and indexed). We can basically format the media/stream in any fashion, so what I am wondering what is the preferred/best way to stream live media to BOXEE. As far as performance, support, etc. We want to be able to provide good quality, so we dont want to do something which "taxes" the cpu it hurts processing.

As our media is what would be considered "live" media, it can placed in any container format to which Boxee is best equipped to handle.

For example can boxee, play MP4 file format, without the MOV section being at the beginning? If so, we could stream it in MP4 format. Can Boxee understand a .TS stream? We could strean in MPEGts-2. I assume MPEG4 VidCodec would be lesser taxing on the CPU than H264?

Hoping to get moving on this ASAP so any pointers here would be helpful.

Shawn

ameno
July 13th, 2009, 08:23 PM
use a swf as your media:content and stream in a format flash can receive (rtmp in an flv container). It'll save you tons of hours of debugging and you won't have to worry about changes to the platform. Especially if it is live, you will only need to expose the volume.

DPK
July 13th, 2009, 08:54 PM
I'm going to side with ameno that if you want something you aren't going to pull your hair out over, use flash as the delivery decoder for your stream.

noknok
July 13th, 2009, 09:54 PM
FLV container not a problem. RTMP stream, their lies a problem unless you can point me to a .NET compatable RTMP stack.

Can we stream FLV over RTSP? that we can support easily. Searched around didnt see any RTMP stack out their. Did see Red5 server and such, but that would be major overkill for this application.

One other quick thought, does BOXEE support direct audio/video streaming over RTSP ? Maybe a 3GP stream?

And lastly, http progressive download using flv container? we could just feed it from our app acting as the webserver. We wouldnt provide a content-length in the header, so not sure how Boxee reacts to that?


Thoughts?

Shawn

ameno
July 14th, 2009, 12:36 PM
Honestly, if you are going to do RTMP and not looking for "overkill" you can get an RTMP (red5) hosting provider and get streams going for less than $20 a month. That's probably your best solution if you are looking for ease.

noknok
July 14th, 2009, 12:39 PM
This is a local app which runs on a persons local computer. So looking for a solution which can be kept "internally" and on the fly.

Any other thoughts, not so much worried about complexity, ability is vastly more important, we have a lot of tools at our disposal RTMP just not one of them.

Shawn

noknok
July 16th, 2009, 06:15 AM
Anyone? for live streaming, is RTMP/FLV the only protocol/format supported by boxee?

Shawn

ameno
July 16th, 2009, 10:07 PM
This is a local app which runs on a persons local computer. So looking for a solution which can be kept "internally" and on the fly.


People are probably not responding because what you are saying doesn't make any sense.

Is this an app to stream security cameras or something? What other application is there for an individual to stream to Boxee from their personal PC? If that's what this is, that's a tough call, and you are going to have to develop the solution yourself. People aren't going to be able to do much more than give you conjecture.

If that IS what you are doing, I would start here: http://blog.xbmc.org/forum/showthread.php?t=205&page=4 . It looks like XBMC will play the very obscure NSV (nullsoft streaming video) format. You can stream that out of a shoutcast server.

I personally, maybe 5 years ago, was using it to stream live video from day cares for parents to look in on their kids. Is this the application you want? If it is, I'd suggest a website.

noknok
July 16th, 2009, 11:05 PM
There are basically two types of streaming. One which is "boxed" - meaning, the indexes, headers, etc are all known and encapsulated in the file prior to sending. (eg: MP4 with MOV Atom in the front) The other is "realtime", in which case the media is just that, a stream, without known indexes, etc becuase the it is happening realtime.

In the case of FLV or MP4, they can be created where the INDEXING is at the end of the file, but many players (VLC, Windows media, Quicktime, etc) will all NOT play the file until it recieves that index information.

Putting the media aside for a second, all I am trying to find out, is what it is that BOXEE supports for both the container (examples would be MP4, FLV, AVI, MPEG, and so on) Then what transports it will support for live streaming (realtime), eg: RTSP/SDP/3g stream? http streaming? MPEG-TS container/stream

Example streams could be anything eg: Video call inbound (though doesnt make sense), or Digital TV, or Secuirty cameras, and so on. Anything which has not completed its recording to be "boxed"

I hope that it explains it better. We alread stream live to iphone, 3g phones, media center, etc. We would like to include BOXEE. But cant seem to find what transport and container to use.

Shawn

ameno
July 17th, 2009, 07:46 PM
I'm sure a great many of us here (considering this is a developers forum for a media player) have extensive experience with streaming.

I gave you the link to NSV. That streams live with HTTP protocol to a Shoutcast server. Essentially, if you want to play your stream in the Boxee player, you will need to use the HTTP protocol with a container and codecs that Boxee understands (someone correct me if I am wrong on that).

Otherwise, you can use Flash or Silverlight as your player embedded in Boxee and you can use any protocols, containers and codecs that those platforms normally play.

Start with a Google search of "mp4 http live streaming" and start there. There are not many apps that are doing live streaming outside of Flash on Boxee, so you aren't going to get solid answers on this, only educated guesses from those of us who take the time to try and help you.

Do some experimentation and let us know what you find out.

noknok
July 17th, 2009, 07:58 PM
I appreciate the feedback. As for MP4 streaming over HTTP, it requires the MOV ATOM be first served for playing to take place. For this to happen, the movie/stream needs to be completed, so proper indexing can be done, and the samples index can be created. So that unfortunately is not a possible solution.

Being Boxee is based on XBMC and uses ffmpeg tech, does it support MPEG2TS container format with either MPEG or H264 as the video codec? This can be streamed realtime as it requires no indexing (its like pusing a VOB).

We could encapsulate both the VIDEO (H264 or MPEG) and AAC for audio, then stream the .ts file, if of course it is supported.

Can anyone let me know ?

Appreciated, thanks.

Shawn