实时视频点播是IPC设备接入平台的最主要的功能,平台向设备获取流媒体的过程就是这个过程,设备收到这个点播请求,在交互完成会向平台推送音视频流媒体。
1. 实时点播是由SIP服务器向IPC发起的音视频点播业务,SIP协议的SDP消息体如下:
v=0
o=340200000020200000010 0 IN IP4 192.168.1.154
s=Play
c=IN IP4192.168.1.154
t=0 0
m=video 6000RTP/AVP 96 98 97
a=recvonly
a=rtpmap:96PS/90000
a=rtpmap:98H264/90000
a=rtpmap:97MPEG4/90000
y=0100000001
f=
说明:
这个是由SIP服务器的网页端发起的,s=Play要求播放实时数据,
m=video 6000RTP/AVP 96 98 97
6000为视频流媒体的输入端口,目前虽然写了三个流媒体格式,但是经过测试,
只有发送PS流数据才会有音视频播放。
2. IPC收到实时播放请求后,向SIP服务器发送了100 Trying和200OK带有SDP协议的应答信息:
v=0
o=340200000013200000010 0 IN IP4 192.168.1.164
s=IPC
c=IN IP4 192.168.1.164
t=0 0
m=video 20000RTP/AVP 96 98 97
a=sendonly
a=rtpmap:96PS/90000
a=rtpmap:98H264/90000
a=rtpmap:97MPEG4/90000
a=username:34020000001320000001
a=password:12345678
y=00000000
f=
说明:
o表示IPC的ID,IP4为IPC的IP地址
m=video 20000 RTP/AVP 96 98 97
20000端口为IPC的UDP流媒体发送端口,我们是PS流,承载类型为96。
a=username:34020000001320000001 IPC的ID
a=password:12345678 IPC的密码
y=00000000 RTP中SSRC的值
3.当SIP服务器收到了IPC发送的200OK带有SDP协议的数据包之后,将会恢复一个ACK应答的信号。表示IPC可以向其发送流媒体数据了。
4. IPC由20000端口向SIP服务器6000端口发送已经编码好的音视频数据。
SIP交互数据(三次数据交互):
INVITE sip:34020000001320000001@3402000000SIP/2.0
Call-ID: [email protected]
CSeq: 1 INVITE
From:
To:
Max-Forwards: 70
Contact: "34020000002000000001"
Content-Type: application/sdp
Route:
Via: SIP/2.0/UDP192.168.1.154:5060;branch=z9hG4bK41afe263-c634-4962-916c-579a717a3435_53173353_10881735497947
Content-Length: 225
v=0
o=34020000002020000001 0 0 IN IP4192.168.1.154
s=Play
c=IN IP4 192.168.1.154
t=0 0
m=video 6000 RTP/AVP 96 98 97
a=recvonly
a=rtpmap:96 PS/90000
a=rtpmap:98 H264/90000
a=rtpmap:97 MPEG4/90000
y=0100000001
f=
SIP/2.0 200 OK
Via: SIP/2.0/UDP192.168.1.154:5060;branch=z9hG4bK41afe263-c634-4962-916c-579a717a3435_53173353_10881735497947
From:
To:
Call-ID: [email protected]
CSeq: 1 INVITE
Contact:
Content-Type: application/sdp
User-Agent: IPC v1.0
Content-Length: 279
v=0
o=34020000001320000001 0 0 IN IP4192.168.1.168
s=IPC
c=IN IP4 192.168.1.168
t=0 0
m=video 20000 RTP/AVP 96 98 97
a=sendonly
a=rtpmap:96 PS/90000
a=rtpmap:98 H264/90000
a=rtpmap:97 MPEG4/90000
a=username:34020000001320000001
a=password:12345678
y=00000000
f=
ACKsip:[email protected]:5060 SIP/2.0
Call-ID: [email protected]
CSeq: 1 ACK
From:
To:
Max-Forwards: 70
Via: SIP/2.0/UDP192.168.1.154:5060;branch=z9hG4bK41afe263-c634-4962-916c-579a717a3435_53173353_10891817248002
Content-Length: 0