go

EasyDarwin系列开源与免费流媒体音视频方案汇总(持续更新)

岁酱吖の 提交于 2020-12-06 04:54:11
Easy系列从开源到SDK组件,再到产品、解决方案、硬件,从2012年EasyDarwin开始,专注于流媒体音视频这一领域已经非常多年了,积累了丰富的行业经验,同时也积累了众多的产品,产品的名称非常多,为了让更多的同学能更好地了解Easy系列的方案,今天我们汇总了一下EasyDarwin开源社区提供的开源与免费的项目与产品: Web: www.easydarwin.org Github: https://github.com/EasyDarwin 一、EasyDarwin EasyDarwin是一款开源的RTSP流媒体服务器,早期是基于Apple的Darwin Streaming Server来开发的,后来跟随着时代的发展,分别建立的node.js和golang的分支,目前Go版本的EasyDarwin作为主分支在维护,EasyDarwin对于广大的流媒体开发者来说,可以做为一个流媒体行业入门的基础框架,同时,也能帮助企业解决一些视频安防、视频直播方面的业务需求。 二、EasyAACEncoder 简单、高效、稳定的开源音频编码库,支持将各种音频数据(G.711A/PCMA、G.711U/PCMU、G726、PCM)转码成AAC(with adts)格式,其中aac编码部分采用的是业界公认的faac库,EasyAACEncoder支持Windows、Linux、ARM等多种平台

设计模式之观察者模式

南笙酒味 提交于 2020-12-06 02:54:10
观察者模式定义了对象之间的一对多依赖,当一个对象状态改变时,它的所有依赖者都会收到通知并自动更新。 观察者模式中有两个关键对象,分别是 Subject (主题)和 Observer (观察者)。它们之间是一种发布订阅关系,一(主题)对多(观察者)。 主题 :管理主题数据,在数据更新时通知观察者(发布)。 观察者 :订阅或注册主题,当主题数据发生更改,接受主题的发布消息。 应用案例 大多数人都有过网上抢购商品的经历,以淘宝的“淘抢购”为例。买家想要在22点抢购衬衫,点击“提醒我”按钮。那么淘宝就会在开抢之前,及时把抢购消息推送给买家。 该消息提醒推送的实现,就是经典的观察者模式。 代码实现 UML类图 创建Subject接口 1 package observer 2 3 type Subject interface { 4 Register(o Observer) 5 Deregister(o Observer) error 6 NotifyObservers() 7 } 创建Observer接口 1 package observer 2 3 type Observer interface { 4 Update(name, status string ) 5 GetID() int 6 } 创建shirt对象,实现Subjuect接口 1 package observer 2 3

下载!《Python面试大全》PDF版

心不动则不痛 提交于 2020-12-05 20:41:39
往期下载 下载!5000 页 Java 技术栈 PDF 手册 下载!343页经典书籍《算法之道(第二版)》 下载!《手把手AI项目》手册 下载!国外优质书籍《数字图像处理》电子版 下载!《机器学习基础》第二版正式开放下载 下载!《TensorFlow 2.0 深度学习算法实战》中文版(附随书代码+pdf) 下载!微软出品的最新 Kubernetes 学习指南 3.0 中文开源!《Python数据科学》PDF下载 下载!闲鱼最新升级版 Flutter 技术电子书! 下载!Springer 面向公众开放数据挖掘、编程、机器学习、数学、深度学习、数据科学等 65本电子书籍 下载!Python 密码学入门书籍 下载!《Java 编程思想》中文版! 2020最新版《神经网络与深度学习》中文版 pdf 开放下载 下载!Python 初学者经典教材 PDF课件下载!《用Python玩转数据》 下载!81 页计算机视觉学习指南 经典!《MySQL性能调优手册》高清电子版,限时 3 天免费下载 PDF下载!《数据结构与算法Python版》 下载!《工业智能白皮书》 下载!PyTorch中文版官方教程 InfoQ电子书下载:《前端面试指南》 《统计机器学习与凸优化》教程 PPT 下载 泰山版!Java开发手册开放下载 Pandas官方文档中文版下载、图形深度学习 PPT 下载 200页

