自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

莫问收获、敢问耕耘

相持未定各为君 秦政山河此地分 力尽乌江千载后 古沟芳草起寒云

  • 博客(97)
  • 资源 (15)
  • 问答 (1)
  • 收藏
  • 关注

原创 VS远程调试之Remote Debugger

1、  拷贝Remote Debugger(对应程序在多少位机器上编译即使用多少位远程调试器)到需要调试的机器上。2、  代码所在机器上的IDE在工程属性-调试中配置如下:3、  将要调试机器上对应的进程关闭。打开Remote Debugger,选项中设置身份验证模式为无身份验证,最长空闲时间设置长一些。4、  此时,在有代码的机器上按F5运行程序,即可以进入断

2015-02-28 09:12:47 4929

原创 【Darwin学习笔记】之QTSSReflectorModule的Setup消息处理

Setup消息进入到DoSetup函数单独处理,处理流程如下:【转载请注明出处】:http://blog.csdn.net/longlong5301. 根据关键字qtssRTSPReqTransportMode判断是否为推模式,具体isPush值由Setup请求中的mode值有关,mode="receive" || mode="record"表示isPush为true。对应的解

2015-02-09 10:11:09 1716

原创 【Darwin学习笔记】之QTSSReflectorModule的Describe消息处理

对于QTSSReflectorModule里面的Describe消息只处理sdp类型的资源请求,其他类型的比如mov、mp4等资源会跳转到QTSSFileModule里面,其中mp4文件在Darwin源码中点播需要先hint下。如果想在增加多种视频格式那就要对FileModule进行扩展,在我们的项目中就优化了FileModule,实现了对mp4、avi等各种格式的文件的点播支持。后面的章节我们详

2015-02-06 15:19:52 1641

原创 【Darwin学习笔记】之QTSSReflectorModule的Announce消息处理

RTSP Announce命令是数据源向Darwin服务端主动发起的上报本地媒体sdp信息的命令,在Darwin中处理该命令的函数为QTSSReflectorModule模块的DoAnnounce()函数,下面对该函数的进行剖析:1. 判断sAnnounceEnabled是否开启,由以下配置项确定,默认为truetrue2. 通过键值qtssRTSPReqLocalPath获取完整

2015-02-04 17:35:33 1994

原创 【Darwin学习笔记】之RTSPSession点播流程

今天详细的看了下RTSPSession的会话处理代码,该模块主要是Run方法内对会话的状态机进行管理,实现对RTSP会话的处理,我以点播Movie文件夹下的视频文件为例,深入的学习了(Describe、Setup、Play的点播流程),并按照状态机的处理顺序对他们进行一一解析,如下:【转载请注明出处】:http://blog.csdn.net/longlong5301. 状态机 kRe

2015-02-03 16:54:16 2416

原创 【Darwin学习笔记】之获取系统处理器数量的方法

阅读Darwin源码的时候看到这个方法,感觉挺有用处,且考虑了多种平台下的实现方式,直接贴代码,以后说不定会用到~UInt32 OS::GetNumProcessors(){#if (__Win32__) SYSTEM_INFO theSystemInfo; ::GetSystemInfo(&theSystemInfo); return (UIn

2015-01-28 13:48:06 1268

原创 【Darwin学习笔记】之TaskThread

学习TaskThread主要有三个类要关注:TaskTreadPool: 任务线程池TaskThread:任务线程Task: 任务1. TaskThreadPoolDarwin运行着一个或者多个任务(Task)线程,并将他们统一在线程池TaskThreadPool中管理。任务线程从事件线程中接收RTSP和RTP请求,然后把请求传递到恰当的服务器模块进行处理,把数据包发送

2015-01-28 10:43:20 3887

原创 【Darwin学习笔记】之EventThread

EventThread负责侦听Darwin系统的Socket事件,包括以下两类, 对于两类事件是分别如何处理的,我们从头开始分析。a)   建立新的RTSP连接请求事件 b)   已有RTSP连接上的RTSP请求消息事件     一.  EventThread 对象的创建   RunServer.cpp 中StartServer函数初始化调用了 Socket::Initiali

