[Live-devel] Proxying SIP live RTP to RTSP problem (segfault)

Ross Finlayson finlayson at live555.com
Sun Sep 24 22:28:06 PDT 2017


> Well, running playSIP with -r flag gives just the another SIGSEGV without any error messages:

Aha - you should be able to overcome this by calling:
	subsession->initiate();
just before your call to
	createRTSPServer(subsession);


> 
>> I should also point out, however, that there?s a much much easier way to feed the video output from ?playSIP? into a RTSP server: Run them as separate applications, and pipe the H.264 video between them.  I.e., run (on the command line):
>> 	playSIP -v etc | your-modified-testOnDemandRTSPServer
>> where "your-modified-testOnDemandRTSPServer? is a slightly modified version of the ?testOnDemandRTSPServer? demo application that:
>> 	1/ Sets ?reuseFirstSource? to True (?testOnDemandRTSPServer.cpp?, line 29)
>> 	2/ Changes ?test.264? to ?stdin? (?testOnDemandRTSPServer.cpp?, line 99)
>> 	See also http://live555.com/liveMedia/faq.html#liveInput-unicast
> 
> Though passing the data through stdin is ugly solution

I don’t think it’s ugly at all.  In fact, it’s quite clean, because it uses familiar Unix I/O stdio and pipes, rather than requiring extra programming.

> - this is the
> first thing I've tried, but it do not works too. The main issue as I see
> is that playSIP outputs the buggy (just two 00000001) raw h264 if the
> sprop-parameter-sets is not presenet in SDP but the testOnDemandRTSPServer
> always expects byte-stream h264 format. The SIP servers ususally do
> not / never supply the sprop-parameter-sets but the profile-level-id
> fmtp entry only.
> 
> Is there a way to fix this and make at least stdin approach to work with SIP ?

If you know the SPS and PPS NAL units ahead of time, then you can add them as (otherwise optional) parameters to the call to “H264VideoRTPSink::createNew()” in “playCommon.cpp”.


Ross Finlayson
Live Networks, Inc.
http://www.live555.com/




More information about the live-devel mailing list