資源簡介
按照GBT28181標準,基于osip協議棧,使用osip庫和eXosip庫實現的sip客戶端,包括注冊、心跳包、MESSAGE消息、Invite請求處理等GB28181基本功能的實現
代碼片段和文件信息
#include?
#include?“ctrl.h“
#include?
#include?
#include?
#include?
#include?
#include?“demo.h“
#include?“h264.h“
MEDIA_PARA?media_para;
/*設備控制:向左、向右、向上、向下、放大、縮小、停止遙控/開始手動錄像、停止手動錄像/布防、撤防/報警復位/設備遠程啟動*/
/*ctrl_cmd:設備控制命令,_device_control類型的枚舉變量*/
/*返回值:成功時返回0,失敗時返回負值*/
int?dt_eXosip_deviceControl(enum?_device_control?ctrl_cmd)
{
return?0;
}
DWORD?WINAPI?SendRtpProc(LPVOID?lp)
{
SOCKET?socket_cli;
SOCKADDR_IN?addrser;//Initialize?Win?Socket
sockaddr_in?addrMe;?//源端口和地址
NALU_t?*?n?=?NULL;
char?sendbuf[MAXDATASIZE];
RTP_HEADER??*?rtp_hdr?=?NULL?;
int?pocket_number??=?0;???//包號
int?frame_number?=?0;?????//幀號
int?total_sent?=?0;???????//已經發送的總共數據
NALU_HEADER?*?nalu_hdr?=?NULL;
char*?nalu_payload?=?NULL;?
int??bytes?=?0;???????????//一次發送的數據
//unsigned?int?sequence?=?65536;
int?timestamp?=?0;
FU_INDICATOR??*fu_ind?=?NULL?;
FU_HEADER ??*fu_hdr?=?NULL?;
MEDIA_PARA?*pMedia_para?=?(MEDIA_PARA?*)lp;
//創建socket套接字
addrMe.sin_family?=?AF_INET;
addrMe.sin_port?=?htons(atoi(device_info.ipc_media_port));//1001你的端口號
addrMe.sin_addr.s_addr?=?INADDR_ANY;?
socket_cli=?socket(AF_INET?SOCK_DGRAM/*UDP協議的是流式*/0);
addrser.sin_addr.S_un.S_addr?=inet_addr(pMedia_para->media_ip);
addrser.sin_family?=?AF_INET;
addrser.sin_port?=?htons(atoi(pMedia_para->media_port));???????//網絡字節序
????bind(socket_cli?(struct?sockaddr*)&addrMe?sizeof(addrMe));
OpenBitstreamFile(inputfilename);?????????//打開本地要傳輸的文件
n?=?AllocNALU(8000000);???????????????????//分配nal?資源
while(!feof(pinfile)?&&?g_did_realPlay>0)?????????????????????//如果未到文件結尾
{
GetAnnexbNALU(n);?
//? dbg(“NALU---?forbidden_bit????????:?????%d\n“?n->forbidden_bit);
//? dbg(“NALU---?nal_reference_idc????:?????%d\n“?n->nal_reference_idc);
//? dbg(“NALU---?Type?????????????????:?????%d\n“?n->nal_unit_type);
//? dbg(“NALU---?startcodeprefix_len??:?????%d\n“?n->startcodeprefix_len);
? dbg(“NALU---?len??????????????????:?????%d\n“?n->len);
? dbg(“NALU---?max_size?????????????:?????%d\n“?n->max_size);
memset(sendbuf0MAXDATASIZE);
rtp_hdr?=(RTP_HEADER*)&sendbuf[0];????????????
rtp_hdr->payloadtype?????=?H264; //Payload?type
rtp_hdr->version?????????=?2;???????????????????????????????//Payload?version
rtp_hdr->marker??????????=?0; ????//Marker?sign
rtp_hdr->ssrc????????????=?999999999; ????????????????????//幀數
rtp_hdr->timestamp?=?htonl(timestamp);
if?(n->len?1400)??????????????????????????????????????????//打單包
{
if(n->buf[3]?==?0xC0)
??????rtp_hdr->marker?=?1;
else
??rtp_hdr->marker?=?0;
rtp_hdr->seq_no?=?htons(pocket_number++);?
nalu_payload?=?&sendbuf[12];???????????
memcpy(nalu_payloadn->bufn->len);?
rtp_hdr->timestamp?=?htonl(timestamp);
bytes?=?n->len?+?12; ?
Sleep(40);
sendto(socket_clisendbufbytes0(SOCKADDR?*)&addrsersizeof(SOCKADDR));???
total_sent?+=?
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-10-16?15:00??SipClientC\
?????目錄???????????0??2018-10-10?11:08??SipClientC\.vs\
?????目錄???????????0??2018-10-10?11:08??SipClientC\.vs\SipClient\
?????目錄???????????0??2018-10-10?11:08??SipClientC\.vs\SipClient\v14\
?????文件??????133632??2018-10-11?10:10??SipClientC\.vs\SipClient\v14\.suo
?????文件??????675876??2018-05-17?13:15??SipClientC\1.264
?????文件?????2205983??2018-05-17?13:15??SipClientC\3.ps
?????目錄???????????0??2018-10-11?10:09??SipClientC\Debug\
?????文件??????675876??2018-05-17?13:15??SipClientC\Debug\1.264
?????文件?????2205983??2018-05-17?13:15??SipClientC\Debug\3.ps
?????文件??????420864??2018-05-17?13:15??SipClientC\Debug\eXosip.dll
?????文件??????530432??2018-05-17?13:15??SipClientC\Debug\GLC_Encap.dll
?????文件?????1177088??2018-05-17?13:15??SipClientC\Debug\libeay32.dll
?????文件???????90112??2018-05-17?13:15??SipClientC\Debug\osip2.dll
?????文件??????196096??2018-05-17?13:15??SipClientC\Debug\osipparser2.dll
?????文件??????269824??2018-05-17?13:15??SipClientC\Debug\ssleay32.dll
?????文件?????1919398??2018-05-17?13:16??SipClientC\Debug\test.ps
?????文件??????458840??2018-05-17?13:15??SipClientC\Debug\Transform.dll
?????目錄???????????0??2018-10-10?11:08??SipClientC\dll\
?????文件??????675876??2018-05-17?13:16??SipClientC\dll\1.264
?????文件?????2205983??2018-05-17?13:16??SipClientC\dll\3.ps
?????文件??????420864??2018-05-17?13:16??SipClientC\dll\eXosip.dll
?????文件??????530432??2018-05-17?13:16??SipClientC\dll\GLC_Encap.dll
?????文件?????1177088??2018-05-17?13:16??SipClientC\dll\libeay32.dll
?????文件???????90112??2018-05-17?13:16??SipClientC\dll\osip2.dll
?????文件??????196096??2018-05-17?13:16??SipClientC\dll\osipparser2.dll
?????文件??????269824??2018-05-17?13:16??SipClientC\dll\ssleay32.dll
?????文件?????1919398??2018-05-17?13:16??SipClientC\dll\test.ps
?????文件??????458840??2018-05-17?13:16??SipClientC\dll\Transform.dll
?????目錄???????????0??2018-10-10?11:08??SipClientC\include\
?????目錄???????????0??2018-10-10?11:08??SipClientC\include\eXosip2\
............此處省略185個文件信息
- 上一篇:USB顯微鏡驅動
- 下一篇:計算機組織與體系結構性能設計第6版.pdf
評論
共有 條評論