2015-01-27 16:48:02 2008

原创 【Darwin学习笔记】之RTSP连接监听初始化

网上有很多大侠已经对Darwin做了详细的剖析,在下仅本着积累经验的目的,将Darwin的学习过程记录下来,同时与网友们交流学习,今天先来分析下Darwin如果根据配置文件监听RTSP连接的流程。1. Darwin系统初始化,Bool16 QTSServer::Initialize(.....)2. QTSServer::CreateListeners(...)根据本地xml配置文件中的地址和端口进行监听的建立,主要有两个配置项:<PREF NAME="bind_ip_addr" >0</PREF>

2015-01-27 14:14:33 2011

原创 用Wireshark保存RTP的负载码流

这段时间工作太忙,有些日子没写文章了,今天准备了一篇Wireshark工具的一个小功能,在验证码流的时候非常好用,闲话不说,直接说步骤:1.打开Wireshark抓取流媒体码流,然后用RTP过滤:2.Telephony --> RTP  -->Stream Analysis3.Save playload4.最后

2013-08-09 09:01:11 3925

原创 两个实用小工具:wget和nirccmd

今天发现了两个比较有用的小工具,与大家分享下:一.wget.exe:      我们都知道,在Linux下想从网上下载一个资源,只要敲下命令wget URL既可下载,那么windows下是否有这个工具呢,搜了下还真有现成的,其实原理也很简单,可以这样实现:#include #include #define RECVPACK_SIZE 2048bool wgetFi

2013-07-23 10:08:53 1665 1

原创 C++之TinyXML的使用介绍

一.引子:最近在做GBT28181国标平台对接的工作,涉及到一些进程间消息通讯,消息体有xml格式,之前测试的时候都是拿他们当做字符串去解析,现在正儿八经地开发的时候,就想到了用xml库去解析,由于之前在HW最后一个项目用到的xml库就是这个,所以这里延续使用它。总体来说还是比较好用的:二.编译、使用:       源码库下载:http://sourceforg

2013-07-17 14:39:43 1307

原创 C++开源日志库--Glog的使用

公司其他同事大多做C#的,公司内部暂时也没用提供自己的C++日志库,由于项目较紧急,所以就准备选一个开源日志库使用,由于以前做过java,用的Log4j比较强大,但是查了下,其使用起来有点复杂。所以就想到最伟大的公司google了,其Glog使用还是比较简单的,源码下下来直接用VS编译生成lib和dll库,源码文件中都有现成的vs工程。开源项目首页:https://code.googl

2013-07-16 11:31:05 12545

原创 轻量级语言Lua入门

作为一个脚本爱好者,而且是脚本(Perl)起家的我,一有空就喜欢学习下这些脚本语言。据说魔兽世界、愤怒小鸟都用到了它,所以今天研究下Lua这个叫法有点奇特的脚本【转载请注明出处:http://blog.csdn.net/longlong530】一.Lua简介         Lua 是一个小巧的脚本语言。作者是巴西人(好像还没有接触过巴西人~)。该语言的设计目的是为了嵌入应用程序中,从

2013-06-29 15:57:36 3608 4

原创 【GBT28181开发:SIP协议实践】之PTZ指令详解

在做设备控制业务之前,先学习下PTZCmd字段中的前端设备控制指令。搭建好测试环境后,在SPVMN自测系统中,关于设备云台控制的接口有如下几个:点击后会生成相应的XML,比如:DeviceControl1134020000001310000053A50F01021F0000D6点击其他几个命令后,会发现生成以下PTZCmd命令,这些命

2013-06-28 10:43:08 7879 2

原创 【GBT28181开发:SIP协议实践】之实况直播

实况直播(标准中的叫法是实时点播,但是以前在HW,SE的设计文档里面是实况,叫习惯了,其实只是个叫法而已)是整个视频监控系统中比较核心的一个业务,GBT28181标准中对其也做了详细的设计。相对于设备信息、状态查询等业务,其稍微复杂点。首先消息类型采用的是INVITE,然后消息体的描述采用SDP协议。SDP协议的之前已经学习过了,还算简单:http://blog.csdn.net/long

