中国品牌网官方网站,中国建筑集团有限公司董事长,免费的网站推广软件,中国商标网官方查询网站要求
SIP服务器接收到媒体接收者发送的视音频文件下载请求后向媒体流发送者发送媒体文件下载命令#xff0c;媒体流发送者采用RTP将视频流传输给媒体流接收者#xff0c;媒体流接收者直接将视频流保存为媒体文件#xff1b;媒体流接收者或SIP服务器可通过配置查询等方式获取…要求
SIP服务器接收到媒体接收者发送的视音频文件下载请求后向媒体流发送者发送媒体文件下载命令媒体流发送者采用RTP将视频流传输给媒体流接收者媒体流接收者直接将视频流保存为媒体文件媒体流接收者或SIP服务器可通过配置查询等方式获取媒体流发送者支持的下载发送倍速并在请求的SDP消息体中携带下载倍速视音频文件下载宜支持媒体流保活机制
流程 录像下载的流程与录像点播、录像回放类似主要区别为INVITE请求时xml格式有差异
实时点播
关于实时点播可查看
实时点播信令处理https://blog.csdn.net/www_dong/article/details/132950064 实时点播数据处理https://blog.csdn.net/www_dong/article/details/133581370
注意
“t0 0”中开始时间和结束时间均为0表示实时点播sPlay“
static std::string CreateRealStreamSDP(const GB28181MediaContext mediaContext)
{char str[500] { 0 };pj_ansi_snprintf(str, 500,v0\no%s 0 0 IN IP4 %s\nsPlay\ncIN IP4 %s\nt0 0\nmvideo %d RTP/AVP 96 98 97\narecvonly\nartpmap:96 PS/90000\nartpmap:98 H264/90000\nartpmap:97 MPEG4/90000\ny001\n,mediaContext.GetDeviceId().c_str(),mediaContext.GetRecvAddress().c_str(),mediaContext.GetRecvAddress().c_str(),mediaContext.GetRecvPort());return str;
}录像回放
历史视音频回放https://blog.csdn.net/www_dong/article/details/133826739
注意
“t%lld %lld”中开始时间和结束时间为点播的开始时间和结束时间“sPlayback”
static std::string CreatePlayBackSDP(const GB28181MediaContext mediaContext)
{char str[500] { 0 };pj_ansi_snprintf(str, 500,v0\no%s 0 0 IN IP4 %s\nsPlayback\ncIN IP4 %s\nt%lld %lld\nmvideo %d RTP/AVP 96 98 97\narecvonly\nartpmap:96 PS/90000\nartpmap:98 H264/90000\nartpmap:97 MPEG4/90000\ny001\n,mediaContext.GetDeviceId().c_str(),mediaContext.GetRecvAddress().c_str(),mediaContext.GetRecvAddress().c_str(),mediaContext.GetPBStartTime(),mediaContext.GetPBEndTime(),mediaContext.GetRecvPort());return str;
}录像下载
注意
“t%lld %lld”中开始时间和结束时间为需要下载文件的开始时间和结束时间“sDownload”adownloadspeed:8表示8倍速下载
static std::string CreateSDPForDownload(const GB28181MediaContext mediaContext){char str[500] { 0 };pj_ansi_snprintf(str, 500,v0\no%s 0 0 IN IP4 %s\nsDownload\ncIN IP4 %s\nt%lld %lld\nmvideo %d RTP/AVP 96 98 97\narecvonly\nartpmap:96 PS/90000\nartpmap:98 H264/90000\nartpmap:97 MPEG4/90000\nadownloadspeed:%d\ny0100000001\n,mediaContext.GetDeviceId().c_str(),mediaContext.GetRecvAddress().c_str(),mediaContext.GetRecvAddress().c_str(),mediaContext.GetDownloadStartTime(),mediaContext.GetDownloadEndTime(),mediaContext.GetRecvPort(),mediaContext.GetDownloadSpeed());return str;}抓包 查询历史视音频文件查询结果如图所示 选中一条文件记录右键选择录像下载弹出如下界面 选择8倍速点击开始下载向设备发送下载请求
INVITE sip:xxx192.168.0.111:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.107:5060;rport;branchxxx
Max-Forwards: 70
From: sip:xxx192.168.0.107;tagxxx
To: sip:xxx192.168.0.111
Contact: sip:xxx192.168.0.107:5060
Call-ID: xxx
CSeq: 15724 INVITE
Allow: SUBSCRIBE, NOTIFY, INVITE, ACK, BYE, CANCEL, UPDATE
Supported:
Subject: xxx:xx,xxx:xx
Content-Type: application/sdp
Content-Length: 251v0
oxxx 0 0 IN IP4 192.168.0.107
sDownload
cIN IP4 192.168.0.107
t1697955233 1697958114 # 下载的文件开始时间和结束时间
mvideo 36000 RTP/AVP 96 98 97
arecvonly
artpmap:96 PS/90000
artpmap:98 H264/90000
artpmap:97 MPEG4/90000
adownloadspeed:8 # 8倍速下载
y001设备返回下载请求结果
# 100 Trying
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.0.107:5060;rport5060;branchxxx
From: sip:xxx192.168.0.107;tagxxx
To: sip:xxx192.168.0.111
Call-ID: xxx
CSeq: 15724 INVITE
User-Agent: IP Camera
Content-Length: 0# 200 OK
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.107:5060;rport5060;branchxxx
From: sip:xxx192.168.0.107;tagxxx
To: sip:xxx192.168.0.111;tag904233038
Call-ID: xxx
CSeq: 15724 INVITE
Contact: sip:xxx192.168.0.111:5060
Content-Type: application/sdp
User-Agent: IP Camera
Content-Length: 198v0
oxxx 2131 2131 IN IP4 192.168.0.111
sDownload
cIN IP4 192.168.0.111
t0 0
mvideo 15060 RTP/AVP 96
asendonly
artpmap:96 PS/90000
afilesize:62224924 # 请求的文件大小
y001接收数据 文件下载结束通知
当接收到MediaStatus命令且NotifyType为121是表示历史媒体文件发送结束。 抓包如下所示
MESSAGE sip:xxx192.168.0.107:5060 SIP/2.0
Via: SIP/2.0/UDP 192.168.0.111:5060;rport;branchxxx
From: sip:xxx192.168.0.111;tagxxx
To: sip:xxx192.168.0.107;tagxxx
Call-ID: xxx
CSeq: 2 MESSAGE
Contact: sip:xxx192.168.0.111:5060
Content-Type: Application/MANSCDPxml
Max-Forwards: 70
User-Agent: IP Camera
Content-Length: 174?xml version1.0 encodingGB2312?
Notify
CmdTypeMediaStatus/CmdType
SN151/SN
DeviceIDxxx/DeviceID
NotifyType121/NotifyType
/Notify下载的文件如下