[Live-devel] Suggestions for uncompressed Video streming and multiple payload format

Alberto Pretto alberto.pretto at dei.unipd.it
Thu Apr 2 07:23:54 PDT 2009


Hi,

I'm using liveMedia library for streaming from a Flir thermocamera (A320) that 
can stream MPEG4 format, uncompressed video and a proprietary format (FCAM). 

For MPEG4 streaming, I used liveMedia with ffmepg libraries, without any 
problems. 
I needed also to stream the uncompressed video (Y160, i.e. 1 channel images 
with 16 bit of pixel depth). 
The liveMedia library doesn't support this type of streaming, but initiating 
the subsession with an offset of 14 ( subsession->initiate(14) ), that is the 
length of the extended payload RFC 4175 format, it is possible to stream this 
type of payload by setting the bool useSpecialRTPoffset to True inside 
MediaSession.cpp source, before that the object SimpleRTPSource is created.

I suggest to the liveMedia developers to modify the function Boolean 
MediaSubsession::initiate(int useSpecialRTPoffset) in order to let the caller 
to set useSpecialRTPoffset boolean.

Another small issue: Flir A320 allow to stream various payload format, here 
the SDP:

v=0
o=- 0 0 IN IP4 192.168.200.199
s=IR stream
i=Live infrared
t=now-
c=IN IP4 192.168.200.199
m=video 10100 RTP/AVP 96 97 98 100 101 103 104
a=control:rtsp://192.168.200.199/sid=96
a=framerate:30
a=rtpmap:96 MP4V-ES/90000
a=framesize:96 640-480
a=fmtp:96 
profile-level-id=5;config=000001B005000001B509000001010000012002045D4C28A021E0A4C7
a=rtpmap:97 MP4V-ES/90000
a=framesize:97 320-240
a=fmtp:97 
profile-level-id=5;config=000001B005000001B509000001010000012002045D4C285020F0A4C7
a=rtpmap:98 MP4V-ES/90000
a=framesize:98 160-128
a=fmtp:98 
profile-level-id=5;config=000001B005000001B509000001010000012002045D4C28282080A4C7
a=rtpmap:100 FCAM/90000
a=framesize:100 320-240
a=fmtp:100 sampling=mono; width=320; height=240; depth=16
a=rtpmap:101 FCAM/90000
a=framesize:101 160-120
a=fmtp:101 sampling=mono; width=160; height=120; depth=16
a=rtpmap:103 raw/90000
a=framesize:103 320-240
a=fmtp:103 sampling=mono; width=320; height=240; depth=16
a=rtpmap:104 raw/90000
a=framesize:104 160-120
a=fmtp:104 sampling=mono; width=160; height=120; depth=16


liveMedia get only the first payload format, but it is possible to work around 
this limitation by calling the initializeWithSDP function with a "modified" 
SDP, e.g. to select the raw 320x240 format i call the initializeWithSDP 
function with this hard-coded SDP:

v=0
o=- 0 0 IN IP4 192.168.200.199
s=IR stream
i=Live infrared
t=now-
c=IN IP4 192.168.200.199
m=video 10040 RTP/AVP 103
a=control:rtsp://192.168.200.199/sid=103
a=framerate:30
a=rtpmap:103 raw/90000
a=framesize:103 320-240
a=fmtp:103 sampling=mono; width=320; height=240; depth=16

Thanks a lot!
Alberto


More information about the live-devel mailing list