2013-06-27 16:40:00 8530 23

原创 【GBT28181开发:SIP协议实践】之设备远程启动

下面学习的是设备远程控制的流程,和设备信息、设备目录、设备状态的流程差不多,主要是描述的协议字段不同,模拟SPVMN系统向源设备发送远程启动控制指令,记录下交互的消息,详细研究了下:转载请注明出处:http://blog.csdn.net/longlong530一.环境搭建:环境准备:http://blog.csdn.net/longlong530/articl

2013-06-27 13:53:51 3969

原创 【GBT28181开发:SIP协议实践】之设备状态查询

下面学习的是设备状态查询的流程,和设备信息、设备目录的流程差不多,主要是描述的协议字段不同,模拟SPVMN系统向源设备查询其当前状态,记录下交互的消息,详细研究了下:转载请注明出处:http://blog.csdn.net/longlong530一.环境搭建:环境准备:http://blog.csdn.net/longlong530/article/detail

2013-06-27 13:30:32 4647

原创 【GBT28181开发:SIP协议实践】之设备目录查询

下面学习的是设备目录查询的流程,和设备信息的流程差不多,主要是描述的协议字段不同,模拟SPVMN系统向源设备查询其设备目录,记录下交互的消息,详细研究了下:转载请注明出处:http://blog.csdn.net/longlong530一.环境搭建:环境准备:http://blog.csdn.net/longlong530/article/details/917

2013-06-27 12:57:44 7632 5

原创 【GBT28181开发:SIP协议实践】之设备信息查询

今天学习的是设备信息查询的流程,模拟SPVMN系统向源设备查询其设备信息,记录下交互的消息,详细研究了下:转载请注明出处:http://blog.csdn.net/longlong530一.环境搭建:环境准备:http://blog.csdn.net/longlong530/article/details/9176989UAC(模拟IPC):

2013-06-27 10:21:19 7031 12

原创 【GBT28181开发:SIP协议实践】之注册流程

由于已经成功搭建好基于eXosip的UAC的开发环境,并且也与SPVMN测试系统交互成功,所以现在开始针对注册、查询等业务进行详细的研究。今天先研究下设备注册的流程,模拟一个IPC向SPVMN系统注册,记录下交互的消息,详细研究了下:转载请注明出处:http://blog.csdn.net/longlong530一.环境搭建:环境准备:http://blog.csdn.

2013-06-26 17:07:41 11079 24

原创 【GBT28181开发:SIP协议实践】之*里程碑*eXosip+SPVMN环境搭建

昨天编译搭建好eXosip的开发环境后,今天完成了SIP注册功能,里程碑一战啊!加油加油,成功就在眼前!今天基于eXosip做了一个IPC客户端,成功与公安部的SPVMN视频监控联网调测软件自测工具进行注册交互!客户端Dos界面:调测工具服务端消息输出:REGISTER sip:192.168.10.177:5060 SIP/2.0Via: S

2013-06-26 11:37:29 12045 23

原创 【GBT28181开发:SIP协议实践】之Windows下编译eXosip、osip

今天开始了SIP开源库的学习,我选择了osip和eXosip,但是这两个库的编译使用有些麻烦,源码下来之后编译会出现很多问题,网上也没有找到完整的编译介绍,只能一步一步的找办法解决,最后终于编译成功!先大概记录下编译过程,后面还要再整理下。期间还向CSDN论坛求助了下,但是还没有反应:http://bbs.csdn.net/topics/390499635?page=1#post-394866

2013-06-25 16:03:13 10693 19

原创 一个解析RTSP 的URL函数

写了一个解析URL的函数,可以提取URL中的IP 和 port。如:url = "rtsp://192.168.1.43:2554/realmp3.mp3";url = "rtsp://192.168.10.177/bipbop-gear1-all.ts";之前写过一篇关于一些常用的字符串操作函数,在这里解析都会用到:http://blog.csdn.net/longlong530/a

