资源简介
主要演示了RTSP的各种协议指令的使用,并能正常播放音频与视频。
代码片段和文件信息
#ifdef _WIN32_WCE
#include “stdafx.h“
#endif
#ifndef _WIN32_WCE
#define WIN32_LEAN_AND_MEAN
#endif
#include
#include
#include
#include
#include
#include
#include
#ifdef _WIN32_WCE
#pragma comment(lib “ws2.lib“)
#else
#pragma comment(lib “ws2_32.lib“)
#endif
#define PP_NAME “User-Agent: Master 1.0\r\nPrivate: NOTIFY“
#define PP_NAME1 “User-Agent: Master 1.0“
#define PP_CRLF “\r\n“
//测试之用
//打开连接
long InitSocket();
//关闭连接
long DeInitSocket();
//初始化tcp socket
long InitTCPSocket(int port);
//初始化udp socket
long InitUDPSocket(const char *ip int port);
//取socket端口号
long GetSokcetPort(int sock int *port);
//读取数据
long ReadSocket(int sock char *buf int len int timeout);
//发送命令数据
long SendRTSPCmd(int sock const char *cmd const char *szparam);
//解析rtsp命令回应数据
long PraseRTSPCmd();
long PraseOptionCmd(const char *sz);
long PraseDescribeCmd(const char *sz);
long PraseSetupCmd(const char *sz char *sess);
long PrasePlayCmd(const char *sz);
long GetResponseCode(const char *sz); //取返回值
//////////////////////////////////////////////////////////////////////////
//字符串操作函数
static char* getLine(char* startOfLine);
//生成rtsp发送命令
char * GetRTSPCmd(const char *);
char * GetOptionCmd(char *url);
char * GetDescribeCmd(char *url);
char * GetPlayCmd(char *url char *session char *range);
char * GetSetupCmd(char *url int port1 int port2);
char * GetReportCmd(char *);
//////////////////////////////////////////////////////////////////////////
//日志函数
long logwr(void * int len);
//全局变量定义区
fd_set rfdsock;
//日志写入文件指针
FILE *fp = NULL;
//
//////////////////////////////////////////////////////////////////////////
//rtsp请求解析
long PraseURL(const char *url char *szip int *iport);
int _tmain(int argc _TCHAR* argv[])
{
int sockin sc1 sc2;
sockaddr_in addr;
char *buf *szcmd *url*strUrl;
char szip[32]={0};
int nlen iret iport;
int ip1 ip2;
long lret;
//初始化变量
FD_ZERO(&rfdsock);
fp = fopen(“1.txt“ “w+“);
//分配缓冲区
nlen = 10240;
buf = (char*)malloc(nlen);
strUrl=(char*)malloc(300);
memset(strUrl0300);
memset(buf010240);
//定义要连接的url
//url = “rtsp://192.168.1.43:2554/realmp3.mp3“;
url = “rtsp://192.168.0.111:80/“;
//url = “rtsp://192.168.1.43/1.amr“;
//初始化sock
long lRet=InitSocket();
//分析url请求,取出ip,端口
lret = PraseURL(url szip &iport);
sprintf(strUrl“rtsp://admin:123456@%s:%i/vga.sdp“szip iport);
//初始化与服务器连接的socket
sockin = InitTCPSocket(0);
//与服务器连接
addr.sin_family = AF_INET;
addr.sin_port = htons(iport);
addr.sin_addr.s_addr = inet_addr(szip);
iret = connect(sockin(struct sockaddr*)&addr sizeof addr);
//发送option命令
szcmd = GetOptionCmd(url);
lret = SendRTSPCmd(sockin “OPTIONS“szcmd);
free(szcmd);
lret = ReadSocket(sockin buf nlen100);
//发送DESCRIBE命令
szcmd = GetDescr
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 14163 2012-01-06 16:33 Rtsp.cpp
----------- --------- ---------- ----- ----
14163 1
- 上一篇:语音频谱分析程序
- 下一篇:需求工程--软件建模与分析 期末复习题
相关资源
- 摄像机与VLC RTSP协议抓包分析
- ONVIF工具获取摄像头的RTSP取流地址
- vlc插件 for unity 5x以上版本
- 基于RTPRTCP和RTSP协议的流媒体快速流间
- RTSP/RTP 嵌入式流媒体服务器的实现
- RTSP 协议的中文版
- live555 的openRTSP 改写
- h5无插件 RTSP 摄像头在线播放代码2
- rtsp tcp获取h264裸码流
- RtspServerForHisiv500
- Qt版的Rtsp客户端 源代码
- 基于Live555的从多个摄像头实时获取
- 最简RTSP客户端程序
- rocon_devices_kinetic
- rtsp协议详解中文.pdf
- 如何实现最小的RTSP服务器
- VS2017下用OpenCV实时播放RTSP视频流并截
- Rtsp流媒体PC端和手机网页直播代码
- rtsp解析实现音视频实时传输
- Live555基于h264嵌入式linux下rtsp项目的裁
- QT编写的RTSP播放器各QT版本可完整编译
- onvif设备发现+鉴权认证+RTSP地址获取
- RTSPVGA录制,以及推流小工具
- 基于easydarwin实现rtsp拉流新
- RTSP服务器及客户端测试源代码
- 海思hi3520 rtsp源码
- RTSP Server and Client
- RtspServer实现的源码
- onvif模拟摄像机可模拟多路
- ONVIF协议实现搜索局域网IPC设备+RTSP地
评论
共有 条评论