资源简介
主要演示了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
- 上一篇:语音频谱分析程序
- 下一篇:需求工程--软件建模与分析 期末复习题
相关资源
- onvif协议视频转码推流网页播放
- 流媒体相关协议标准RTP/RTSP/RTCP PDF文档
- H264实时编码RTSP直播
- 将rtsp转码为flv格式用于h5播放前端使
- rtsp-h264.zip
- websocket-rtsp-proxy-test.zip
- MP4v2录制rtsp流存为MP4文件
- rtsp摄像头推流上云使用浏览器播放
-
ijkpla
yer 最新rtsp .ts so库 - rtsp大全
- rtsp视频组帧(tcp和udp)
-
能够播放rtsp的ijkpla
yer动态库 - qt5.8实现rtsp流播放
- RtspRtcpRtpLoad_h264.tar.gz
- live555通过VS2013编译,自己整理的,附
- 简单的RTSP RTP RTCP推送H264码流服务器实
- 支持高版本谷歌播放rtsp的插件vxg me
- rtsp 服务器代码,VC可编译使用,RTS
- RTSP流媒体客户端播放器demo
- FLV测试文件,亲身验证,用过VLC可以
- RTSP_RFC2326(中文版).pdf
- zw_csharp_ffmpeg_rtsp_demo.zip
- h264码流rtp传输demo
- ActiveX RTSP实时流媒体播放器 支持录像
- onvif rtsp流对接
- VLC播放RTSP流
- 获取摄像头ip与视频流
- rtsp_server C 源码详解与分析
- live555 RTSP RTCP RTP。live555类关系图,
- A10-rtsph264_硬件编码.zip
评论
共有 条评论