lua

RTSP拉流协议网络摄像头无插件直播视频平台EasyNVR拉流如何把视频流保存成视频文件播放?

有些话、适合烂在心里 提交于 2020-12-26 05:45:43
RTSP协议是TCP/IP协议体系中的一个应用层协议,EasyNVR视频平台即是支持RTSP协议的流媒体服务器,能够自由对接流媒体服务器平台,支持微信、QQ、支付宝等工具,扫一扫直接观看,且不限制观看人数。 EasyNVR视频平台拉取RTSP流时,在使用wireshark抓包取RTP数据包时,如何把RTP传输的视频流保存成视频文件进行播放? 问题分析: 在EasyNVR拉取摄像头的视频流时,通过wireshark抓包可以看到,EasyNVR与摄像头之间通过RTP传输视频流,那如何确认视频源是否有问题,可以在wireshark抓包的时候,保存摄像头通过RTP协议传输过来的视频流,如何通过wireshark保存RTP数据包成视频文件? 在wireshark安装目录下的init.lua文件中的enable_lua为true 在init.lua的最后加上dofile(DATA_DIR…“rtp_h264_extractor.lua”) 下载rtp_h264_extractor.lua文件: https://github.com/volvet/h264extractor 把rtp_h264_extractor.lua文件放在于init.lua同目录下 打开wireshark后,在wireshark工具菜单栏出现Extract h264 stream from RTP

Unity资源热更新

末鹿安然 提交于 2020-12-23 15:13:11
前一段时间换工作,一直没有稳定下来,所以一直没有写文章,今天好不容易有了时间,刚刚好现在的工作刚刚写了资源更新这一块,故记录下。 0 编辑器中的工作 需要在编辑器中进行资源打包(自定义版本号),会生成资源配置表和版本号配置。并且将两个配置表和需要更新的资源上传值服务器。一般这一步都是在专门的打包工程进行,可以使用Unity命令行工具,或者使用jenkins在自动构建时自动进行。 1 资源配置表 资源配置表用来表示记录资源。保存资源的路径和资源的MD5值类似如下 ABs/font/font.ab|1746131361f22d8575fb5832db155932|5c084153d4545e6fed456182ec47c4c9 ABs/shader/shader.ab|b012e0dfd1c75538bf0f8a0f65272f15|cc0ca75be9cd3a78642cc2b9b4604ebe ABs/uiatlas/activesence.ab|3041b67bfa0f844dd99310380afe371e|35386009967d4eaa39507b3dd713d4e3 ABs/uiatlas/choukagold.ab|6c511f035d85a404726658aea8dff57c|8d19009e595db0d54b4fa78e82f069b5 ABs/uiatlas

由Spring应用的瑕疵谈谈DDD的概念与应用(二)

。_饼干妹妹 提交于 2020-12-21 22:16:57
在 上一篇 文章中,通过Spring Web应用的瑕疵引出改善的措施,我们讲解了领域驱动开发的相关概念和设计策略。本文主要讲解领域模型的几种类型和DDD的简单实践案例。 架构风格 在《实现领域驱动设计》一书中提到了几种架构风格:六边形架构、REST架构、CQRS 和事件驱动等。在实际使用中,落地的架构并非是纯粹其中的一种,而很有可能户将上述几种架构风格结合起来实现。 分层架构 分层架构的一个重要原则是每层只能与位于其下方的层发生耦合。分层架构可以简单分为两种,即严格分层架构和松散分层架构。在严格分层架构中,某层只能与位于其直接下方的层发生耦合,而在松散分层架构中,则允许某层与它的任意下方层发生耦合。DDD分层架构中比较经典的三种模式:四层架构、五层架构和六边形架构。 四层架构 Eric Evans在《领域驱动设计-软件核心复杂性应对之道》这本书中提出了传统的四层架构模式: User Interface为用户界面层(或表示层),负责向用户显示信息和解释用户命令。这里指的用户可以是另一个计算机系统,不一定是使用用户界面的人。 Application为应用层,定义软件要完成的任务,并且指挥表达领域概念的对象来解决问题。这一层所负责的工作对业务来说意义重大,也是与其它系统的应用层进行交互的必要渠道。应用层要尽量简单,不包含业务规则或者知识,而只为下一层中的领域对象协调任务,分配工作

PHP+Redis令牌桶限流

