欢迎来到天天文库
浏览记录
ID:37924624
大小:139.00 KB
页数:11页
时间:2019-06-02
《H264云台型网络摄像机学习》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、H264云台型网络摄像机学习RTSP交互过程C表示rtsp客户端,S表示rtsp服务端1.C->S:OPTION request//询问S有哪些方法可用 1.S->C:OPTIONresponse//S回应信息中包括提供的所有可用方法 2.C->S:DESCRIBE request//要求得到S提供的媒体初始化描述信息 2.S->C:DESCRIBEresponse//S回应媒体初始化描述信息,主要是sdp 3.C->S:SETUP request//设置会话的属性,以及传输模式,提醒S建立会话 3.S->C:SETUPresponse//S建立会话,返回会话标
2、识符,以及会话相关信息 4.C->S:PLAY request//C请求播放 4.S->C:PLAYresponse//S回应该请求的信息 S->C:发送流媒体数据5.C->S:TEARDOWN request//C请求关闭会话 5.S->C:TEARDOWNresponse//S回应该请求 RTSP连接、断开、视频播放、停止的工具类文件/**RTSPVideoUtil.h**Createdon:2012-10-4*/#include#include#include#include3、et.h>#include#include"include/rtppackage.h"#include"include/type.h"#include"include/DecodeFrame.h"//全局变量JNIEnv*env_play;intrtsp_Socket=-1;intsize=1024;intmWidth=352,mHeight=288;//显示视频屏幕大小charSession[100];uint8_tvideoDecodeData[352*288*2];//视频数据缓冲,使其与mWidth、mHeight相同jbyteAr4、rayjarrayVideo;char*IP;intPort;/***RTSP连接*返回0,连接失败;返回1,连接成功*/intgetConnectRTSP(char*ip,intport){//LOGD("begintoconnectrtsp");charszResponse[1024];charszSendBuf[1024];intnRet=0;intnTimeOut=5000;IP=ip;Port=port;setsockopt(rtsp_Socket,SOL_SOCKET,SO_RCVTIMEO,(char*)&nTimeOut,sizeof(nTi5、meOut));rtsp_Socket=socket(AF_INET,SOCK_STREAM,0);//创建socketif(rtsp_Socket<0){//告诉Java创建Sock失败return0;}//Socket连接structsockaddr_inaddrSrv;addrSrv.sin_addr.s_addr=inet_addr(ip);addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(port);if(-1==connect(rtsp_Socket,(structsockaddr*)&addrSrv6、,sizeof(structsockaddr))){//告诉Java创建Sock失败LOGD("Connect失败");close(rtsp_Socket);rtsp_Socket=-1;return0;}//OPTIONS方法charlstrOptions[1024]="OPTIONSrtsp://%s:%d/H264RTSP/1.0r""CSeq:1r""r";sprintf(szSendBuf,lstrOptions,ip,port);nRet=send(rtsp_Socket,szSendBuf,1024,0);if(nRet==-7、1){return0;}LOGD("send1nRet=%d,buf=%s",nRet,szSendBuf);memset(szResponse,0,sizeof(szResponse));nRet=recv(rtsp_Socket,&szResponse[0],1024,0);LOGD("recv1nRet=%d,response=%s",nRet,szResponse);if(nRet==-1){return0;}//DESCRIBE方法charlstrDescribe[1024]="DESCRIBErtsp://%s:%d/H264RTSP/1.0r8、""CSeq:2r
3、et.h>#include#include"include/rtppackage.h"#include"include/type.h"#include"include/DecodeFrame.h"//全局变量JNIEnv*env_play;intrtsp_Socket=-1;intsize=1024;intmWidth=352,mHeight=288;//显示视频屏幕大小charSession[100];uint8_tvideoDecodeData[352*288*2];//视频数据缓冲,使其与mWidth、mHeight相同jbyteAr
4、rayjarrayVideo;char*IP;intPort;/***RTSP连接*返回0,连接失败;返回1,连接成功*/intgetConnectRTSP(char*ip,intport){//LOGD("begintoconnectrtsp");charszResponse[1024];charszSendBuf[1024];intnRet=0;intnTimeOut=5000;IP=ip;Port=port;setsockopt(rtsp_Socket,SOL_SOCKET,SO_RCVTIMEO,(char*)&nTimeOut,sizeof(nTi
5、meOut));rtsp_Socket=socket(AF_INET,SOCK_STREAM,0);//创建socketif(rtsp_Socket<0){//告诉Java创建Sock失败return0;}//Socket连接structsockaddr_inaddrSrv;addrSrv.sin_addr.s_addr=inet_addr(ip);addrSrv.sin_family=AF_INET;addrSrv.sin_port=htons(port);if(-1==connect(rtsp_Socket,(structsockaddr*)&addrSrv
6、,sizeof(structsockaddr))){//告诉Java创建Sock失败LOGD("Connect失败");close(rtsp_Socket);rtsp_Socket=-1;return0;}//OPTIONS方法charlstrOptions[1024]="OPTIONSrtsp://%s:%d/H264RTSP/1.0r""CSeq:1r""r";sprintf(szSendBuf,lstrOptions,ip,port);nRet=send(rtsp_Socket,szSendBuf,1024,0);if(nRet==-
7、1){return0;}LOGD("send1nRet=%d,buf=%s",nRet,szSendBuf);memset(szResponse,0,sizeof(szResponse));nRet=recv(rtsp_Socket,&szResponse[0],1024,0);LOGD("recv1nRet=%d,response=%s",nRet,szResponse);if(nRet==-1){return0;}//DESCRIBE方法charlstrDescribe[1024]="DESCRIBErtsp://%s:%d/H264RTSP/1.0r
8、""CSeq:2r
此文档下载收益归作者所有