[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