Problems detecting SAPs with 0.9.4
Posted: 08 Oct 2008 23:18
We use Wirecast on an Intel Mac Mini to multicast H.264 video. The SDP file is used by a SAP server to create SAPs, it's not changed.
The SAPs have been detected fine in VLC 0.8.6. However, they are not detected with 0.9.3 and 0.9.4 on Mac OSX 10.4.11, Mac OSX 10.5.5, and WinXP SP3 clients. I understand that VLC is now fussier regarding SAP detection.
This is the original Wirecast SDP that does not create detectable SAPs in 0.9.4 (but does in 0.8.6)
v=0
o=- 82811671 82811671 IN IP4 127.0.0.0
s=Wirecast
t=0 0
a=range:npt=now-
m=audio 5432 RTP/AVP 96
c=IN IP4 233.88.214.139/99/1
a=rtpmap:96 mpeg4-generic/44100/2
a=fmtp:96 profile-level-id=15;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1210
m=video 5434 RTP/AVP 97
c=IN IP4 233.88.214.139/99/1
a=rtpmap:97 H264/90000
a=fmtp:97 packetization-mode=1;profile-level-id=4D401E;sprop-parameter-sets=J01AHqkYFAe2ANQYBBrbCte98BA=,KN4JF6A=
a=cliprect:0,0,480,640
a=framesize:97 640-480
b=AS:1500
Now, all I do is move the b=AS:1500 line to go just below the video c=IN line, and add ONE carriage return at the end of the file.
This results in the following file, which is able to create SAPs that 0.9.4 (and 0.8.6) detect and play the video.
v=0
o=- 82811671 82811671 IN IP4 127.0.0.0
s=Wirecast
t=0 0
a=range:npt=now-
m=audio 5432 RTP/AVP 96
c=IN IP4 233.88.214.139/99/1
a=rtpmap:96 mpeg4-generic/44100/2
a=fmtp:96 profile-level-id=15;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1210
m=video 5434 RTP/AVP 97
c=IN IP4 233.88.214.139/99/1
b=AS:1500
a=rtpmap:97 H264/90000
a=fmtp:97 packetization-mode=1;profile-level-id=4D401E;sprop-parameter-sets=J01AHqkYFAe2ANQYBBrbCte98BA=,KN4JF6A=
a=cliprect:0,0,480,640
a=framesize:97 640-480
There are two settings in VCL under Services discovery, SAP
1) Try to parse announcement (default is on). The SAP module in VLC parses announcement, otherwise parsed by the "live555" (RTP/RTSP) module.
2) SAP strict mode (default is off). SAP parser will discard some non-compliant announcements.
It does not make any difference what the settings are, after the changes are made in the SDP, the SAP always works.
It appears that either Wirecast or VLC does not follow the SDP RFC
http://www.ietf.org/rfc/rfc2327.txt
But I have not waded through it yet...Would anyone know which app is out of spec here?
Also, why is the new VLC so fussy with SAPs, the old one worked fine!
The SAPs have been detected fine in VLC 0.8.6. However, they are not detected with 0.9.3 and 0.9.4 on Mac OSX 10.4.11, Mac OSX 10.5.5, and WinXP SP3 clients. I understand that VLC is now fussier regarding SAP detection.
This is the original Wirecast SDP that does not create detectable SAPs in 0.9.4 (but does in 0.8.6)
v=0
o=- 82811671 82811671 IN IP4 127.0.0.0
s=Wirecast
t=0 0
a=range:npt=now-
m=audio 5432 RTP/AVP 96
c=IN IP4 233.88.214.139/99/1
a=rtpmap:96 mpeg4-generic/44100/2
a=fmtp:96 profile-level-id=15;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1210
m=video 5434 RTP/AVP 97
c=IN IP4 233.88.214.139/99/1
a=rtpmap:97 H264/90000
a=fmtp:97 packetization-mode=1;profile-level-id=4D401E;sprop-parameter-sets=J01AHqkYFAe2ANQYBBrbCte98BA=,KN4JF6A=
a=cliprect:0,0,480,640
a=framesize:97 640-480
b=AS:1500
Now, all I do is move the b=AS:1500 line to go just below the video c=IN line, and add ONE carriage return at the end of the file.
This results in the following file, which is able to create SAPs that 0.9.4 (and 0.8.6) detect and play the video.
v=0
o=- 82811671 82811671 IN IP4 127.0.0.0
s=Wirecast
t=0 0
a=range:npt=now-
m=audio 5432 RTP/AVP 96
c=IN IP4 233.88.214.139/99/1
a=rtpmap:96 mpeg4-generic/44100/2
a=fmtp:96 profile-level-id=15;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3;config=1210
m=video 5434 RTP/AVP 97
c=IN IP4 233.88.214.139/99/1
b=AS:1500
a=rtpmap:97 H264/90000
a=fmtp:97 packetization-mode=1;profile-level-id=4D401E;sprop-parameter-sets=J01AHqkYFAe2ANQYBBrbCte98BA=,KN4JF6A=
a=cliprect:0,0,480,640
a=framesize:97 640-480
There are two settings in VCL under Services discovery, SAP
1) Try to parse announcement (default is on). The SAP module in VLC parses announcement, otherwise parsed by the "live555" (RTP/RTSP) module.
2) SAP strict mode (default is off). SAP parser will discard some non-compliant announcements.
It does not make any difference what the settings are, after the changes are made in the SDP, the SAP always works.
It appears that either Wirecast or VLC does not follow the SDP RFC
http://www.ietf.org/rfc/rfc2327.txt
But I have not waded through it yet...Would anyone know which app is out of spec here?
Also, why is the new VLC so fussy with SAPs, the old one worked fine!