早过忘川 提交于 2020-12-19 07:55:03
一 、业务场景 在做项目系统接口服务的时候,为了防止客户端对于接口的滥用、保护服务器的资源, 通常来说我们会对于服务器上的各种接口进行请求次数的限制。比如对于某个用户,他在一个时间段内,比如 1 0秒,请求服务器接口的次数不能够大于一个上限,比如说 5 次。如果用户调用接口的次数超过上限的话,就直接拒绝用户的请求,返回错误信息。 服务接口的流量控制策略:限流、分流、降级、熔断等。本文讨论下限流策略,虽然降低了服务接口的访问频率和并发量,却换取服务接口和业务应用系统的高可用。 二、常用的限流算法 1、漏桶算法 漏桶(Leaky Bucket)算法思路比较简单 , 水 ( 请求 ) 先进入到漏桶里 , 漏桶以一定的速度出水 ( 接口有响应速率 ), 当水流进速度过大会直接导致桶溢出 ( 访问频率超过接口响应速率 ), 然后就拒绝请求 , 这里我们可以得出结论:漏桶算法能强行限制数据的传输速率。 漏桶算法的话一般有两个变量,一个是桶的大小 , 也就是你的承载量,比如流量突发增多时可以存多少的水 , 另一个就是你能够去正常处理的请求,水桶漏洞的大小。 因为漏桶的漏出速率是固定的,所以即使网络中不存在资源冲突 ( 没有发生拥塞 ), 漏桶算法也不能使流量突发到端口。因此,漏桶算法对于存在突发特性的流量来说缺乏效率。 2、令牌桶算法 令牌桶算法(Token Bucket)和 Leaky

Redis 核心技术

北慕城南 提交于 2020-12-18 17:32:13
1. Redis 核心数据结构与高性能原理 1.1 Redis 核心数据结构 1.1.1 string 1.1.2 hash 1.1.3 list 1.1.4 set 1.1.5 zset 1.1.6 bit 1.1.7 geo 1.1.8 其他高级命令 1.2 Redis 高性能核心原理 1.3 管道(pipeline) 1.4 Lua 脚本 1.5 Redis 的设计与实现 2. Redis 持久化、主从与哨兵架构 2.1 Redis 持久化 2.1.1 RDB 快照(snapshot) 2.1.2 AOF(append-only file) 2.1.3 RDB 与 AOF 的选择 2.1.4 混合持久化 2.2 Redis 主从架构 2.3 Redis 哨兵高可用架构 2.3.1 哨兵 leader 选举流程 2.3.2 哨兵架构缺点 3. Redis 集群架构 3.1 集群原理分析 3.1.1 槽位定位算法 3.1.2 跳转重定向 3.1.3 Redis 集群节点间的通信机制 3.1.4 网络抖动 3.2 集群选举原理分析 3.2.1 集群是否完整才能提供服务 4. Redis 分布式锁 4.1 分布式锁的适用场景 4.2 Redis 分布式锁的实现 4.3 Redis 实现分布式锁的问题 4.4 如何保障一致性问题 4.5 高性能的分布式锁如何实现 5. Redis

[触动精灵] 零基础小白学触动1-4

柔情痞子 提交于 2020-12-18 06:54:12
视频地址 http://www.iqiyi.com/playlist443635102.html 零基础小白学触动 - 01 - 说在前面的废话 小知识:Tslib库的定位 是官方为了解决小白不会封装自己的函数 提供了一些常见的封装功能 熟练后 我们可以自己封装自己的函数实现功能 可以不用 载入这个库文件 小知识:手册非常强大 手册的搜索功能 和目录 列表 ​ 零基础小白学触动 - 02 - 注释和循环语句 没什么可说的 注释语句 : -- --[[]]-- 流程语句 If 条件1 then Elseif 条件2 then Else --都不符合条件则 End 循环语句: 无限循环 或者条件循环 小知识:While 条件 do end ​ 小知识:Repeat until 条件 ​ For i=1,10,2 do end For k,v in pairs(表或者枚举函数) do end 小知识:模拟器如何连接触动精灵 ​ 注: 总结下自己处理的思路 打开[模拟器] [模拟器上的触动精灵] 打开 [触动精灵的电脑客户端] 尝试连接 如果失败 则打开 那个文件夹 找[连接.bat] 运行 [要运行2次后 窗口自己消失]才算 如下图 然后再次尝试连接 ​ ​ 如果依然无法 则 重新解压adb文件夹 重新释放 删除设备 然后按照最初步骤依次来一次即可 小知识:留心一个问题nLog函数

一文掌握 Redisson 分布式锁原理(值得收藏)

戏子无情 提交于 2020-12-17 15:33:14
Redisson 可以直接查看 Github Redisson官网 介绍, 没有了解过的小伙伴, 看一下 Redisson 的 WIKI 目录, 仔细瞅瞅 Redis 是如何被 Redisson 武装到牙齿的 这里先过一下和文章有关的一部分内容 通过项目简介可以看出来, 写这个项目介绍的人水平非常哇塞哈, 从第一段咱们就知道了两个问题 Redisson 是什么 Redisson 是架设在 Redis 基础上的一个 Java驻内存数据网格框架 , 充分利用 Redis 键值数据库提供的一系列优势, 基于 Java 使用工具包中常用接口 , 为使用者提供了 一系列具有分布式特性的常用工具类 Redisson 的优势 使得原本作为协调单机多线程并发程序的工具包 获得了协调分布式多机多线程并发系统的能力 , 大大降低了设计和研发大规模分布式系统的难度 同时结合各富特色的分布式服务, 更进一步 简化了分布式环境中程序相互之间的协作 了解到这里就差不多了, 就不向下扩展了, 想要了解详细用途的, 翻一下上面的目录 Redisson 重入锁 由于 Redisson 太过于复杂, 设计的 API 调用大多用 Netty 相关, 所以这里只对 如何加锁、如何实现重入锁进行分析以及如何锁续时进行分析 创建锁 我这里是将 Redisson 的源码下载到本地了 下面这个简单的程序, 就是使用

