fluent

关于rtsp转码rtmp播放的两种方式,客户端直接转,远程服务器转

走远了吗. 提交于 2020-05-04 04:44:27
需求 一、场景 用户多家门店有监控探头,设备是海康的和大华的。用户总部和门店不在一个网络下,并且总部要能实时调用查看门店监控,和门店回放画面。我们知道监控摄像机获取的视频是 rtsp 流的格式。 只能在特用的软件中播放,并且只能在相同的网络下播放。用户要求开发一个管理软件根据业务需要来播放视频。最终的目地是要把rtsp 流视频 转换为能在浏览器,手机等主流的播放渠道上能播放的视频(rtmp,mp4,flv,m3u8等格式); 解决办法 (1)、客户端转码 我们用electron 来打包客户端,客户端中安装一个在线转码ffmpeg 模块,这个模块中有功能接口能直接对rtsp 进行转码(这种场景主要给 播放软件和门店在一个网络下能直接连接的场景); 用到两个模块 “fluent-ffmpeg” “node-media-server” fluent-ffmpeg 转码模块 我们用这个模块转码为rtmp 直播流,转码后推送到一个我们在软件内部搭建的一个rtmp 直播流服务器地址 “ rtmp://localhost:1938/live/livestream” node-media-server 模块做rtmp直播流服务器 上面的fluent-ffmpeg 模块转码推送rtmp 流到这个服务器 rtmp://localhost:1938/live/livestream,

EF6学习笔记四:一对多、多对多、一对一关系配置(Fluent API)

你说的曾经没有我的故事 提交于 2020-05-03 15:13:57
要专业系统地学习EF前往《你必须掌握的Entity Framework 6.x与Core 2.0》这本书的作者(汪鹏,Jeffcky)的博客:https://www.cnblogs.com/CreateMyself/ 现在就来到了重中之重的配置了:一对多、多对多、一对一关系的配置,我这里全部使用Fulent API 的方式来 一对多 一对多最简单了,写好你的数据模型,什么配置都不用做,生成的表结构就是你想要的 来个简单基类 public class BaseEntity { public BaseEntity() { this .Id = Guid.NewGuid().ToString(); this .AddTime = DateTime.Now; } public string Id { get ; set ; } public DateTime AddTime { get ; set ; } } View Code 来个简单图书馆类 public class Library:BaseEntity { public string Name { get ; set ; } public virtual ICollection<Book> Books { get ; set ; } } View Code 来个简单Book类 public class Book:BaseEntity

使用FluentMigrator进行数据库迁移

纵然是瞬间 提交于 2020-04-27 02:27:06
介绍 在开发的过程中,经常会遇到数据库结构变动(表新增、删除,表列新增、修改、删除等)。开发环境、测试环境、正式环境都要记性同步;如果你使用 EF 有自动迁移的功能,还是挺方便的。如果非 EF 我们需要手工处理,有时候会忘记,繁琐。恰好 网上有提供的工具来实现类似 EF 的迁移功能。如: SQL Server Data Tools 、 Fluent Migrator 、 RoundhousE 、 DbUp 、 Conclusion ;本文将着重分享下如何使用 Fluent Migrator 进行数据库迁移。 Fluent Migrator Fluent Migrator 是 .NET 下的一个数据库迁移框架。我们可以利用 Migration 基类,编写数据结构改变,它有两个方法 Up() 和 Down() 。 up 方法用于升级迁移, down 用于回滚。 如何使用Fluent Migrator 下面以创建一个论坛,帖子表为例。 创建一个迁移类库,命名为DatabaseMigration,在命令行中安装: Install-Package FluentMigrator 然后添加一个迁移类 CreateTopicTable_201811091800.cs 继承 Migration,代码如下 [Migration( 201811091800 )] public class

java 实现敏感词(sensitive word)工具详解使用说明

孤者浪人 提交于 2020-04-24 09:26:16
sensitive-word 平时工作中,只要涉及到用户可以自由发言(博客、文档、论坛),就要考虑内容的敏感性处理。 sensitive-word 基于 DFA 算法实现的高性能敏感词工具。工具使用 java 实现,帮助我们解决常见的问题。 特性 6W+ 词库,且不断优化更新 基于 DFA 算法,性能较好 基于 fluent-api 实现,使用优雅简洁 支持敏感词的判断、返回、脱敏等常见操作 支持全角半角互换 支持英文大小写互换 快速开始 准备 JDK1.7+ Maven 3.x+ Maven 引入 <dependency> <groupId>com.github.houbb</groupId> <artifactId>sensitive-word</artifactId> <version>0.0.4</version> </dependency> api 概览 SensitiveWordBs 作为敏感词的引导类,核心方法如下: 方法 参数 返回值 说明 newInstance() 无 引导类 初始化引导类 contains(String) 待验证的字符串 布尔值 验证字符串是否包含敏感词 findAll(String) 待验证的字符串 字符串列表 返回字符串中所有敏感词 replace(String, char) 使用指定的 char 替换敏感词 字符串 返回脱敏后的字符串

