On Thu, Oct 7, 2010 at 9:12 AM, iain <i...@idcl.co.uk> wrote: > I’ve got two requests, really. Firstly, has anyone got this to work > properly or can they recommend an alternative (open source) which works > reliably. >
Hey Iain, long time no see. :) I also looked at that sourceforge project when I was first trying to integrate Live555 into a DirectShow source filter, and ultimately decided that their filter implementation was horrible, which it is. So I wrote an RTSP Source Filter using Live555 from scratch, and it works fairly well. I inherited from CBaseFilter/CBaseOutputPin and made my own streaming threads (I used QThread, but of course you can use any threading library you like)--CSource/CSourceStream aren't well suited towards Live555. I also implemented IFileSourceFilter to aid testability. As for Live555 code, I started with the openRTSP code (which implements an RTSP client), hacked out most of the stuff I didn't care about and then integrated that into the filter. I generally connect twice to the server--once to fetch media types so I can generate output pins, and a second time to start streaming media--this is sort of a necessity if you're going to test in GraphEdit. However, I also put in a small hack to IFileSourceFilter to do this in a single pull in my own app where it happens fast enough that I can pull all at once. Live555 is single-threaded, so I have one thread that runs the openRTSP-ish code and plops samples into queues based on media type--it's important to do all Live555 operations on a single thread and not to block the Live555 thread in any way. Then, I have the streaming threads for the output pins service those queues. However, getting timestamping working correctly has been (and continues to be) an issue. Live555 timestamps aren't accurate until the RTCP channel has been sync-d up, so the first few frame that come through have invalid timestamps. And DirectShow's timestamping for live sources sucks in general--I have yet to make heads or tails of it. If you have any good advice for getting timestamping working better in DShow, that'd be awesome. > Secondly, the documentation for Live555 is a touch on the light side, > however I have found some references to tutorials ( > http://www.mail-archive.com/live-devel@lists.live555.com/msg00238.html), > however the referenced link does not appear to exist anymore. Does anyone > have a copy of this. > My biggest recommendation, if you want to stream H264, is to completely disregard that guy's code. It's profoundly incorrect (particularly if you're writing a server component), and I made the mistake of following it as well. Your best resource is definitely openRTSP code, the FAQ on Live555's site, and the mailing list here. Are you writing a server filter as well?
_______________________________________________ live-devel mailing list live-devel@lists.live555.com http://lists.live555.com/mailman/listinfo/live-devel