- 博客(53)
- 资源 (6)
- 收藏
- 关注
原创 GB28181协议实现系列之----PS流封装(6)
前面的文章收到了不少同仁希望我开放源码,由于之前时间太忙了,一直在做另外产品线的架构设计及架构演化,核心模块的编码,关键技术问题解决等工作确实有较长的时间未继续写文章了。以至于博客的排名越来越低,从2w+变成了10w+,感觉自己快要千里之外了。 看了下时间,上次发文章居然是17年12月。。。也就是说我有4年都在此专栏没有继续更新文章了,最近突然想起来,我应该保持自己永远是个做技术的本性,我决定在github上开源部分GB28181的代码,供大家学习及指导,欢迎大家在上面多提...
2021-12-01 23:21:22
3210
转载 Mediasoup简介及其基本概念
1.概念 mediasoup 是完全兼容webrtc的高性能sfu服务器,它由ts语言实现的master端和基于libuv的c++语言实现的work模块组成。2.MediaSoup的特性特性一 支持IPV6 ICE/DTLS/RTP/RTCP 既可以在TCP协议上运行也可以在UDP协议上运行 支持Simulcast(多流发送) 和 SVC(分层接收)特性二 支持拥塞控制 带宽评估 (Remb前几个章节有...
2021-04-16 21:57:51
2170
转载 设计模式C++实现(1)——(创建型)工厂模式
一 工厂模式软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。设计模式中运用了面向对象编程语言的重要特性:封装、继承、多态,真正领悟设计模式的精髓是可能一个漫长的过程,需要大量实践经验的积累。最近看设计模式的书,对于每个模式,用C++写了个小例子,加深一下理解。主要参考《大话设计模式》和《设计模式:可复用面向对象软件的基础》两本书。本文介绍工厂模式的实现。 工厂模式属于创建型模式,大致可以分为三类,简单工厂模式、工厂方法模式、抽象工厂模式。听上去差不多,都是工厂模式。下...
2020-05-12 15:49:16
374
原创 国标设备终端实现GB/T 28181总体设计概述
自从国标28181推出以来,国家安防行业一直在主推这个标准协议。刚开始确实有不少阻力,比如我刚从13年做的时候,很多厂家都还采用私有协议或是ONVIF协议作为主要的对接协议。这样很大的阻碍了安防行业的互联互通,既然GB28181的推出刚出来是有些不足(比如缺少很多的控制信令标准),这个在2014补充版及2016正式版(替代2011版)已经基本完善了。 GB28181最大...
2019-06-05 23:21:13
3995
1
转载 FreeSWITCH之SIP 模块 - mod_sofia
转自:http://www.freeswitch.org.cn/2010/08/03/di-qi-zhang-sip-mo-kuai-mod_sofia.htmlSIP 模块是 FreeSWITCH 的主要模块,所以,值得拿出专门一章来讲解。在前几章时里,你肯定见过几次 sofia 这个词,只是或许还不知道是什么意思。是这样的,Sofia-SIP是由诺基亚公司开发的 SIP 协议栈,它以...
2019-05-14 14:43:13
1915
转载 软交换FreeSWITCH系统概要和源代码初步分析
转自http://zhshquan.blog.163.com/blog/static/1041432011315112257603/FreeSWITCH 使用线程模型来处理并发请求,每个连接都在单独的线程中进行处理。这不仅能提供最大强度的并发,更重要的是,即使某路电话发生问题,也只影响到它所在的线程,而不会影响到其它电话。FreeSWITCH 的核心非常短小精悍,这也是保持稳定的关键。所有其它...
2019-05-11 22:46:09
1990
原创 GB/T28181平台服务器解决方案简介
国标解决方案咨询:QQ:421954511。 随着国家公安部在2011年推出视频安防行业联网的国家标准GB/T28181-2011《安全防范视频监控联网系统信息传输、交换、控制技术要求》以来,全国的安防行业都在建设基于GB28181标准的前端设备、平台服务器、平台客户端等安防产品。在2016年又出台了新的GB/T28181-2016协议规范,对前面的进行了修正和补充...
2018-03-14 21:00:26
24769
3
原创 GB28181协议实现系列之----IPC音视频PS封装(5)
RTP封装PS RTP报文头格式(见RFC3550 Page12): 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 12 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |V=2|P|X| CC |M|
2017-12-26 21:57:14
10452
3
原创 GB28181协议实现系列之----IPC实时视频点播(4)
实时视频点播是IPC设备接入平台的最主要的功能,平台向设备获取流媒体的过程就是这个过程,设备收到这个点播请求,在交互完成会向平台推送音视频流媒体。 1. 实时点播是由SIP服务器向IPC发起的音视频点播业务,SIP协议的SDP消息体如下:v=0o=340200000020200000010 0 IN IP4 192.168.1.154s=Play
2017-12-26 21:49:40
13724
5
原创 GB28181协议实现系列之----IPC设备目录查询(3)
设备目录查询是国标平台对国标设备接入的目录查询,目的是查询该设备带有的监控点和报警设备信息以及语言设备信息。 1. SIP服务器首先发起请求要求查询设备目录,发送的协议体可以参考数据包。2. IPC收到设备的目录查询信息之后回复200OK。3. IPC向SIP服务器上报IPC的设备目录,以XML的协议体为目录信息:
2017-12-26 21:40:25
11535
2
原创 GB28181协议实现系列之----IPC设备注销(2)
IPC设备注销过程和注册流程一样,只是变化了其中的Expires值,注销过程Expires=0。 1. 注销的Expires必须为0,表示注销。 2. SIP服务器回401要求携带Authorization信息。 3. IPC向SIP服务器发送认证信息,认证信息和注册时候的认证信息相同。 3. 注销成功SIP服务器会返回200O
2017-12-26 21:34:35
2884
原创 GB28181协议实现系列之----IPC设备注册(1)
根据GB28181标准协议描述注册过程如下:注册过程的数据包,过程如下:1. IPC作为SIP代理,向SIP服务器注册的一个包,里面没有包含Authorization 字段。Expires: 7200为注册过期秒值。2. SIP服务器IPC返回了401状态码的SIP信息。要求IPC再次发送带有Authorization 字段的验证信息。
2017-12-26 21:25:28
6701
原创 GB/T-28181平台级联实现方式
GB/T-28181协议规范出台也有几年了,陆续相关的推广工作国家公安部进行的如火如荼。国标28181相对于国际上的安防协议标如ONVIF最大的优势是实现了平台级联方式,很多人会吐槽为何安防协议已经有了ONVIF的国际通用标准为何还要出台GB28181,其实GB28181还是和国际接轨的高大上协议(SIP、RTP、SDP、H.264等都是有RFC文档的)。级联方式更是为中国政府机关和平安城市、智慧...
2017-12-08 21:38:18
26855
2
原创 GB28181协议实现简介
国家为了规范安防行业的设备平台互联互通,在2012年出台了GB/T-28181的第一版标准: 这个版本我13年在工作中开发IPC设备使用过,当时觉得协议对流媒体的规范还是比较好(H.264+G711封装成PS流,再经过RTP协议进行实时传输),但是控制方面有很多不足,相对于当前流行的ONVIF协议在控制信令上还是有很多不足。去公安...
2017-03-15 10:06:33
70756
8
转载 configure: error: C++ preprocessor "/lib/cpp" fails sanity check
ubuntu 10.04.3 LTS版本安装tigervnc的时候出现如下错误checking how to run the C++ preprocessor... /lib/cppconfigure: error: C++ preprocessor "/lib/cpp" fails sanity checkSee `config.log' for more details.这
2016-03-29 09:35:05
1477
1
转载 gstreamer 0.10.36 源码编译error
在linux下编译gstreamer出现一下错误:grammar.tab.c: In function 'priv_gst_parse_yyparse':grammar.tab.c:1819:7: error: too few arguments to function 'priv_gst_parse_yylex' if (yychar == YYEMPTY)
2016-03-29 09:32:42
1564
转载 在ubuntu10.04下 GStreamer开发环境搭建
在ubuntu10.04下 GStreamer开发环境搭建 一 安装gstreamer1 下载gstreamer源码http://gstreamer.freedesktop.org/src/gstreamer/我下的是gstreamer-0.10.35.tar.gz2 进入目录,解压./configureadministrator@ubuntu:~/下载/gstr
2016-03-29 09:28:45
1220
转载 G.711 u律;A律 压缩算法
/********************************************************************** * g711.c * u-law, A-law and linear PCM conversions. *******************************************************************
2016-01-26 09:59:39
2945
转载 "undefined reference to" 问题解决方法
最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误:(.text+0x13): undefined reference to `func' 关于undefined reference这样的问题,大家其实经常会遇到,在此,我以详细地示例给出常见错误的各种原因以及解决方法,希望对初学者有所帮助。1. 链接时缺失了相关目标文件(
2015-09-14 14:49:05
2781
转载 tcpdump 移植
tcpdump 移植1、下载 libpcap-1.0.0.tar.gz 和 tcpdump-4.0.0.tar.gz URL:http://www.tcpdump.org/2、解压 执行如下命令:tar -zxvf libpcap-1.0.0.tar.gz 和 tar -zxvf tcpdump-4.0.0.tar.gz 使他们都在一个目录3、进入libpcap-1.0.0
2015-08-20 13:41:56
1371
原创 教你如何从wireshark中的RTSP流媒体提取H.264码流数据
相信很多做流媒体开发的朋友都在纠结如何抓取RTSP中的实际码流吧,因为从RTSP中提取h264文件不但可以让你详细分析码流,更让你能不通过任何其他方式分析网络流媒体的丢包、丢帧、卡顿、花屏等一些现实视频传输中经常遇到的问题。 网络抓包工具神器wireshark一定是大部分同仁都钟意的一款很好用的网络抓包工具吧,下面就教你怎么使用wireshark从rtsp中提取h264码流吧
2014-04-22 21:46:26
17058
原创 独立完成Hi3515 dvr的感触
上家公司离职已有半个多月了,由于在新公司上班有点忙碌,一直未能给自己这些日记,头一个星期就是做PS流封装,之后就是搞GB28181,感觉上给了我很大的满足感,我喜欢这种有团队感的,我将努力的做好自己的工作。经过了在上家公司工作半年的海思视频监控的研发工作,我现在给自己做的DVR说个感触吧。 一个专业做视频业务的公司是由不同的人员分工去完成一个项目的,但是我很有幸,一个
2013-03-13 23:11:52
4652
2
原创 分析当前形势下的视频监控
最近在研究GB28181,这个协议是去年公安部第一研究所公布施行的,纵观当前中国的做视频监控行业的企业大大小小估计有2000家以上吧,在这中环境下,有很多公司都是速成的开发出产品,包括我从事过有四家做这方面的公司中,还只有我现在这家和之前在深圳梦网科技那家公司是真真正正的做产品,不说其他的,一个产品代表的是公司形象,像这行业的老大哥有海康,大华等等,都是很有研发实力的,所以这个标准一出台,就遏制了
2013-03-13 22:38:57
2717
2
转载 ortp库API说明
最近在研究RTP和RTSP,在网上的资料还真是少,下面转载一个Ortp的API文章。好久没有写博客了,争取这个月写篇原创的文章。原文转自:http://blog.youkuaiyun.com/heanyu/article/details/6185914一、简介ORTP是一个支持RTP以及RFC3550协议的库,有如下的特性:(1)使用C语言编写,可以工作于win
2012-11-02 09:29:14
1212
原创 CYPEESS USB3.0程序解读之---SPI读写
前面已经解读了GPIO以及同步FIFO操作,下面我们看一个SPI读写的例子,它是主程序命令从SPI中读写一些数据。SPI传输子程序看一下: 页地址,字节计数,缓冲区,读写标志因为只能一页一页的读或写,故读写总是从页地址开始的/* SPI read / writefor programmer application. */CyU3PReturnStatus_tCyFxSpiTra
2012-07-18 23:26:11
2565
原创 CYPEESS USB3.0程序解读之---同步FIFO(slaveFifoSync)
上一篇文章解读了CYPRESS FX3的GPIO的操作过程,下面解读同步FIFO的一个例子(slaveFifoSync)。*生产者,消费者。1、首先看DMA的回调函数(cyu3dma.h):typedef void (*CyU3PDmaCallback_t) ( CyU3PDmaChannel *handle, /* Handle to the DMA channel. *
2012-07-18 23:11:05
5529
3
原创 CYPEESS USB3.0程序解读之---GPIO
CPRESS 官方给出的SDK1.1中(目前最新的SDK),提供了大量的例程供我们开发软件的时候作参考,就像STM32的开发一样提供了库一样,但是又不是库,仅仅是参考例程。首先看一个简单一点的GPIO的例子(GpioApp) 1.先是一个错误处理的函数,我们不需要它,故这是一个死循环。 2. CyFxDebugInit 这个函数,将串口作为调试口用115200bps。
2012-07-18 20:13:18
3668
10
原创 USB 3.0 开发要点
最近在公司里安排了我一个新的任务,那就是USB3.0的研发。对于我之前都是做ARM+LINUX和单片机软件研发的来说,虽然之前都是做驱动程序和应用程序,但是没有做与USB 相关的开发,毕竟这是第一次。还好都是用C/C++来进行嵌入式软件开发。所以一切进行比较顺利。其实,USB 3.0来说,虽然现在还没有广泛普及,但是我们几年后就会随处可见。想像一下,现在USB 2.0的高速模式才是480Mb/
2012-07-17 21:35:58
5981
26
转载 Linux音频编程指南——写得很好
OSS--跨平台的音频接口简介http://bbs.lemote.com/viewthread.php?tid=20410 OSS(Open Sound System)是 unix 平台上一个统一的音频接口, 即只要音频处理应用程序按照OSS的API来编写,那么在移植到另外一个平台时,只需要重新编译即可。OSS (Open Sound System)是unix平台上一个统
2012-05-29 14:33:33
1557
转载 U-BOOT启动过程分析 经典文章汇集
U-Boot启动过程尽管有了调试跟踪手段,甚至也可以通过串口打印信息了,但是不一定能够判断出错原因。如果能够充分理解代码的启动流程,那么对准确地解决和分析问题很有帮助。开发板上电后,执行U-Boot的第一条指令,然后顺序执行U-Boot启动函数。函数调用顺序如图6.3所示。看一下board/smsk2410/u-boot.lds这个链接脚本,可以知道目标程序的各部分链接顺序
2012-05-26 16:59:51
1427
转载 u-boot-2011.03在mini2440/micro2440上的移植(八)——结束语及资源下载
8.1 其他(1)支持使用向上的箭头显示上一条命令include/configs/micro2440.h#define CONFIG_CMDLINE_EDITING#ifdef CONFIG_CMDLINE_EDITING#undef CONFIG_AUTO_COMPLETE#else#define CONFIG_AUTO_COMPLETE#endif
2012-05-26 16:51:15
1012
转载 u-boot-2011.03在mini2440/micro2440上的移植(七)——支持Nand Flash启动
7.1 创建nand_read.c【注意】本程序只能用于读取2K/页的Nand。本人的Micro2440上的Nand Flash为256M,型号为K9F2G08 [408@WZC u-boot-2011.06]$ touch board/samsung/micro2440/nand_read.c[408@WZC u-boot-2011.06]$ cat> board/s
2012-05-26 16:50:36
1007
转载 u-boot-2011.03在mini2440/micro2440上的移植(六)——支持yaffs下载
6.1 include/conskfigs/micro2440.h添加#define CONFIG_CMD_NAND_YAFFS 【说明】本人在阅读cmd_nand.c时发现u-boot-2011.03已经支持yaffs写入,只需添加如上定义即可,但实际写入错误,再阅读源代码,发现只要按下一步修改即可,虽然这是最简单的方法,但似乎并不是最优的方法。6.2
2012-05-26 16:49:55
1034
转载 u-boot-2011.03在mini2440/micro2440上的移植(五)——支持Nand Flash
5.1 添加s3c2440_nand.c[408@WZC u-boot-2011.03]$ touch drivers/mtd/nand/s3c2440_nand.c [408@WZC u-boot-2011.03]$ cat> drivers/mtd/nand/s3c2440_nand.c#include #if 0#define DEBUGN printf
2012-05-26 16:48:52
848
转载 u-boot-2011.03在mini2440/micro2440上的移植(四)——支持内核启动
4.1 include/configs/micro2440.h添加#define CONFIG_SETUP_MEMORY_TAGS 1 //如果没有定义这个参数,则uboot参数必须加入men=内存大小#define CONFIG_INITRD_TAG 1#define CONFIG_CMDLINE_TAG 1 //设置boo
2012-05-26 16:47:19
697
转载 u-boot-2011.03在mini2440/micro2440上的移植(三)——支持DM9000
3.1 include/configs/micro2440.h删除#define CONFIG_CS8900 /* we have a CS8900 on-board */#define CONFIG_CS8900_BASE 0x19000300#define CONFIG_CS8900_BUS16 /* the Linux driver does accesses as
2012-05-26 16:46:34
887
转载 u-boot-2011.03在mini2440/micro2440上的移植(二)——在RAM中运行
2.1 include/configs/micro2440.h删除#define CONFIG_S3C2410 1 /* specifically a SAMSUNG S3C2410 SoC */#define CONFIG_SMDK2410 1 /* on a SAMSUNG SMDK2410 Board */添加#define CONFIG_S3C2440
2012-05-26 16:45:34
1029
转载 u-boot-2011.03在mini2440/micro2440上的移植(一)——准备工作
uboot自2010.09版以后有比较大的变化,首先是不再在顶层Makefile中配置板级支持文件,其次是重写了start.S和board.c,还有就是提供了对S3C2440的部分支持,使得在移植时难度减小。但由于是新版本,bug也有不少。本文尝试对u-boot-2011.03进行移植,主要参考了bscbem的日志和L_Backkom的专栏,在此表示感谢。bscbem的日志:http://my
2012-05-26 16:44:30
1027
转载 2440平台,SD卡启动WINCE,全部源码
【楼主位】 153290557 周远峰积分:110派别:等级:------来自:启动部分是拿liuweiele,其他也都是拿来主义,稍微改下就OK了! GUI部分只试过输出英文,其他没测,暂时没法搞了,因为昨天屏幕莫名烧掉了。。很无奈 FAT不支持长文件,刚开始是:NK_cs8900.nb0老是加载不了,后来改NK.nb0就OK了 卡是512MB的卡!
2012-05-26 16:43:08
2145
CYPRESS USB3.0 实例代码解读
2012-07-18
USB 3.0 规范
2012-07-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人