本文转自博客:http://blog.csdn.net/xinlanbobo/article/details/53224445 上一篇博客<EasyIPCamera通过RTSP协议接入海康.大华等摄像机,摒弃私有SDK接入弊端>简单介绍了自己的需求,并对EasyIPCamera_RTSP进行编译.运行.本篇博客针对EasyIPCamera_RTSP进行二次开发,增添读取配置文件.读取数据库的功能,将EasyIPCamera_RTSP打造成为简单的RTSP流媒体服务器. 1. 读取配置文件(读数…
问题描述 在3年前我当时基于EasyDarwin为用户开发了一款RTSP拉模式转发的程序,也发布了一篇博客<用Darwin开发RTSP级联服务器(拉模式转发)>,当时考虑的很简单,只要将RTSP源的sdp和RTP流拉取过来,不做任何变动立即转发即可实现拉模式转发了,而且CPU占用也会非常低,基本上就是跑一个数传,其效果也正如预期的那样,一个EasyDarwin拉模式转发的服务器,可以带动很多个IPC的流分发,再次以RTSP+RTP协议的形式分发出去: 但是,近期有我们的一位EasyDarwin…
源代码下载地址:https://github.com/EasyDarwin orwww.easydarwin.org 在博客 在Darwin进行实时视频转发的两种模式 中,我们描写叙述了流媒体server对源端音视频转发的两种模式.当中一种#拉模式# 转发.在我们通常的项目中常常会用到.比方在传统视频监控行业,IP摄像机部署在监控内网的各个地点.我们须要将他们进行集中式的管理,而且对外公布,这时候我们就须要用到一台流媒体server,可以拉取所需的摄像机的音视频流,并做转化(如RTMP.HTTP…
源码下载地址:https://github.com/EasyDarwin orwww.easydarwin.org 在博客 在Darwin进行实时视频转发的两种模式 中,我们描述了流媒体服务器对源端音视频转发的两种模式,其中一种#拉模式# 转发,在我们通常的项目中经常会用到,比如在传统视频监控行业,IP摄像机部署在监控内网的各个地点,我们需要将他们进行集中式的管理,并且对外发布,这时候我们就需要用到一台流媒体服务器,能够拉取所需的摄像机的音视频流,并做转化(如RTMP.HTTP等),作为监控内网…
在之前的一篇博客<web无插件播放RTSP摄像机方案,拒绝插件,拥抱H5!>中,描述了实现一套H5无插件直播方案的各个组件的参考建议,又在博客<EasyNVR H5流媒体服务器方案架构设计之视频能力平台>中对整体的架构设计思路做了总结,做高内聚.低耦合的视频能力平台,不涉足业务部分!那么今天,我们来公开一下EasyNVR到底是如何实现这些功能的: 一.程序框架 熟悉EasyDarwin的同学都知道,EasyDarwin作为老牌的功能框架,在很多领域是非常能够满足开发者需求的,尤其是…
拉模式转发 拉模式转发,顾名思义就是服务器主动从源端(IPCamera.NVR.或者其他流媒体服务器)通过RTSP/RTP协议将流媒体音视频数据拉取到流媒体转发服务器,再通过内部分发调度机制,分发给请求转发的客户端的过程: 拉模式转发的用途非常广泛:内网直播.服务器级联.NVR等各个方面,结合服务端存储,还可以做成边转发直播.边录像的功能: EasyDarwin拉模式转发 EasyDarwin的拉模式转发需要做到几点: 通用接入:接入市面上大部分的IPCamera及NVR: 按需拉取:只有在有用…
前言介绍 随着互联网的发展,尤其是移动互联网基于H5.微信的应用越来越多,企业也更多地想基于H5.微信公众号来快速开发和运营自己的产品,而传统的安防IPC所输出的各种RTSP.GB28181.SDK视频流,无法直接在web或者微信上进行无插件化的播放,此时就提出了一种安防设备互联网化的需求,基本要求是:无插件.纯web.全平台PC/Android/iOS.支持微信.支持分享! EasyNVR互联网直播方案 EasyNVR互联网直播系统完全解决了上述问题,实现了一个完整的.小而美的传统安防向互联网…
Dropdown.js 前言 在SPA(Single Page Application)盛行的时代,jQuery插件的轮子正在减少,由于我厂有需求而开发了这个插件.如果觉得本文对您有帮助,请给个赞,以表对我的鼓励和支持.(๑•ᴗ•๑)如果觉得有什么问题,可以到 Github 提Issue,欢迎大家提意见~ 介绍 Dropdown是面向PC端的基于jQuery开发的轻量级下拉框插件,支持key/value搜索,有token和select两种模式. 版本 1.0.0 支持 Internet Expl…
转自:https://www.cnblogs.com/Survivalist/p/8094069.html ActiveMQ基本详解与总结 基本使用可以参考https://www.cnblogs.com/zhuxiaojie/p/5564187.html 和 https://blog.csdn.net/lifetragedy/article/details/51836557 MQ简介: MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过写和检…
需求背景 最近有很多用户咨询关于视频点播问题,主要需求集中在如何搭建属于自己的视频点播平台: 实现的功能可以大体归类为:对应自身拥有的视频文件,需要发布到一个网站,其他用户都可以实现点播观看. 针对于类似的视频点播功能,EasyDSS视频点播的功能完美地满足了用户的诉求. 关于视频点播,EasyDSS集成了对应的视频点播能力,本篇博文将介绍一下EasyDSS点播相关功能: EasyDSS视频点播常见的使用场景有: 视频网站.党政宣传.门户网站视频点播 在线教育.精品课堂 短视频点播 企业.集团视…
ZeroMQ系列 之NetMQ 一:zeromq简介 二:NetMQ 请求响应模式 Request-Reply 三:NetMQ 发布订阅模式 Publisher-Subscriber 四:NetMQ 推拉模式 Push-Pull NetMQ 推拉模式 Push-Pull 1:简介 推拉模式,也叫 管道模式"Parallel Pipeline".想象一下这样的场景,如果需要统计各个机器的日志,我们需要将统计任务分发到各个节点机器上,最后收集统计结果,做一个汇总.PipeLine比较适合于…
基于jQuery的input输入框下拉提示层,方便用户输入邮箱时的提示信息,需要的朋友可以参考下     效果图   // JavaScript Document (function($){ $.fn.extend({ "changeTips":function(value){ value = $.extend({ divTip:"" },value) var $this = $(this); var indexLi = 0; //点击document隐藏下拉层 $…
sns系统,微博系统都应用到了feed(每条微博或者sns里的新鲜事等我们称作feed)系统,不管是twitter.com或者国内的新浪微博,人人网等,在各种技术社区,技术大会上都在分享自己的feed架构,也就是推拉模式(timyang上次也分享了新浪微薄的模式).下面我们就微博的feed推拉(push,pull)模式做一下探讨,并提出新的时间分区拉模式. 众所周知,在微博中,当你发表一篇微博,那么所有关注你的followers(粉丝)都会在一定的时间内收到你的微薄,这有点像群发一封邮件,所有的…
基于Live555,ffmpeg的RTSP播放器直播与点播 多路RTSP高清视频播放器下载地址:http://download.csdn.net/detail/u011352914/6604437多路RTSP播放器源码下载地址:http://download.csdn.net/detail/u011352914/6603251多路RTSP播放器SDK说明下载地址:http://download.csdn.net/detail/u011352914/6603271详细完整资料下载地址:http:/…
插件式的例子 QQ电脑管家,有很多工具列表,点一下工具下载后就可以开始使用了 eclipse ,X Server 等等 插件式的好处 插件降低框架的复杂性,把扩展功能从框架中剥离出来 让第三方有机会来扩展程序的功能 思路       公开一个插件接口,如果.DLL或.EXE的代码中有继承这个接口就将其示为插件,并将这些插件放在同一目录.运行程序的时候扫描目   录并通过反射判断.DLL或.EXE中是否存在该接口,若存在,则当作插件加载进来.如下图示   基于.net 职责链来实现 插件模式   …
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.javaCV-openCV) javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG) javaCV开发详解之4:转流器实现(也可作为本地收流器.推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp…
javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.javaCV-openCV) javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG) javaCV开发详解之4:转流器实现(也可作为本地收流器.推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp…
关于实时流媒体传输的开源库,目前流行的主要有两个:live555和jrtplib. 其中live555将rtp.rtcp和rtsp的传输协议实现集于一身,功能齐全,是个超强的集合体.但是对于嵌入式系统来说,live555的负载明显过大(与tcp直接传输媒体流相比). 而jrtplib则是只实现了rtp和rtcp的部分,而没有实现RTSP的部分.这既是jrtplib的短板,但同时也是jrtplib的优势. 对比一下live555和jrtplib的example程序,我们可以发现jrtplib要容易…
以下是基于KWIC 的keyword匹配算法(管道+过滤器模式下实现) 关键部分的管道+过滤器 软件体系下的实现, 在非常多的keyword搜索平台都使用了这一 循环移位+排序输出的 keyword匹配算法: 详细需求例如以下: 1.使用管道-过滤器风格: 每一个过滤器处理数据,然后将结果送至下一个过滤器,. 要有数据传入,过滤器即開始工作. 过滤器之间的数据共享被严格限制在管道传输 四个过滤器: 输入(Input filter): 从数据源读取输入文件,解析格式,将行写入输出管道 移位(Cir…
我们知道,消费者有两种方式从消息中间件获取消息: 推模式:消息中间件主动将消息推送给消费者 拉模式:消费者主动从消息中间件拉取消息 推模式将消息提前推送给消费者,消费者必须设置一个缓冲区缓存这些消息.好处很明显,消费者总是有一堆在内存中待处理的消息,所以效率高.缺点是缓冲区可能会溢出. 拉模式在消费者需要时才去消息中间件拉取消息,这段网络开销会明显增加消息延迟,降低系统吞吐量. 选择推模式还是拉模式需要考虑使用场景. 前面 HelloWorld 例子中使用 Consumer 接口的方式是推模式.…
命令行可是跨进程通信的一种非常方便的手段呢,只需启动一个进程传入一些参数即可完成一些很复杂的任务.NuGet 为我们提供了一种自动导入 .props 和 .targets 的方法,同时还是一个 .NET 的包平台:我们可以利用 NuGet 发布我们的工具并自动启用这样的工具. 制作这样的一个跨平台 NuGet 工具,我们能够为安装此工具的项目提供自动的但定制化的编译细节——例如自动生成版本号,自动生成某些中间文件等. 本文更偏向于入门,只在帮助你一步一步地制作一个最简单的 NuGet 工具包,以…
使用如下命令执行应用程序: 和"基于YARN的Resource Manager的Client模式(集群)"运行模式,区别如下: 在Resource Manager端提交应用程序,会生成SparkSubmit进程,该进程只用来做Client端,应用程序提交给集群后,就会删除该进程. Resource Manager在集群中的某个NodeManager上运行ApplicationMaster,该AM同时会执行driver程序.紧接着,会在各NodeManager上运行CoarseGrain…
前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案.对于Seata不太了解的朋友,可以看下我之前写的文章: 微服务开发的最大痛点-分布式事务SEATA入门简介. AT模式 AT模式怎么理解 AT模式下,每个数据库被当做是一个Resource,Seata 里称为 DataSource Resource.业务通过 JDBC 标准接口访问数据库资源时,Se…
前言 Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务.Seata 将为用户提供了 AT.TCC.SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案. 对于Seata不太了解的朋友,可以看下我之前写的文章: 微服务开发的最大痛点-分布式事务SEATA入门简介 微服务痛点-基于Dubbo + Seata的分布式事务(AT模式) TCC模式 TCC模式怎么理解 TCC(Try-Confirm-Cancel)实际上是服务化的两阶段提交协议,业务开发者需…
本教程基于CentOS7,开始本教程前,请确保您的Linux系统已安装Docker. 1.使用docker下载redis镜像 docker pull redis 安装完成后,使用docker images命令,查看是否安装成功  2.redis集群搭建 (1)使用以下命令启动3个Redis docker run --name redis-node1 -p 6379:6379 -d docker.io/redis docker run --name redis-node2 -p 6380:6380…
一.RTSP命令简述 RTSP是用来控制实时流媒体“播放”.“暂停”.“停止”.“录像”等行为的传输协议.该协议规定了一系列命令以及这些命令的发送格式,RTSP客户端可以通过发送这些指定的命令,从而控制媒体流数据的传输.rfc2326上明确指定的有以下11个命令:DESCRIBE, ANNOUNCE, GET_PARAMETER, OPTIONS, PAUSE, PLAY, RECORD, REDIRECT, SETUP, SET_PARAMETER, TEARDOWN.要完成基本的视频流传输,…
提出问题 EasyNVR是一套摄像机无插件直播的流媒体服务器软件,他可以接入各种各样的摄像机,再经过转化统一输出无插件化直播的RTMP.HLS.HTTP-FLV流,同时,EasyNVR为了数据安全,提供了鉴权功能,可以配置成只有登录后才能直播观看: 但这个时候问题又来了,很多企业用户的需求是简单观看需要,数据安全也需要,简易开发更需要,这个时候就需要一套类似于单点登录这种简易登录鉴权模式,让基本的安全和功能都得到保障,于是,我们有EasyNVR的企业用户就提出了建议: 1.流媒体访问规范 Htm…
方案介绍 目前互联网直播的CDN和标准RTMP流媒体服务器通常只能接收RTMP格式的音视频推流.目前市场上有一些自带RTMP推流的摄像机和编码器,可以直接在其rtmp推流配置里面配置推送到RTMP流媒体服务器上.但是大部分的安防网络摄像机还是不带推流功能,尤其是海康.大华.宇视等通用性价比高的摄像机,是不支持的,所以,对于这种摄像机只能通过二次开发的方式,先获取摄像机实时视频流并封装成RTMP/FLV格式进行推送,再由RTMP流媒体服务器进行转发/分发. 获取摄像机实时视频流的方式可以调用摄像机…
在之前的博客<EasyNVR H5流媒体服务器方案架构设计之视频能力平台>中我们描述了EasyNVR的定位,作为一个能力平台来进行功能的输出: 也就是说,在通常情况下,我们将一套视频的应用平台划分为3个部分:硬件设备层.视频能力平台层(PaaS层).视频应用平台层(SaaS层),EasyNVR的定位就是能力平台PaaS层,将各种硬件厂家的摄像机接入进来,再做能力发布,提供给应用SaaS层调用,本文档中的"第六章"中提供了EasyNVR的API接口文档,用户只需要根据API接…
背景分析 EasyDSS流媒体解决方案总体可划分成三个部分:前端视频源设备(PC.手机.摄像机)流媒体数据获取并即时回传.流媒体服务器端直播和录像与回放.客户端直播播放与录像检索回放.前端推流我们使用跨平台的RTMP推送库EasyRTMP(支持平台包括有:Windows.Linux.Android.iOS.ARM),流媒体服务器端采用EasyDSS流媒体服务软件,客户端支持全平台(Windows.Android.iOS.H5),客户端可通过EasyDSS流媒体服务器提供的HTTP服务接口,结合E…