使用Chrome开发者模式查看交互信息
1\janus会话创建
Web POST 请求, url: https://192.168.150.129:8089/janus:
{"janus":"create","transaction":"lvTrDkACdFpK"}
http/janus响应:
{
"janus": "success",
"transaction": "lvTrDkACdFpK",
"data": {
"id": 2649662083540015
}
}
2\janus加入插件的功能
Web POST请求, url: https://192.168.150.129:8089/janus/2649662083540015
{"janus":"attach","plugin":"janus.plugin.streaming","opaque_id":"streamingtest-lrYUFNyxDXFQ","transaction":"65KV726UrVOi"}
http\janus 服务响应
{
"janus": "success",
"session_id": 2649662083540015,
"transaction": "65KV726UrVOi",
"data": {
"id": 2293768349424026
}
}
3\ Streaming列出媒体表
Web POST请求, url: https://192.168.150.129:8089/janus/2649662083540015/2293768349424026
{"janus":"message","body":{"request":"list"},"transaction":"37blLcWAGS5f"}
http\janus 服务响应
{
"janus": "success",
"session_id": 2649662083540015,
"transaction": "37blLcWAGS5f",
"sender": 2293768349424026,
"plugindata": {
"plugin": "janus.plugin.streaming",
"data": {
"streaming": "list",
"list": [
{
"id": 2,
"description": "a-law file source (radio broadcast)",
"type": "live"
},
{
"id": 99,
"description": "RTSP Test",
"type": "live",
"video_age_ms": 6
},
{
"id": 3,
"description": "mu-law file source (music)",
"type": "on demand"
}
]
}
}
}
4\ 服务端开始观看前SDP协商Offer
Web GET请求, https://192.168.150.129:8089/janus/2649662083540015?rid=1574143887540&maxev=10
http\janus 服务响应, 稍后再步骤5\异步通知事件
[
{
"janus": "event",
"session_id": 2649662083540015,
"transaction": "8cvaaeTLaJmO",
"sender": 2293768349424026,
"plugindata": {
"plugin": "janus.plugin.streaming",
"data": {
"streaming": "event",
"result": {
"status": "preparing"
}
}
},
"jsep": {
"type": "offer",
"sdp": "v=0\r\no=- 1574143893059203 1 IN IP4 192.168.150.129\r\ns=Mountpoint 99\r\nt=0 0\r\na=group:BUNDLE video\r\na=msid-semantic: WMS janus\r\nm=video 9 UDP/TLS/RTP/SAVPF 96\r\nc=IN IP4 192.168.150.129\r\na=sendonly\r\na=mid:video\r\na=rtcp-mux\r\na=ice-ufrag:09C1\r\na=ice-pwd:mSyI4N6tLw/zz7c9CI8L7X\r\na=ice-options:trickle\r\na=fingerprint:sha-256 9B:E2:57:36:09:69:63:CE:E5:D4:25:47:7E:5F:62:F2:B6:47:CC:0A:15:79:04:6C:E0:FE:B1:7C:44:0B:8E:34\r\na=setup:actpass\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=rtcp-fb:96 goog-remb\r\na=ssrc:304597347 cname:janus\r\na=ssrc:304597347 msid:janus janusv0\r\na=ssrc:304597347 mslabel:janus\r\na=ssrc:304597347 label:janusv0\r\na=candidate:1 1 udp 2013266431 192.168.150.129 49183 typ host\r\na=end-of-candidates\r\n"
}
}
]
5\ Streaming观看
Web POST请求, url: https://192.168.150.129:8089/janus/2649662083540015/2293768349424026
{janus: "message", body: {request: "watch", id: 99}, transaction: "8cvaaeTLaJmO"}
http\janus 服务响应, 在4\的get中以事件形式通知SDP Offer
{
"janus": "ack",
"session_id": 2649662083540015,
"transaction": "8cvaaeTLaJmO"
}
6\ 服务端准备完毕事件通知
Web Get请求, url: https://192.168.150.129:8089/janus/2649662083540015?rid=1574143893080&maxev=10
http\janus 服务异步响应, 再7\的SDP Answer到达后,响应
[
{
"janus": "event",
"session_id": 2649662083540015,
"transaction": "LSuATmfMEdKn",
"sender": 2293768349424026,
"plugindata": {
"plugin": "janus.plugin.streaming",
"data": {
"streaming": "event",
"result": {
"status": "starting"
}
}
}
}
]
7\ Streaming播放前SDP协商Answer
Web POST请求, url: https://192.168.150.129:8089/janus/2649662083540015/2293768349424026
{"janus":"message","body":{"request":"start"},"transaction":"LSuATmfMEdKn","jsep":{"type":"answer","sdp":"v=0\r\no=- 4596281032118854846 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE video\r\na=msid-semantic: WMS\r\nm=video 9 UDP/TLS/RTP/SAVPF 96\r\nc=IN IP4 0.0.0.0\r\na=rtcp:9 IN IP4 0.0.0.0\r\na=ice-ufrag:Dhs2\r\na=ice-pwd:y49PtYNCwa+aRHCxeY7hPPqM\r\na=ice-options:trickle\r\na=fingerprint:sha-256 9F:EA:86:06:28:E3:33:8C:C7:E3:EE:49:74:AE:DB:49:D9:E0:54:91:F0:5B:48:9D:DE:82:44:4D:B7:31:1B:34\r\na=setup:active\r\na=mid:video\r\na=recvonly\r\na=rtcp-mux\r\na=rtpmap:96 H264/90000\r\na=rtcp-fb:96 goog-remb\r\na=rtcp-fb:96 nack\r\na=rtcp-fb:96 nack pli\r\na=fmtp:96 level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f\r\n"}}
http\janus 服务响应, 并异步响应7\中GET
{
"janus": "ack",
"session_id": 2649662083540015,
"transaction": "LSuATmfMEdKn"
}
8\Streaming ICE候选
Web POST请求, url: https://192.168.150.129:8089/janus/2649662083540015/2293768349424026
{"janus":"trickle","candidate":{"candidate":"candidate:3427802155 1 udp 2113937151 10.12.3.13 49684 typ host generation 0 ufrag Dhs2 network-cost 999","sdpMid":"video","sdpMLineIndex":0},"transaction":"aWy9aj35E9yH"}
http\janus 服务响应,
{
"janus": "ack",
"session_id": 2649662083540015,
"transaction": "aWy9aj35E9yH"
}
9\ Streaming ICE结束
Web POST请求, url: https://192.168.150.129:8089/janus/2649662083540015/2293768349424026
{"janus":"trickle","candidate":{"completed":true},"transaction":"iSRlmOPQCNp4"}
http\janus 服务响应,
{
"janus": "ack",
"session_id": 2649662083540015,
"transaction": "iSRlmOPQCNp4"
}
10\ 服务端开始播放响应
Web Get请求, url:https://192.168.150.129:8089/janus/2649662083540015?rid=1574143893184&maxev=10
http\janus 服务异步响应, 在步骤8\收到后, 建立ICE通道后响应
[
{
"janus": "event",
"session_id": 2649662083540015,
"sender": 2293768349424026,
"plugindata": {
"plugin": "janus.plugin.streaming",
"data": {
"streaming": "event",
"result": {
"status": "started"
}
}
}
},
{
"janus": "webrtcup",
"session_id": 2649662083540015,
"sender": 2293768349424026
}
]
11\保活
Web Get请求, url: https://192.168.150.129:8089/janus/2649662083540015?rid=1574142534796&maxev=10
http\janus 服务异步响应,
[
{
"janus": "keepalive"
}
]
12\注销
Web POST请求, url: https://192.168.150.129:8089/janus/2649662083540015/2293768349424026
{"janus":"destroy","transaction":"t2pbnnPlQEQH"}