2013-06-21 09:08:02 2562

原创 RTSP 消息拼装实例代码

整理了下之前文章提到的RTSP实例的代码,主要是拼装各类消息字段。首先,抽取一个公共函数,用来根据消息类型,生成不同的format,供sprintf试用。char * GetRTSPCmd( const char * szName){ char *str = NULL; char const* cmdFmt = NULL; if(!strcmp(szName, "OPTION

2013-06-21 08:58:26 1621

原创 RTSP实例解析

RTSP(Real Time Streaming Protocol,实时流媒体协议),是由Real network 和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP提供一种可扩展的框架,使能够提供能控制的,按需传输实时数据,比如音频和视频文件。源数据可以包括现场数据的反馈和存贮的文件。rtsp对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,rtsp作

2013-06-13 10:28:11 2403 2

原创 平台顺利通过公安部一所《GBT 28181-2011 安全防范视频监控联网系统信息传输、交换、控制技术要求》检测

平台顺利通过公安部一所《GBT 28181-2011 安全防范视频监控联网系统信息传输、交换、控制技术要求》检测

2015-11-12 13:29:55 6112

原创 视频存储空间计算公式

存储空间计算公式:单路实时视频的存储容量 (GB) (GB)(GB)=【视频码流大小 =【视频码流大小 (Mb) ×60 秒× 60 分× 24 小时×存储天 数/8 】/1024 ;我们以一路视频图像在7天、15天、30天所需要的占用空间为例:对于已建点位 ,由于 早期 编码 技术限制,一般 1080 P需 6-8Mb 码流, 72 0P 需要 3-4Mb 码流 ,4

2015-03-16 16:46:49 45576 1

原创 鼠标右键菜单清理方法

最近电脑装了些软件后,右键打开的速度变得非常慢,严重影响工作效率。网上找了些解决方案,装了“**右键清理工具”附带了一堆垃圾软件,360安全卫士也么有响应的小工具,终于找了一个从注册表解决的方法,mark下。电脑鼠标右键反应慢解决办法开始,1. 运行:regedit,打开注册表2. 目录空白处右键窗口清理: 找到注册表:HKEY_CLASSES_ROOT/Directory/Bac

2015-03-16 10:44:51 1338

原创 Windows下生成dump文件方法

一. 背景       没人能保证自己的软件在各种未知环境运行下,会木有任何问题。那么如果程序崩溃了怎么办?看日志?日志不全又怎么办?日志能帮你定位的多细致呢?如果能有种方法记录程序最后工作的状态,比如堆栈调用情况等,那么我们就可以获悉“它是如何挂掉的~”二. 调研我们对程序bug引起的程序崩溃的五种定位方法进行了调研,并最终选择方案5为我所在项目使用的程序崩溃定位方案。

2015-01-30 15:16:46 6520

原创 推荐两个小工具MediaInfo 和 netpersec

流媒体服开发的时候常用的两个工具,1. MediaInfo    下载路径:(http://w.x.baidu.com/alading/anquan_soft_down_all/11027)    工具说明:可以查看视频、图片文件的文件信息,包含编码、文件格式等多个属性使用也很方便,安装后直接右键点击选择要查看的文件即可:图片:视频:

2015-01-29 09:19:43 3164

原创 windows平台ffmpeg编译

ffmpeg编译可参考以下网址:    http://trac.ffmpeg.org/wiki/CompilationGuide    http://www.cppblog.com/gaimor/archive/2012/12/29/196815.html一、准备环境1.下载MinGW官网www.mingw.org,切换到download页面下载mingw-get-se

2014-12-17 11:52:24 1140

原创 Perl 访问FTP

#ftp#ljl#!/usr/bin/perluse strict;use Net::FTP;my $user = "anonymous";my $passwd = "chinaunix@";my $host = "ftp.freebsd.org";my $ftp = Net::FTP->new("$host", Debug =>0)or die "Can't connec

2014-05-10 14:01:31 1446

原创 用perl对字符串进行全角转半角操作

#全角转半角#ljluse Encode;sub CheckSBC{ my ($name)=@_; my @character; my $tmpname=$name; my $headname; my $k=0; for($ii=1; $ii <= length($name); $ii++) { if(length($tmpname)>0) { my $he

2014-04-28 11:56:49 1778

原创 Perl生成excel文件

#生成excel#ljluse Spreadsheet::WriteExcel; my %us;while(($key, $value) = each %us){ print "$key|$value\n";} # 创建一个新的EXCEL文件 my $workbook = Spreadsheet::WriteExcel->new('poi_count_top15.

2014-04-28 11:54:40 2988

原创 文件处理函数

这两天在写个遍历文件批处理的小工具,碰到几个时间相关的函数,整理了下,说不定以后可能会再用到呢~ //判断文件是否存在bool FileIsExists(LPCSTR filePath){ WIN32_FIND_DATA FindFileData; HANDLE hFind; hFind = FindFirstFile(filePath, &FindFileData

2014-04-04 10:41:41 1087

原创 在日志中如何打印文件、行号、方法名

这段代码中用到了这几个宏:  1) __VA_ARGS__   是一个可变参数的宏,这个可宏是新的C99规范中新增的,目前似乎只有gcc支持(VC6.0的编译器不支持)。宏前面加上##的作用在于,当可变参数的个数为0时,这里的##起到把前面多余的","去掉的作用。  2) __FILE__    宏在预编译时会替换成当前的源文件名  3) __LINE__   宏在预编译时

2013-09-27 08:48:37 2308 2

原创 C++时间格式转换函数(字符串转整型)

最近做国标28181录像查询业务的对接,需要将时间格式从“2013-09-18T14:32:17”格式的字符串转换成整型去请求历史录像,写了下面一个函数,有需要的可以参考下。另外,国标这块我觉得设计的就不合理了,录像查询的时候的时间格式是字符串,录像请求的时候又变成了整型,不能统一,想这种格式的转换尽量放在一端做,不要两端都做,容易弄混淆,你觉得呢?time_t CStreamGe

2013-09-22 16:17:43 4843 2

原创 丢包了

不完美的北京之行啊,参加完  第五届中国国际道路交通安全产品博览会暨交通安全论坛 回来的路上,把我的小挎包丢到北京南站了。陪伴了我那么多年的各种物品啊。。。。

2013-08-30 09:21:40 757

原创 耦合、内聚

耦合是指两个实体相互依赖于对方的一个量度.分为以下几种:非直接耦合:两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公共数据结构或外部变量) 来交换输入、输出信息的。标记耦合 :一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变

2013-08-26 09:58:35 869

nfs离线包(亲测可用2023年最新)

(1)离线安装nfs-utils用。 (2)安装nfs-utils所需依赖也都在里面 (3)复制到服务器后直接执行以下命令即可顺利安装:

2023-12-06

VisualAssist

小番茄,VS助手,很好用,已经破解放心使用

2013-08-05

国标28181测试软件

国标28181测试软件 对接国标28181设备和平台

2013-07-30

UDPReceiveTest

监视某个端口是否有UDP数据发来,使用方法UDPReceiveTest.exe port

2013-07-29

windows下的wget

windows下使用的wget,放入环境变量路径下即可直接使用

2013-07-23

Lua入门例子

Lua入门的例子,直接编译运行。 使用方法参考: http://blog.csdn.net/longlong530/article/details/9203097

2013-06-29

UAC_UAS例子

UAC_UAS例子,两个exe可执行程序,UAC和UAS分别监听本地的15060、15061端口 命令行输入参数进行测试

2013-06-25

免分的,DLL入门例子,大家帮顶

DLL的简单入门例子,详细解释见: http://blog.csdn.net/longlong530/article/details/9136895 不要分了,大家帮顶下就好了~^_^

2013-06-20

自己写的RTSP Client,与Live555交互

自己动手写的Client,通过拼装协议字段,用socket于Live555的RTSP Server交互 http://blog.csdn.net/longlong530/article/details/9102205

2013-06-15

GB28181国标

GBT 28181-2011 安全防范视频监控联网系统信息传输、交换、控制技术要求.pdf 正式稿

2013-06-03

Struts2 实例

一、准备工作及实例 1.解压struts-2.1.6-all.zip apps目录:struts2自带的例子程序 docs目录:官方文档。 lib 目录:存放所有jar文件。 Src 目录:源文件存放地 2.六个基本包 struts2-core-2.1.6.jar :开发的核心类库 freemarker-2.3.13.jar :struts2的UI标签的模板使用freemarker编写 commons-logging-1.0.4.jar :日志包 ognl-2.6.11.jar :对象图导航语言,通过它来读写对象属性 xwork-2.1.2.jar :xwork类库,struts2在其上进行构建 commons-fileupload-1.2.1.jar:文件上传组件,2.1.6版本后必须加入此jar包 特别需要说明的是目前strust2的最新版本是struts-2.1.6,它作为2.1.X的正式版。特别要注意导入commons-fileupload-1.2.1.jar包,在此jar包中包含了RequestContext类,如果不导入该jar包将会报异常。 3.初识struts2配置文件 (1).web.xml文件 主要完成对StrutsPrepareAndExecuteFilter的配置(在以前的版本中是对FilterDispatcher配置,新版本同样支持用FilterDispatcher配置),它的实质是一个过滤器,它负责初始化整个Struts框架并且处理所有的请求。这个过滤器可以包括一些初始化参数,有的参数指定了要加载哪些额外的xml配置文件,还有的会影响struts框架的行为。除了StrutsPrepareAndExecuteFilter外,Struts还提供了一个ActionContexCleanUp类,它的主要任务是当有其它一些过滤器要访问一个初始化好了的struts框架的时候,负责处理一些特殊的清除任务。 (2).struts.xml文件 框架的核心配置文件就是这个默认的struts.xml文件,在这个默认的配置文件里面我们可以根据需要再包括其它一些配置文件。在通常的应用开发中,我们可能想为每个不同的模块单独配置一个struts.xml文件,这样也利于管理和维护。这也是我们要配置的主要文件。 (3).struts.properties(参default.properties) 在Struts框架使用了很多属性,我们可以通过改变这些属性来满足我们的需求。要改变这些属性,只需在struts.properties文件中指定属性的key和value即可。属性文件可以放在任何一个包含在classpath中的路径上,但是通常我们都把它放在/WEB-INF/classes目录下面。我们可以在struts-default.properties文件中找到一个属性的列表。 (4)struts-default.xml 此文件是struts2框架默认加载的配置文件,它定义了struts2一些核心bean和拦截器,它会自动包含(included)到struts.xml文件中(实质是通过<package extends="struts-default">),并为我们提供了一些标准的配置。我们可以在struts2-core.jar中找到这个文件。 (5)其它配置文件 velocity.properties,struts-default.vm,struts-plugin.xml 4.让MyEclipse提示xml信息 当我们在编写struts.xml时,发现eclipse并不会给出帮助提示,那是因为MyEclipse默认并不支持struts2,所以我们需要手工导入dtd以支持提示。步骤:[window][preferences][MyEclipse][Files and Editors][XML][xml Catelog]然后在右边点add添加:location为dtd文件所在的位置(struts-2.0.dtd文件struts2-core-2.1.6.jar中可以得到),KeyType选择URI,Key为struts-2.0.dtd文件中文档声明的内容(http://struts.apache.org/dtds/struts-2.0.dtd),在struts.xml文件中也有此key值。 5.如何使用alt+/提示

2011-05-04

2小时学会struts2

2小时学会struts2,配置,举例,很实用快捷的学习方法

2010-06-24

java资源大全,非常丰富

java资源大全,非常有用的,适合基础学习

2010-06-23

java资料大全以及最权威最全的web资料

java资料大全以及最权威最全的web资料,收集了很久才收集到的

2010-06-23

perl资源大全,非常丰富

perl,正则表达式大全全集,找了很久终于找到

2010-06-01

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除