原创 | 详解gitignore的使用方法,让你尽情使用git add .

試著忘記壹切 提交于 2020-12-05 18:01:12
大家好,欢迎来到周一git专题。 今天和大家聊聊 gitignore的作用 ,其实如果你英文还可以的话,你应该已经基本上猜到它的作用了。ignore在英文当中的意思是忽视、忽略,gitignore自然就是git当中的忽视和忽略,言下之意就是忽略某些文件。所以gitignore的作用就是帮助我们在git add时将我们指定的一些文件自动排除在外,不提交到git当中。 ignore的作用 看到这里你可能很疑惑,git创造出来就是为了管理代码和文件的,为什么还要禁止一些文件提交呢? 其实也很简单,举个很简单的例子。比如当我们写一些编译型语言的时候,比如C、C++、Java、go。我们在运行之前往往需要编译一下将它们编译成可执行的二进制文件,也称为binary文件。编译之后的binary文件其实是比较大的,要比源码大很多。经常一个几十行的代码编译出来好几百KB甚至1MB这都是很正常的,像是这些二进制文件我们就完全没有必要上传。 因为 不论是谁拿到源代码编译一下就可以获得一样的结果 ,完全没有上传可执行文件的必要。相反它还会在git仓库当中占据大量的空间,以后不论项目经过多少次迭代,它都会一直停留在git仓库当中,占据磁盘资源。 像是这样没有必要上传的文件还有很多,比如Java编译出来的class文件,一些中间结果、配置文件等等。我们往往图方便都是会喜欢在使用git

Go的interface

守給你的承諾、 提交于 2020-12-05 16:54:50
Go中的interface也是类型type,定义了方法规范,其内只有方法的声明没有实现,定义格式为: type interface_Name interface{ f1()....} 需要注意的一点是go中的interface是非侵入式的,也就是不需要利用某个关键字(比如Java中的implements)显示的声明某个类型是否实现了某个interface,只需要某个类型的对象的某个方法是某个接口的方法的实现(go中不允许方法的重载),就表明该对象(其实是其指针类型!!!)实现了该接口,其是该接口的一个实例 go中的接口不要求其内的方法均为导出的,可以定义私有,或者导出的方法声明(跟Java中接口很不一样) 接口中所有的方法都必须被实现 Go语言的接口在命名时,一般会在单词后面添加er,如写操作的接口叫做Writer 一个类型可以实现多个接口,接口间是彼此独立的,互相不知道对方的实现多个类型也可以实现相同的接口 接口之间也可以相互嵌套 空接口是接口的特殊形式,没有任何方法,因此任何具体的类型都可以认为其默认实现了空接口!!! interface{}//空接口类型 ,所以一旦一个方法的参数是一个空接口类型,表明该方法可以接受任何具体的类型作为其参数,也可以利用空接口,可以实现任意类型的存储 //空接口作为函数参数: func Test(i interface{}) { fmt

golang - elegant way to omit a json property from being serialized

狂风中的少年 提交于 2020-12-05 12:15:39
问题 I've got a user struct, which has sensitive fields like password: type User struct { UID string `json:"uid" binding:"required"` Password string `json:"password" binding:"required"` EmailAddress string `json:"email" binding:"required"` } Now I want to be able to use this struct to register a user and update, delete but also to view. What I don't want is for the password to be serialized for viewing. I can, of course, make a custom marshaller but is that the only way? I tried using the json:"-"

Fabric2.0学习进阶——搭建环境准备(一)

