<div class="wc_wrapper" style="font-family:굴림;font-size:10pt"><div> Hi. live555 list members.</div><div>I'm using your live555 libraries for my application.</div><div>I wanna set RTSP relay server with RTP source stream which contain H.264.</div><div>I did some of step on testOnDemandRTSPServer.</div><div>Firstly, I added codes for reading RTP under sample code to add server media subsession for MPEG-2 TS.</div><div>The added codes indicate that create new server media subsession with my class(H264VideoRelayMediaSubsession) that is inherited OnDemandServerMediaSubsession class.</div><div>like this,</div><div>==================================================================================================</div><div>OutPacketBuffer::maxSize = 1000000;</div><div>ServerMediaSession* sms<br>    = ServerMediaSession::createNew(*env, streamName, streamName,<br>    descriptionString);</div><div>// parameters for createNew are not important. don't mind.</div><div>sms->addSubsession(H264VideoRelayMediaSubsession::createNew(*env, NULL, 90000));</div><div>rtspServer->addServerMediaSession(sms);</div><div>==================================================================================================</div><div><br>Secondly, I had copied H264VideoFileServerMediaSubsession class and renamed it to "H264VideoRelayMediaSubsession"</div><div>And then, I had modified codes in 2 methods. (createNewStreamSource, createNewRTPSink)</div><div>See the codes below</div><div>==================================================================================================</div><div>FramedSource* H264VideoRelayMediaSubsession<br> ::createNewStreamSource(unsigned /*clientSessionId*/, unsigned& estBitrate)<br>{</div><div> estBitrate = 500; // kbps, estimate</div><div><br>  // Create a 'groupsock' object for receiving the input stream:<br> char* inputAddressStr = "192.168.0.19";</div><div> struct in_addr inputAddress;</div><div> inputAddress.s_addr = our_inet_addr(inputAddressStr);</div><div> Port const inputPort(34000);</div><div> unsigned char const inputTTL = 255; // we're only reading from this mcast group</div><div> Groupsock *fInputGroupsock = new Groupsock(envir(), inputAddress, inputPort, inputTTL);<br> </div><div> // Create the video source:<br>  FramedSource* transportStreamSource;<br> transportStreamSource = SimpleRTPSource::createNew(envir(), fInputGroupsock, 96, 90000, "video/H264", 0, False /*no 'M' bit*/);<br>  //transportStreamSource = H264VideoRTPSource::createNew(envir(), fInputGroupsock, 96, 90000);</div><div> //return transportStreamSource;</div><div><br> // Create a framer for the Video Elementary Stream:<br>  return H264VideoStreamDiscreteFramer::createNew(envir(), transportStreamSource);<br> //return H264VideoStreamFramer::createNew(envir(), transportStreamSource); </div><div>}</div><div><br>RTPSink* H264VideoRelayMediaSubsession<br> ::createNewRTPSink(Groupsock* rtpGroupsock,<br> unsigned char rtpPayloadTypeIfDynamic,<br> FramedSource* /*inputSource*/) {<br> return H264VideoRTPSink::createNew(envir(), rtpGroupsock, rtpPayloadTypeIfDynamic);<br> //return SimpleRTPSink::createNew(envir(), rtpGroupsock, 96, 90000, "video", "H264", 1, True, False /*no 'M' bit*/);<br>}</div><div>==================================================================================================</div><div><br>There are Some of comments for almost case that I had tried.</div><div>It was compiled and run well.</div><div>But It does not work or send any RTP to client(VLC player) in any case when I tried to connect.</div><div>I saw RTSP negotiations until PLAY on the captured packet.</div><div>Of course, RTP live source are streaming to my local on another desktop.</div><div>I will wait for your reply.</div><div>Thanks.</div></div><img src="https://mail3.nate.com/app/msg/confirm/?usn=3377963&email=imtmbest@nate.com&key=0a68aba9204a40763835994c55d32c2e$23a7d99e@mail3.nate.com" height="1" width="1" />