[Live-devel] MJPEG streaming over RTP using livemedia
Satheesh Ram
satheesh at streamprocessors.com
Tue Mar 11 23:39:25 PDT 2008
Hi all,
Question#1
I was referring to previous discussions in the live media archives
for MJPEG Streaming through RTP using live. see here
<http://lists.live555.com/pipermail/live-devel/2005-January/001908.html>
and here
<http://lists.live555.com/pipermail/live-devel/2003-November/000037.html>.Got
the streamer up and running in real time (getting width and height from
JPEG header; Qfactor from MJPEG encoder). I am using VLC as RTP client
for receiving and playing back the streams. User-Agent: VLC media player
(LIVE555 Streaming Media v2007.02.20). The issue is: *VLC player crashes
*often with error messages like these
*[00000304] main decoder error: decoder is leaking pictures, resetting
the heap
main error: decoder is leaking pictures, resetting the heap
live555 debug: tk->rtpSource->hasBeenSynchronizedUsingRTCP()
*Has anyone faced similar problems with MJPEG streaming over RTP? How to
solve this problem?
Few notes on my implementation
- I have a created a class SPIJPEGVideoSource inheriting from abstract
class JPEGVideoSource
- defined type, qfactor, width and height. (getting width and height
from JPEG header; Qfactor from MJPEG encoder)
- Defined another class JPEGMediaSubsession : public
OnDemandServerMediaSubsession with following function definitions
FramedSource* JPEGMediaSubsession::createNewStreamSource(unsigned
clientSessionId, unsigned& estBitrate){
FramedSource* framedSource = SPIJPEGVideoSource::createNew(envir(),
clientSessionId, p_context);
return framedSource;}
RTPSink* JPEGMediaSubsession::createNewRTPSink(Groupsock* rtpGroupsock,
unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource){
return JPEGVideoRTPSink::createNew(envir(), rtpGroupsock);}
- In main jpeg streamer thread, I am creating objects of the following
class in sequence: BasicTaskScheduler, BasicUsageEnvironment,
RTSPServer, ServerMediaSession, JPEGMediaSubsession and adding
JPEGMediaSubsession as subsession in server media session.and finally,
lm->env->taskScheduler().doEventLoop();
Question#2
What is the difference in functionality of OnDemandServerMediaSubsession
and PassiveServerMediaSubsession? I am using the doxygen documentation
of livemedia to understand the classes, its members and their
relationships. Can you point me to any other documentation on basic
functionality of different classes in livemedia?
**
--
Satheesh Ram
Off. +91.80.41630270x25
Mob. +91.9945211181
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.live555.com/pipermail/live-devel/attachments/20080311/3d7eddef/attachment.html
More information about the live-devel
mailing list