使用Redis搭建电商秒杀系统

我的梦境 提交于 2020-12-17 00:41:58
背景 秒杀活动是绝大部分电商选择的低价促销、推广品牌的方式。不仅可以给平台带来用户量,还可以提高平台知名度。一个好的秒杀系统,可以提高平台系统的稳定性和公平性,获得更好的用户体验,提升平台的口碑,从而提升秒杀活动的最大价值。 本文讨论云数据库Redis版缓存设计高并发的秒杀系统。 秒杀的特征 秒杀活动对稀缺或者特价的商品进行定时定量售卖,吸引成大量的消费者进行抢购,但又只有少部分消费者可以下单成功。因此,秒杀活动将在较短时间内产生比平时大数十倍,上百倍的页面访问流量和下单请求流量。 秒杀活动可以分为3个阶段: 秒杀前:用户不断刷新商品详情页,页面请求达到瞬时峰值。 秒杀开始:用户点击秒杀按钮,下单请求达到瞬时峰值。 秒杀后:一部分成功下单的用户不断刷新订单或者产生退单操作,大部分用户继续刷新商品详情页等待退单机会。 消费者提交订单,一般做法是利用数据库的行级锁,只有抢到锁的请求可以进行库存查询和下单操作。但是在高并发的情况下,数据库无法承担如此大的请求,往往会使整个服务blocked,在消费者看来就是服务器宕机。 秒杀系统 秒杀系统的流量虽然很高,但是实际有效流量是十分有限的。利用系统的层次结构,在每个阶段提前校验,拦截无效流量,可以减少大量无效的流量涌入数据库。 利用浏览器缓存和CDN抗压静态页面流量 秒杀前,用户不断刷新商品详情页,造成大量的页面请求。所以

维格陈霈霖:技术管理三宗罪,如何打造「完美的」高效协作数据库

烈酒焚心 提交于 2020-12-16 20:02:04
2020 年全球技术领导力峰会在厦门召开,vika 维格表创始人陈霈霖应邀出席,分享了创业路上的经验以及曾担任大型独角兽企业 CTO 的行业观察,全面剖析企业技术管理层面的痛点,从「技术管理三宗罪」切入,提出了全新的「维格思维」。 以下为《技术管理三宗罪:如何打造「完美的」高效协作工具》主题演讲分享。 陈霈霖:vika 维格表创始人,前喜茶 CTO 兼数字营销负责人,主导设计喜茶 GO 小程序从 0 到 2000 万增长、电商、会员体系,前金山软件架构师,开源框架 KSFramework 创始人(Github 1000stars、仙剑 4 等手游使用),现创办的 vika 维格表在半年内获得 IDG 资本等 3 家机构投资。 技术管理想要敏捷落地,先发现问题 我们先一起来看看旧报纸。 第一份报纸是一个广告,里面有三个电脑品牌:Commodore、Atari、Apple,前面两个大家可能都没听过,Apple 应该都比较熟悉。这份报纸广告说的是:你购买这个电脑能省更多的钱。第二份报纸则是苹果公司的广告。 两张报纸拥有同一个主题: 帮 VisiCalc 软件打广告。 现在看来很奇怪吧?电脑硬件公司帮软件打广告。 但在 1980 年,消费者买电脑的唯一用途是这款叫 VisiCalc 的电子表格软件。当时的个人电脑,还被大众戏称为「铁盒子(THE BOX)」。 乔布斯曾经承认

Kong APIGW — Overview

◇◆丶佛笑我妖孽 提交于 2020-12-16 12:07:37
目录 文章目录 目录 Kong Kong 的软件架构 Kong 的插件 Lua Nginx Module 零信任网关 技术选型 Kong Kong 是一款由 Mashape 公司开源的 APIGW 软件,基于 OpenResty(Nginx + Lua 模块)实现,具有高可用、易扩展的特性。Kong 在 Mashape 上管理了超过 15,000 个 API,为 200,000 开发者提供了每月数十亿的请求支持。 官网 :https://konghq.com/kong/ Github :https://github.com/Kong/kong Docs :https://docs.konghq.com/ 中文文档 :https://github.com/qianyugang/kong-docs-cn Kong 的本质是一个在 Nginx 上运行的 Lua 应用程序,由 lua-nginx-module 实现。Kong 和 OpenResty 一起打包发行,其中已经包含了 lua-nginx-module。可以简单理解为:Kong > OpenResty > Nginx + lua-nginx-module。 Kong 的特性: 可扩展 :Kong Server 支持水平扩展。 插件 :Kong Server 实现了 Plugin 机制进行功能定制,通过 RESTful Admin