
流媒体
文章平均质量分 96
longlong530
这个作者很懒,什么都没留下…
展开
-
平台顺利通过公安部一所《GBT 28181-2011 安全防范视频监控联网系统信息传输、交换、控制技术要求》检测
平台顺利通过公安部一所《GBT 28181-2011 安全防范视频监控联网系统信息传输、交换、控制技术要求》检测原创 2015-11-12 13:29:55 · 6194 阅读 · 0 评论 -
视频监控系统中几个硬件名词解释
现在模拟摄像机与网络摄像机都是主流产品。在我们使用产品的同时我们又对其有多少了解呢?我们是否知道两者的区别?下面为大家讲解一下两种摄像机之间到底有什么区别:模拟摄像机(Camera):模拟摄像机(Camera)是获取监视现场图像的前端设备,它以CCD图像传感器为核心部件,外加同步信号产生电路、视频信号处理电路及电源等。近年来,新型的低成本原创 2013-06-05 16:21:03 · 3217 阅读 · 0 评论 -
Live555源码学习笔记之UsageEnvironment模块
UsageEnvironment代表了整个系统运行的环境,它提供了错误记录和错误报告的功能,无论哪一个类要输出错误,就需要保存UsageEnvironment的指针。UsageEnvironment包含下面几个文件:一.字符串拷贝函数: strDup.h / strDup.cppstrDup.h 解释:char* strDup(char const* str);//原创 2013-07-04 10:08:31 · 2418 阅读 · 0 评论 -
Live555的学习心得和二轮计划
由于最近在做关于GBT28181平台对接的项目的需求设计,已经一些第三方平台环境的准备工作,Live555有些日子没有研究了。设计中考虑到要做流媒体转发的功能,所以今天又准备开始拾起live555继续看下去。而之前关注的主要是Live555的框架和RTSP Server的实现部分,没有关注更多细节。但是Live555的源码中还是有很多值得学习的地方。特别是看了几位大牛的博客后,更加坚定了决心,要把原创 2013-07-03 16:34:49 · 1986 阅读 · 1 评论 -
【GBT28181开发:SIP协议实践】之注册流程
由于已经成功搭建好基于eXosip的UAC的开发环境,并且也与SPVMN测试系统交互成功,所以现在开始针对注册、查询等业务进行详细的研究。今天先研究下设备注册的流程,模拟一个IPC向SPVMN系统注册,记录下交互的消息,详细研究了下:转载请注明出处:http://blog.youkuaiyun.com/longlong530一.环境搭建:环境准备:http://blog.csdn.原创 2013-06-26 17:07:41 · 11450 阅读 · 24 评论 -
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#原创 2013-07-18 11:28:13 · 1442 阅读 · 1 评论 -
【GBT28181开发:SIP协议实践】之PTZ指令详解
在做设备控制业务之前,先学习下PTZCmd字段中的前端设备控制指令。搭建好测试环境后,在SPVMN自测系统中,关于设备云台控制的接口有如下几个:点击后会生成相应的XML,比如:DeviceControl1134020000001310000053A50F01021F0000D6点击其他几个命令后,会发现生成以下PTZCmd命令,这些命原创 2013-06-28 10:43:08 · 8243 阅读 · 2 评论 -
live555学习之RTSP连接建立以及请求消息处理过程
1,RTSP连接的建立过程 RTSPServer类用于构建一个RTSP服务器,该类同时在其内部定义了一个RTSPClientSession类,用于处理单独的客户会话。 首先创建RTSP服务器(具体实现类是DynamicRTSPServer),在创建过程中,先建立Socket(ourSocket)在TCP的554端口进行监听,然后把连接处理函数句柄 (RTSPServer转载 2013-05-31 14:20:55 · 1523 阅读 · 0 评论 -
【转】live555—VS2010 下live555编译、使用及测试
Ⅰ live555简介 Live555 是一个为流媒体提供解决方案的跨平台的C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。Live555实现了对多种音视频编码格式的音视频数据的流化、接收和处理等支持,包括MPEG、H.263+、DV、JPEG视频和多种音频编码。同时由于良好的设计,Live555非常容易扩展对其他格式的支持。目前,Live555转载 2013-05-31 14:24:03 · 1777 阅读 · 0 评论 -
【GBT28181开发:SIP协议实践】之Windows下编译eXosip、osip
今天开始了SIP开源库的学习,我选择了osip和eXosip,但是这两个库的编译使用有些麻烦,源码下来之后编译会出现很多问题,网上也没有找到完整的编译介绍,只能一步一步的找办法解决,最后终于编译成功!先大概记录下编译过程,后面还要再整理下。期间还向优快云论坛求助了下,但是还没有反应:http://bbs.youkuaiyun.com/topics/390499635?page=1#post-394866原创 2013-06-25 16:03:13 · 10910 阅读 · 19 评论 -
【GBT28181开发:SIP协议实践】之设备目录查询
下面学习的是设备目录查询的流程,和设备信息的流程差不多,主要是描述的协议字段不同,模拟SPVMN系统向源设备查询其设备目录,记录下交互的消息,详细研究了下:转载请注明出处:http://blog.youkuaiyun.com/longlong530一.环境搭建:环境准备:http://blog.youkuaiyun.com/longlong530/article/details/917原创 2013-06-27 12:57:44 · 7908 阅读 · 5 评论 -
I帧、P帧和B帧的特点
在H264中图像以序列为单位进行组织,一个序列是一段图像编码后的数据流,以I帧开始,到下一个I帧结束。 一个序列的第一个图像叫做 IDR 图像(立即刷新图像),IDR 图像都是 I 帧图像。H.264 引入 IDR 图像是为了解码的重同步,当解码器解码到 IDR 图像时,立即将参考帧队列清空,将已解码的数据全部输出或抛弃,重新查找参数集,开始一个新的序列。这样,如果前一个序列出现原创 2013-06-08 09:57:24 · 944 阅读 · 0 评论 -
SDP协议介绍
SDP:Session Description ProtocolSDP格式: Session description v= (protocol version) o= (owner/creator and session identifier) s= (session name) i=* (原创 2013-06-01 17:03:29 · 5682 阅读 · 0 评论 -
【Darwin学习笔记】之QTSSReflectorModule的Setup消息处理
Setup消息进入到DoSetup函数单独处理,处理流程如下:【转载请注明出处】:http://blog.youkuaiyun.com/longlong5301. 根据关键字qtssRTSPReqTransportMode判断是否为推模式,具体isPush值由Setup请求中的mode值有关,mode="receive" || mode="record"表示isPush为true。对应的解原创 2015-02-09 10:11:09 · 1833 阅读 · 0 评论 -
【Darwin学习笔记】之QTSSReflectorModule的Describe消息处理
对于QTSSReflectorModule里面的Describe消息只处理sdp类型的资源请求,其他类型的比如mov、mp4等资源会跳转到QTSSFileModule里面,其中mp4文件在Darwin源码中点播需要先hint下。如果想在增加多种视频格式那就要对FileModule进行扩展,在我们的项目中就优化了FileModule,实现了对mp4、avi等各种格式的文件的点播支持。后面的章节我们详原创 2015-02-06 15:19:52 · 1715 阅读 · 0 评论 -
【Darwin学习笔记】之QTSSReflectorModule的Announce消息处理
RTSP Announce命令是数据源向Darwin服务端主动发起的上报本地媒体sdp信息的命令,在Darwin中处理该命令的函数为QTSSReflectorModule模块的DoAnnounce()函数,下面对该函数的进行剖析:1. 判断sAnnounceEnabled是否开启,由以下配置项确定,默认为truetrue2. 通过键值qtssRTSPReqLocalPath获取完整原创 2015-02-04 17:35:33 · 2067 阅读 · 0 评论 -
【Darwin学习笔记】之RTSPSession点播流程
今天详细的看了下RTSPSession的会话处理代码,该模块主要是Run方法内对会话的状态机进行管理,实现对RTSP会话的处理,我以点播Movie文件夹下的视频文件为例,深入的学习了(Describe、Setup、Play的点播流程),并按照状态机的处理顺序对他们进行一一解析,如下:【转载请注明出处】:http://blog.youkuaiyun.com/longlong5301. 状态机 kRe原创 2015-02-03 16:54:16 · 2515 阅读 · 0 评论 -
【Darwin学习笔记】之EventThread
EventThread负责侦听Darwin系统的Socket事件,包括以下两类, 对于两类事件是分别如何处理的,我们从头开始分析。a) 建立新的RTSP连接请求事件 b) 已有RTSP连接上的RTSP请求消息事件 一. EventThread 对象的创建 RunServer.cpp 中StartServer函数初始化调用了 Socket::Initiali原创 2015-01-27 16:48:02 · 2080 阅读 · 0 评论 -
【Darwin学习笔记】之TaskThread
学习TaskThread主要有三个类要关注:TaskTreadPool: 任务线程池TaskThread:任务线程Task: 任务1. TaskThreadPoolDarwin运行着一个或者多个任务(Task)线程,并将他们统一在线程池TaskThreadPool中管理。任务线程从事件线程中接收RTSP和RTP请求,然后把请求传递到恰当的服务器模块进行处理,把数据包发送原创 2015-01-28 10:43:20 · 3976 阅读 · 0 评论 -
【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 · 2275 阅读 · 0 评论 -
C++时间格式转换函数(字符串转整型)
最近做国标28181录像查询业务的对接,需要将时间格式从“2013-09-18T14:32:17”格式的字符串转换成整型去请求历史录像,写了下面一个函数,有需要的可以参考下。另外,国标这块我觉得设计的就不合理了,录像查询的时候的时间格式是字符串,录像请求的时候又变成了整型,不能统一,想这种格式的转换尽量放在一端做,不要两端都做,容易弄混淆,你觉得呢?time_t CStreamGe原创 2013-09-22 16:17:43 · 4960 阅读 · 2 评论 -
用Wireshark保存RTP的负载码流
这段时间工作太忙,有些日子没写文章了,今天准备了一篇Wireshark工具的一个小功能,在验证码流的时候非常好用,闲话不说,直接说步骤:1.打开Wireshark抓取流媒体码流,然后用RTP过滤:2.Telephony --> RTP -->Stream Analysis3.Save playload4.最后原创 2013-08-09 09:01:11 · 4180 阅读 · 0 评论 -
UDP端口监听工具
最近经常测试流媒体的传输,要监听某个端口看流是否引入了,每次打开wireshark太麻烦了,就写了简单的小工具,监听某个端口是否来数据了:int UDPReceiveTest(int port) { SOCKET sockSrv; SOCKADDR_IN addrSrv; WORD wVersionRequested; WSADATA wsaData; int err;原创 2013-07-29 09:40:07 · 4528 阅读 · 0 评论 -
编译live555
转自:http://blog.youkuaiyun.com/lawishere/article/details/8182952Live555 是一个为跨平台的C++开源项目,它实现了RTP/RTCP、RTSP、SIP等的支持。并且相对于其他的流媒体服务器是完全开源并且免费的。废话不多说,下面开始。 1、首先到它的主页下载一个源码包:http://www.live555.转载 2013-05-31 14:40:24 · 1716 阅读 · 0 评论 -
live555代码解读之三:SETUP和PLAY请求消息处理过程
SETUP请求消息处理过程 前面已经提到RTSPClientSession类,用于处理单独的客户会话。其类成员函数handleCmd_SETUP()处理客户端的SETUP请求。调用parseTransportHeader()对SETUP请求的传输头解析,调用子会话(这里具体实现类为OnDemandServerMediaSubsession)的getStreamParame转载 2013-06-21 10:05:13 · 1003 阅读 · 0 评论 -
RTSP实例解析
RTSP(Real Time Streaming Protocol,实时流媒体协议),是由Real network 和Netscape共同提出的如何有效地在IP网络上传输流媒体数据的应用层协议。RTSP提供一种可扩展的框架,使能够提供能控制的,按需传输实时数据,比如音频和视频文件。源数据可以包括现场数据的反馈和存贮的文件。rtsp对流媒体提供了诸如暂停,快进等控制,而它本身并不传输数据,rtsp作原创 2013-06-13 10:28:11 · 2475 阅读 · 2 评论 -
实现RTP协议的H.264视频传输系统
1. 引言 随着信息产业的发展,人们对信息资源的要求已经逐渐由文字和图片过渡到音频和视频,并越来越强调获取资源的实时性和互动性。但人们又面临着另外一种不可避免的尴尬,就是在网络上看到生动清晰的媒体演示的同时,不得不为等待传输文件而花费大量时间。为了解决这个矛盾,一种新的媒体技术应运而生,这就是流媒体技术。流媒体由于具有启动时延小、节省客户端存储空间等优势,逐渐成为人们的首选,流媒转载 2013-06-24 11:01:43 · 1668 阅读 · 0 评论 -
live555源码学习笔记之TaskScheduler
今天抽空研究了下live555的任务实现:TaskScheduler分为三种任务:socket handler,event handler,delay task。这三种任务的特点是,前两个加入执行队列后会一直存在,而delay task在执行完一次后会立即弃掉。socket handler保存在队列BasicTaskScheduler0::HandlerSet* fHandlers中;原创 2013-07-05 16:21:57 · 1714 阅读 · 0 评论 -
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 · 1667 阅读 · 0 评论 -
一个解析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.youkuaiyun.com/longlong530/a原创 2013-06-21 09:08:02 · 2665 阅读 · 0 评论 -
ES,TS,PS
IP数据报有首部和数据两部分组成的,首部的前一部分是固定长度20字节,是所有IP数据报必须具有的。首部包括:总长度、标识、MF、DF、片偏移。 数字信号实际传送的是数据流,一般数据流包括以下三种: (1)ES流(Elementary Stream):也叫基本码流,包含视频、音频或数据的连续码流。 (2)PES流(Packet Elem转载 2013-06-09 14:11:31 · 1531 阅读 · 0 评论 -
RTP和JRTPLIB的使用
一、流媒体简介随着Internet 的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio /Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。通常说来,A/V文件占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流式传输的话转载 2013-06-08 10:39:43 · 1489 阅读 · 0 评论 -
pjsip的编译及简单使用
1.下载下载地址:http://www.pjsip.org/download.htm我下载的是pjproject-1.12.zip2.编译将下载的文件解压后,目录下有pjproject-vs8.sln,可以直接使用vs2005打开,目录下的readme.txt文件中有编译说明,关于windows下的注意点如下: Building Win32 Target with转载 2013-06-06 09:41:07 · 1958 阅读 · 0 评论 -
轻松解读音频视频编码
近来,有不少朋友问我一些音视频编解码的入门问题,大概是随着手机、PDA等设备的普及以及带宽的提高,音视频的传播越来越普及的缘故吧。 不过,我发现很多朋友对一些基本概念还是不清楚,尤其是编码和文件格式,这里就对基本的音视频知识作个简单的入门说明。 音频视频编码及文件格式(容器)是一个很庞大的知识领域,完整的说清楚,那就需要些写成一本教材了。这里先就几个简单的概念问题作以介转载 2013-06-15 11:27:51 · 923 阅读 · 0 评论 -
ONVIF
什么是ONVIF ?ONVIF规范描述了网络视频的模型、接口、数据类型以及数据交互的模式。并复用了一些现有的标准,如WS系列标准等。ONVIF规范的目标是实现一个网络视频框架协议,使不同厂商所生产的网络视频产品(包括摄录前端、录像设备等)完全互通。ONVIF规范描述了网络视频的模型、接口、数据类型以及数据交互的模式。并复用了一些现有的标准,如WS系列标准等。ONVIF规转载 2013-06-03 16:05:40 · 1275 阅读 · 0 评论 -
SIP研究报告(入门推荐)
第1章 SIP概述1.1 SIP介绍1.1.1 基本概念SIP(Session Initiation Protocol,会话发起协议)是由IETF(Interne工程任务组) 提出的IP电话信令协议。它的主要目的是为了解决IP网中的信令控制,以及同SoftSwitch的通信,从而构成下一代的增值业务平台,对电信,银行,金融等行业提供更好的增值业务。SIP是一种应用层控制协议转载 2013-06-15 11:37:35 · 6934 阅读 · 0 评论 -
利用live555 Media Server和VLC Active ocx实现简单的流媒体点播系统(B/S)
1. 大体的架构及流程 实现视频点播系统,B/S架构,服务端至少应该是两个服务器:流媒体服务器,web服务器。客户端则就是web页面。当开启页面后则是客户端和服务器的第一次交互,通过http协议得到页面。里面会有流媒体地址的信息,浏览器里面点击显示视频组件,将流媒体的地址传给流媒体播放器,并启动播放器去请求视频。这是第二次交互。服务器端流媒体服务器发送流给客户端,页面上播放就ok原创 2013-05-31 16:18:26 · 3699 阅读 · 5 评论 -
【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 · 12242 阅读 · 23 评论 -
【GBT28181开发:SIP协议实践】之设备状态查询
下面学习的是设备状态查询的流程,和设备信息、设备目录的流程差不多,主要是描述的协议字段不同,模拟SPVMN系统向源设备查询其当前状态,记录下交互的消息,详细研究了下:转载请注明出处:http://blog.youkuaiyun.com/longlong530一.环境搭建:环境准备:http://blog.youkuaiyun.com/longlong530/article/detail原创 2013-06-27 13:30:32 · 4812 阅读 · 0 评论 -
【GBT28181开发:SIP协议实践】之设备远程启动
下面学习的是设备远程控制的流程,和设备信息、设备目录、设备状态的流程差不多,主要是描述的协议字段不同,模拟SPVMN系统向源设备发送远程启动控制指令,记录下交互的消息,详细研究了下:转载请注明出处:http://blog.youkuaiyun.com/longlong530一.环境搭建:环境准备:http://blog.youkuaiyun.com/longlong530/articl原创 2013-06-27 13:53:51 · 4250 阅读 · 0 评论