安防监控
安防监控
成都刘德华2012
这个作者很懒,什么都没留下…
展开
-
RTSP服务器实例live555源代码分析
1. RTSP连接的建立过程 RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话。 首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立Socket(ourSocket)在TCP的554端口进行监听,然后把连接处理函数句柄(RTSPSe转载 2013-11-28 18:45:09 · 1179 阅读 · 0 评论 -
PES包格式
PES包由包头和payload组成:可以看到PTS/DTS是打在PES包里面的,这两个parameters是解决视音频同步显示,防止解码器输入缓存上溢或下溢的关键。PTS表示 显示单元出现在系统目标解码器(STD: system target decoder)的时间,DTS表示将存取单元全部字节从STD的ES解码缓存器移走的时刻。每个I、P、B帧的包头都有一个PTS和DTS,但PTS与DT转载 2013-10-28 23:23:35 · 3013 阅读 · 0 评论 -
实时传输协议RTP
温故而知新。 实时传输协议RTP(Real-time Transport Protocol)是IETF的AVT工作组(Audio/Video Transport WG)开发的协议。RTP[RFC 3550,3551]为实时应用提供端到端的运输,但不提供任何服务质量的保证。需要发送的多媒体数据块(音频/视频)经过压缩编码处理后,先送给RTP封装成RTP分组,RTP分组再装入运输层的UD转载 2013-10-27 16:26:32 · 1784 阅读 · 0 评论 -
PS流格式
概念:将具有共同时间基准的一个或多个PES组合(复合)而成的单一的数据流称为节目流(Program Stream)。ES是直接从编码器出来的数据流,可以是编码过的视频数据流,音频数据流,或其他编码数据流的统称。ES流经过PES打包器之后,被转换成PES包。构成:PS包由包头、系统头、PES包3部分构成。包头由PS包起始码、系统时钟基准(SCR-System Cloc转载 2013-10-27 16:22:34 · 1391 阅读 · 0 评论 -
Rtmp协议简单分析(一)——协议数据
首先说下rtmp协议包的格式。握手之后,rtmp传输一个数据默认的长度是128bytes,这128bytes不包括包头的长度,只是数据的长度,文档上面没有说明,很憋了我一段时间,数据超过这个长度之后就要分块,超过128bytes的数据放到下一个块中,以此类推。块大小是可配置的,最大块是65535字节,最小块是128字节。块越大CPU使用率越低,但是也导致大的写入,在低带宽下产生其他内容的延迟。转载 2014-01-14 18:05:15 · 1639 阅读 · 0 评论 -
RTMP协议中的AMF数据类型说明
这里有一个连接,amf0和amf3的库,我下了看了下,还是自己写吧,哎。http://wooce.iteye.com/blog/1396278参考crtmpserver的代码写的,其中有amf.h文件。 AMF数据第一个byte为此数据的类型,类型有:Number0×00double类型Boolean0×01bool类型转载 2014-01-14 19:53:05 · 5507 阅读 · 0 评论 -
Windows和Linux编译Live555的Debug版本(可调式)
修改UsageEnvironment/include目录下的UsageEnvironment.hh文件,加入DEBUG宏定义#ifndef _USAGE_ENVIRONMENT_HH#define _USAGE_ENVIRONMENT_HH#define DEBUG 1 // 新添加#ifndef _USAGEENVIRONMENT_VERSION_HH#include "Usag原创 2013-11-29 11:23:14 · 3599 阅读 · 0 评论 -
vs编译live555为静态链接库和动态链接库
http://fancylife.blog.51cto.com/920524/197406转载 2013-07-19 00:00:49 · 2405 阅读 · 0 评论 -
使用VLC和live555MediaServer搭建RTSP服务器
一、使用VLC搭建(转载)服务端1、打开“媒体——流”选项,如图所示:2、点击“添加”按钮选择流媒体文件,然后点击“串流”按钮3、点击“下一个”后,在“目标设置”界面选择“RTSP”,然后点击添加按钮,可以取消“激活转码”。设置端口和路径(可默认)4、然后点击下一个可以看到基本信息。5、最后点击“串流”即可,这是VLC会开始播放刚选择的视频文件。(注意:播放原创 2013-07-03 22:18:38 · 5251 阅读 · 1 评论 -
关于ES、PES、PS以及TS码流
一、基本概念1)ES ES--Elementary Streams (原始流)是直接从编码器出来的数据流,可以是编码过的视频数据流(H.264,MJPEG等),音频数据流(AAC),或其他编码数据流的统称。ES流经过PES打包器之后,被转换成PES包。 ES是只包含一种内容的数据流,如只含视频或只含音频等,打包之后的PES也是只含一种性质的ES,如只含视频转载 2013-10-27 16:16:55 · 1475 阅读 · 0 评论 -
Linux下链接live555库lib的顺序
live555源码编译之后,自己程序链接live555库提示部分函数链接不到,可能是因为lib链接顺序b原创 2014-06-23 10:54:41 · 1736 阅读 · 0 评论 -
Windows和Linux下播放采集wave格式音频文件的简单记录
wave音频的部分介绍可参看前面两篇文章:WAV格式常见的几种压缩形式(compression code)、WAV音频格式。Windows:1、在windows上,api基本上屏蔽了驱动的不能,可直接使用windows media api,播放使用waveIn_xxx系列,采集使用waveOut_xxx系列。2、如果你熟悉ffmpeg,也可使用里面的接口进行播放和录制。不过wa原创 2013-12-01 22:36:24 · 2312 阅读 · 0 评论 -
WAV格式常见的几种压缩形式(compression code)
WAV为微软公司(Microsoft)开发的一种声音文件格式,它符合RIFF(Resource Interchange File Format)文件规范,用于保存Windows平台的音频信息资源,被Windows平台及其应用程序所广泛支持,该格式也支持MSADPCM,CCITT A LAW等多种压缩运算法,支持多种音频数字,取样频率和声道。标准格式化的WAV文件采样频率为44100Hz,采样比特为转载 2013-12-01 19:38:54 · 12222 阅读 · 1 评论 -
流媒体Live555(五)——openRTSP流程分析
openRTSP是对RTSPClient的实现,与服务器对应的客户端功能1、初始化BasicTaskschedular::createNew()BasicUsageEnvironment::createNew()解析输入streamURLourClient= createClient(streamURL)\_ourRTSPClient = RTSPC转载 2013-12-10 18:35:40 · 1368 阅读 · 0 评论 -
WAV音频格式
WAV是音频文件存储格式,不是音频的编解码。另可见,WAV格式常见的几种压缩形式(compression code)。1、综述 WAVE文件作为多媒体中使用的声波文件格式之一,它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写,每个WAVE文件的头四个字节便是“RIFF”。 WAVE文件是由若干个Chunk组转载 2013-12-01 19:43:27 · 1771 阅读 · 0 评论 -
Rtmp协议简单分析(二)——协议交互过程
具体传输的过程是这样的,首先双方先进行握手,握手过程官方文档上有说明,但是在flash10.1之后,adobe公司改了握手,文档上那个握手不能用了,至少播放AVC和ACC不能用,这东西太坑人了,改了又不说一声,而且一个本来简单的握手改的很是复杂,居然要依赖openssl加密,有必要吗。网上找不到有关文章,我只有看rtmpserver开源项目源码来弄。 握手步骤没有变,但内容完全转载 2014-01-14 19:21:27 · 2520 阅读 · 0 评论 -
SIP注册过程分析
1、SIP注册过程图解 注册返回结果: je->type == EXOSIP_REGISTRATION_FAILURE: je->response->status_code == 401 401unauthorized je->response->status_code == 403 403forbidden (新增接原创 2013-09-16 23:22:47 · 3656 阅读 · 0 评论 -
VS2008下编译oSip2、eXosip2
第一步,下载: 到http://www.gnu.org/software/osip/下载最新的osip库并解压.到http://savannah.gnu.org/projects/exosip/下载最新的eXsoip库并解压.第二步,编译libosip2-4.0.0: 1.用VS2008打开\libosip2-4.0.0\platform\vsnet\的sln2.对os转载 2013-09-16 22:09:41 · 2174 阅读 · 4 评论 -
SIP协议简介
一、SIP协议简介 通俗的说,SIP就是一个轻量级信令协议,它可以作为音频、视频、及时信息的信令。更详细的介绍请点击:SIP维基百科 或 【SIP协议】学习初学笔记。二、SIP模型 1、用户代理(User Agent) SIP用户代理是一个SIP逻辑网络端点,用于创建、发送、接收SIP消息并管理一个SIP会话。SIP用户代理又可分为用户代理客户端UAC原创 2013-09-16 21:09:33 · 2125 阅读 · 0 评论 -
理解SIP的认证
1. 认证和加密 认证(Authorization)的作用在于表明自己是谁,即向别人证明自己是谁。而相关的概念是MD5,用于认证安全。注意MD5仅仅是个hash函数而已,并不是用于加密。因为hash函数处理后的数据没法进行反向恢复,这样子的话别人没法盗取你认证身份的口令。 加密(Encryption)的作用在于对想传输的数据进行处理,在网络中即使被窃取也难以破解。加密的信息可以转载 2013-09-16 22:32:46 · 1654 阅读 · 0 评论 -
SDP协议
1.SDP协议概述SDP(Session Description Protocol)是一个用来描述多媒体会话的应用层控制协议,为会话通知、会话邀请和其它形式的多媒体会话初始化等目的提供了多媒体会话描述;它是一个基于文本的协议,这样就能保证协议的可扩展性比较强,这样就使其具有广泛的应用范围;SDP 完全是一种会话描述格式 ― 它不属于传输协议 ― 它只使用不同的适当的传输协议,包括会转载 2013-10-09 13:33:36 · 964 阅读 · 0 评论 -
Onvif客户端与服务器通信时鉴权的自实现
有些设备没有做鉴权,有些操作不需要鉴权,这些都原创 2014-05-22 10:01:39 · 4071 阅读 · 6 评论 -
剪裁Onvif:减小soapC.cpp文件的大小(二)
gSOAP生成的onvif框架代码太大了,可以通过以下方法裁剪1. 编译选项 -DWITH_NOIDREF2. 修改生成的代码,去掉所有的soap_default_xxx,这些函数里面都是将结构体的成员置为0的,完全可以用memset来代替。 修改方法:首先删掉这些函数: cat onvifC.c |awk -F' ' 'BEGIN{i=0}转载 2014-03-09 15:58:44 · 3983 阅读 · 1 评论 -
关于Onvif的一些总结
最近这几天搞定了Onvif的剪裁,过程中对Onvif的开发多了一些了解,现在记下来以便积累。如果哪位高手看到此文存在错误,望不吝赐教!1、大部分onvif开发者是通过gsoap工具和官网提供的wsdl文件来生成开发文件的,里面包含onvif标准的各种接口,最后再根据开发文件编写自己的程序。我觉得这个过程十分麻烦,为何不能像第三方库那样提供直接的开发文件? 答:总的来说,Onv原创 2014-03-09 16:56:01 · 3429 阅读 · 2 评论 -
剪裁Onvif:减小soapC.cpp文件的大小(一)
背景介绍:1、本人是目前在公司是负责产品中安防设备接入的,Onvif和GB28181均是客户端,不用做服务器,所以关于服务器的细节不是很了解;2、去年根据需求完成了Onvif设备的接入,但不灵活和健壮,且so文件很大(Debug版本有18M,说到都是泪),所以剪裁Onvif的计划早已规划,今年产品系统重构刚好逮着机会试着剪裁Onvif。上一周花了三天时间终于完成了这一目标,首先得感谢Q群1原创 2014-03-09 14:26:57 · 5819 阅读 · 2 评论 -
onvif开发:使用wsdl2h和soap2cpp生成开发文件
关于使用gsoap开发onvif的介绍说明请自行搜索!扼要开发流程看这:gSOAP的使用。这里只是记录我在开发过程中的一点东西。一、使用wsdl2h生成头文件:1)使用在线wsdl:wsdl2h -o onvif.h -c -s -t .\typemap.dat http://www.onvif.org/onvif/ver10/device/wsdl/devicemgmt.wsd原创 2013-06-26 20:47:06 · 7441 阅读 · 1 评论 -
gSOAP的使用
功能: 编译wsdl文件生成C/C++代码的soap接口和xml文件 工具:wsdl2h.exe soapcpp2.exe 1.wsdl2h.exe:根据WSDL生成描述服务操作定义及数据类型定义的头文件 2.soapcpp2.exe:根据头文件自动生成调用远程SOAP服务的客户端代码(称为存根:Stub)和提供SOAP服务的框架代码(称为框架:Skeleton)、XML序列化转载 2013-06-18 13:18:10 · 4081 阅读 · 0 评论