实现一个基于动态代理的 AOP

橙三吉。 提交于 2020-04-24 02:31:55
实现一个基于动态代理的 AOP Intro 上次看基于动态代理的 AOP 框架实现,立了一个 Flag, 自己写一个简单的 AOP 实现示例,今天过来填坑了 目前的实现是基于 Emit 来做的,后面有时间再写一个基于 Roslyn 来实现的示例 效果演示 演示代码: 切面逻辑定义: public class TryInvokeAspect : AbstractAspect { public override void Invoke(MethodInvocationContext methodInvocationContext, Action next) { Console.WriteLine($"begin invoke method {methodInvocationContext.ProxyMethod.Name} in {GetType().Name}..."); try { next(); } catch (Exception e) { Console.WriteLine($"Invoke {methodInvocationContext.ProxyMethod.DeclaringType?.FullName}.{methodInvocationContext.ProxyMethod.Name} exception"); Console.WriteLine(e); }

实现一个基于动态代理的 AOP

柔情痞子 提交于 2020-04-23 09:55:39
实现一个基于动态代理的 AOP Intro 上次看基于动态代理的 AOP 框架实现,立了一个 Flag, 自己写一个简单的 AOP 实现示例,今天过来填坑了 目前的实现是基于 Emit 来做的,后面有时间再写一个基于 Roslyn 来实现的示例 效果演示 演示代码: 切面逻辑定义: public class TryInvokeAspect : AbstractAspect { public override void Invoke(MethodInvocationContext methodInvocationContext, Action next) { Console.WriteLine($"begin invoke method {methodInvocationContext.ProxyMethod.Name} in {GetType().Name}..."); try { next(); } catch (Exception e) { Console.WriteLine($"Invoke {methodInvocationContext.ProxyMethod.DeclaringType?.FullName}.{methodInvocationContext.ProxyMethod.Name} exception"); Console.WriteLine(e); }

EntityFramework Core 3.0查询

ぐ巨炮叔叔 提交于 2020-04-18 06:34:13
前言 随着.NET Core 3.0的发布,EF Core 3.0也随之正式发布,关于这一块最近一段时间也没太多去关注,陆续会去对比之前版本有什么变化没有,本节我们来看下两个查询。 分组 我们知道在EF Core 3.0版本之前,对于分组查询是在客户端评估,也就是说在内存中操作,在EF Core 3.0版本后对于分组查询可以翻译成SQL在数据库进行,但是事实情况真的是这样吗?接下来我们来看下吧,如下给出代码例子。 public class EFCoreDbContext : DbContext { public EFCoreDbContext() { } public DbSet<Blog> Blogs { get ; set ; } public DbSet<Post> Posts { get ; set ; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlServer( @" Server=.;Database=EFTest;Trusted_Connection=True; " ); } public class Blog { public int Id { get ; set ; } public string

EF6学习笔记四:一对多、多对多、一对一关系配置(Fluent API)

陌路散爱 提交于 2020-04-18 02:24:38
要专业系统地学习EF前往《你必须掌握的Entity Framework 6.x与Core 2.0》这本书的作者(汪鹏,Jeffcky)的博客:https://www.cnblogs.com/CreateMyself/ 现在就来到了重中之重的配置了:一对多、多对多、一对一关系的配置,我这里全部使用Fulent API 的方式来 一对多 一对多最简单了,写好你的数据模型,什么配置都不用做,生成的表结构就是你想要的 来个简单基类 public class BaseEntity { public BaseEntity() { this .Id = Guid.NewGuid().ToString(); this .AddTime = DateTime.Now; } public string Id { get ; set ; } public DateTime AddTime { get ; set ; } } View Code 来个简单图书馆类 public class Library:BaseEntity { public string Name { get ; set ; } public virtual ICollection<Book> Books { get ; set ; } } View Code 来个简单Book类 public class Book:BaseEntity

KubeSphere排错实战(三)

女生的网名这么多〃 提交于 2020-04-02 05:20:02
接上两篇: 《KubeSphere排错实战》 《KubeSphere排错实战二》 在之后使用kubesphere中也记录了一些使用问题,希望可以对其他人有帮助,一块体验如丝般顺滑的容器管理平台。 十四 异常容器删除 之前利用helm部署过consul,后面删除consul [root@master ~]# helm delete consul --purge 经查看consul的一个pod状态一直为 Terminating [root@master ~]# kubectl get pods -n common-service NAME READY STATUS RESTARTS AGE consul-1 1/2 Terminating 1 24d redis-master-0 1/1 Running 1 17d redis-slave-0 1/1 Running 1 8d redis-slave-1 1/1 Running 1 17d 查看状态 [root@master ~]# kubectl describe pods consul-1 -n common-service Events: Type Reason Age From Message ---- ------ ---- ---- ------- Warning FailedSync 3m41s (x4861 over