拥有回忆 提交于 2020-12-05 10:13:00
1.1 环境资源 Fabric推荐安装系统为Linux和Mac,本文的安装环境为安装Ubuntu系统的虚拟机,内存设置为4G。本文使用的系统安装包为ubuntu-20.04-live-server-amd64.iso,至于如何安装虚拟机请自行百度。 1.2 依赖安装 在已经准备好服务器或虚拟机的前提下,本节主要介绍Fabric平台安装部署过程中所需要的软件安装。这些软件包括: curl:下载工具,版本latest git:代码克隆工具,版本latest golang:Fabric很多组件基于Go编程开发,版本1.14.2 jq:JSON解析器,版本latest Docker:容器,版本18.06.3-ce Docker Compose:容器管理工具,版本1.25.5 Ubuntu系统提供的软件安装命令是apt-get,在进行软件安装之前,需要把资源列表进行更新,保证下载到最新的软件版本。执行如下命令实现资源列表更新: sudo apt update -y --fix-missing 1.2.1 curl安装 执行以下命令完成curl的安装: sudo apt install -y curl 查看安装结果,执行命令: curl -V 如下图所示,命令正常执行将显示版本号,发布时间等信息,表示安装成功。 1.2.2 git安装 执行以下命令完成git的安装: sudo apt

cockroach SortedDiskMap类图(临时引擎 rocksdb与pebble实现)

邮差的信 提交于 2020-12-05 09:57:58
1. 临时引擎TempEngine 1.1 rocksdbTempEngine类图 1.1 pebbleTempEngine类图 1.3 引用临时引擎的类 sst_writer_proc.go 导入数据时将数据写入临时引擎. joinreader.go hashjoiner.go sorter.go window.g routers.go 计算过程中用来将数据吐到临时引擎(基于硬盘的Map) 来源: oschina 链接: https://my.oschina.net/u/4324660/blog/4775795

SQL SERVER 2016 AlwaysOn 无域集群+负载均衡搭建与简测

陌路散爱 提交于 2020-12-05 09:26:05
之前和很多群友聊天发现对2016的无域和负载均衡满心期待,毕竟可以简单搭建而且可以不适用第三方负载均衡器,SQL自己可以负载了。windows2016已经可以下载使用了,那么这回终于可以揭开令人憧憬向往的AlwaysOn2016 负载均衡集群的神秘面纱了。   本篇主要描述个人集群搭建中遇到的坑和一些注意事项,以及2016无域负载均衡的简单体验测试。 搭建体验 基础环境   想要不使用域环境来搭建AlwaysON 必须使用 windows 2016 和sql server2016   本篇我使用3台虚拟机(主要是为了测试负载均衡,否则2台就可以),为了搭建的纯洁性,我3台机器都是独立安装,没有使用虚机复制。    主机名 IP地址 sql16node1 192.168.3.113 sql16node2 192.168.3.114 sql16node3 192.168.3.115 sqlcluster2016(windows集群) 192.168.3.120 L_KK_AWO2016(AlwaysOn监听) 192.168.3.121 16操作系统介质 ed2k://|file|cn_windows_server_2016_x64_dvd_9327743.iso|6020876288|58F585A340248EF7603A48F832F08B6D|/ SQL16介质 ed2k://

Fabric2.0 单机多节点环境(fabric-samples/first-network)搭建问题汇总(持续更新)

試著忘記壹切 提交于 2020-12-05 08:56:01
问题1:git clone项目的时候超时 解决方法:使用国内镜像,github.com.cnpmjs.org 问题2: failed to create deliver client for orderer Error: failed to create deliver client for orderer: orderer client failed to connect to orderer.example.com:7050: failed to create new connection: context deadline exceeded !!!!!!!!!!!!!!! Fetching config block from orderer has Failed !!!!!!!!!!!!!!!! ========= ERROR !!! FAILED to execute End-2-End Scenario =========== 解决方法: 依次执行以下步骤: // 慎用,该命令删除所有的container,删除部分fabric相关即可 $ docker rm -f $(docker ps -aq) && docker rmi -f $(docker images | grep dev | awk '{print $3}') && docker volume prune /