数据封装

h264和aac封装flv

ⅰ亾dé卋堺 提交于 2020-02-04 00:34:15
flv格式解析 FLV是一个二进制文件,简单来说,其是由一个文件头(FLV header)和很多tag组成(FLV body)。tag又可以分成三类:audio,video,script,分别代表音频流(0x8),视频流(0x9),脚本流(0x12),而每个tag又由tag header和tag data组成。 flv官方标准文档 分析之前推荐一个flv分析工具: flv分析工具 工具的使用说明和出处: 使用说明 以一个具体的flv文件为例具体分析: 文件头由9bytes组成: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kbntqCE6-1580714898238)(https://i.loli.net/2020/01/20/SADYzaEdRkWUGQ9.png)] 前3个bytes是文件类型,总是“FLV”,也就是(0x46 0x4C 0x56)。第4btye是版本号,目前一般是0x01。第5byte是流的信息,倒数第一bit是1表示有视频(0x01),倒数第三bit是1表示有音频(0x4),有视频又有音频就是0x01 | 0x04(0x05),其他都应该是0。最后4bytes表示FLV 头的长度,3+1+1+4 = 9。 FLV header后面就是FLV body,FLV body中包含很多个FLV tag,tag的分类有三种

面向对象之封装

余生颓废 提交于 2020-02-02 07:47:31
一 初步 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,一起装进麻袋,然后把麻袋封上口子。照这种逻辑看,封装='隐藏',这种理解是相当片面的 二 如何隐藏 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) # 其实这仅仅这是一种变形操作且仅仅只在类定义阶段发生变形 # 类中所有双下划线开头的名称如__x都会在类定义时自动变形成:_类名__x的形式: class A: __N = 0 # 类的数据属性就应该是共享的,但是语法上是可以把类的数据属性设置成私有的如__N,会变形为_A__N def __init__(self): self.__X = 10 # 变形为self._A__X def __foo(self): # 变形为_A__foo print('from A') def bar(self): self.__foo() # 只有在类内部才可以通过__foo的形式访问到. # A._A__N是可以访问到的, # 这种,在外部是无法通过__x这个名字访问到。 这种变形需要注意的问题是: 1.这种机制也并没有真正意义上限制我们从外部直接访问属性,知道了类名和属性名就可以拼出名字:_类名__属性,然后就可以访问了,如a._A__N,即这种操作并不是严格意义上的限制外部访问,仅仅只是一种语法意义上的变形,主要用来限制外部的直接访问。 2

面向对象之封装

时光怂恿深爱的人放手 提交于 2020-02-02 04:38:32
一 引子 从封装本身的意思去理解,封装就好像是拿来一个麻袋,把小猫,小狗,小王八,一起装进麻袋,然后把麻袋封上口子。照这种逻辑看,封装=‘隐藏’,这种理解是相当片面的 二 先看如何隐藏 在python中用双下划线开头的方式将属性隐藏起来(设置成私有的) #其实这仅仅这是一种变形操作且仅仅只在类定义阶段发生变形 #类中所有双下划线开头的名称如__x都会在类定义时自动变形成:_类名__x的形式: class A: __N=0 #类的数据属性就应该是共享的,但是语法上是可以把类的数据属性设置成私有的如__N,会变形为_A__N def __init__(self): self.__X=10 #变形为self._A__X def __foo(self): #变形为_A__foo print('from A') def bar(self): self.__foo() #只有在类内部才可以通过__foo的形式访问到. #A._A__N是可以访问到的, #这种,在外部是无法通过__x这个名字访问到。 这种变形需要注意的问题是: 1.这种机制也并没有真正意义上限制我们从外部直接访问属性,知道了类名和属性名就可以拼出名字:_类名__属性,然后就可以访问了,如a._A__N, 即这种操作并不是严格意义上的限制外部访问,仅仅只是一种语法意义上的变形,主要用来限制外部的直接访问。 2

应用系统架构设计

感情迁移 提交于 2020-02-01 02:04:53
我们在做着表面上看似是对于各种不同应用的开发,其实背后所对应的架构设计都是相对稳定的。在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情,更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅让开发人员受苦受难,软件本身的生命周期更是受到严重威胁。这里我将针对在微软dotNet平台上做应用开发系统的一般架构流程设计做一个粗浅的讨论。 总体设计图 表示层 表示层由UI(User Interface)和UI控制逻辑组成。 l UI(User Interface) UI是客户端的用户界面,负责从用户方接收命令,请求,数据,传递给业务层处理,然后将结果呈现出来。根据客户端的不同我们大体将应用程序分为BS(Browser-Server) 浏览器结构,CS(Client-Server)桌面客户端结构。 BS的优点是无需操心客户端,只需要部署维护好服务器即可。CS的优点在于强大的界面交互表达能力。RIA(Rich Internet Application)是为了融合这两种结构优点的一种技术,它依赖在客户端一次性安装一个通用解释器之后即获得强大的界面交互表达能力和无需部署具体客户端的方便性。具体的实现技术很多,例如微软的SmartClient, Avalon; Macromedia的Flex;以JS为基础的Bindows;Ajax等等很多。 UI控制逻辑

应用系统架构设计

烈酒焚心 提交于 2020-02-01 01:23:59
我们在做着表面上看似是对于各种不同应用的开发,其实背后所对应的架构设计都是相对稳定的。在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情,更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅让开发人员受苦受难,软件本身的生命周期更是受到严重威胁。这里我将针对在微软dotNet平台上做应用开发系统的一般架构流程设计做一个粗浅的讨论。 总体设计图 表示层 表示层由UI(User Interface)和UI控制逻辑组成。 l UI(User Interface) UI是客户端的用户界面,负责从用户方接收命令,请求,数据,传递给业务层处理,然后将结果呈现出来。根据客户端的不同我们大体将应用程序分为BS(Browser-Server) 浏览器结构,CS(Client-Server)桌面客户端结构。 BS的优点是无需操心客户端,只需要部署维护好服务器即可。CS的优点在于强大的界面交互表达能力。RIA(Rich Internet Application)是为了融合这两种结构优点的一种技术,它依赖在客户端一次性安装一个通用解释器之后即获得强大的界面交互表达能力和无需部署具体客户端的方便性。具体的实现技术很多,例如微软的SmartClient, Avalon; Macromedia的Flex;以JS为基础的Bindows;Ajax等等很多。 l UI控制逻辑

应用系统架构设计

孤人 提交于 2020-02-01 01:19:06
摘自:http://www.cnblogs.com/simonw/archive/2005/04/27/146185.html 我 们在做着表面上看似是对于各种不同应用的开发,其实背后所对应的架构设计都是相对稳定的。在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情, 更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅让开发人员受苦受难,软件本身的生命周期更是受到严重威胁。这里我将针对在微软 dotNet平台上做应用开发系统的一般架构流程设计做一个粗浅的讨论。 总体设计图 表示层 表示层由UI(User Interface)和UI控制逻辑组成。 l UI(User Interface) UI是客户端的用户界面,负责从用户方接收命令,请求,数据,传递给业务层处理,然后将结果呈现出来。根据客户端的不同我们大体将应用程序分为BS(Browser-Server) 浏览器结构,CS(Client-Server)桌面客户端结构。 BS 的优点是无需操心客户端,只需要部署维护好服务器即可。CS的优点在于强大的界面交互表达能力。RIA(Rich Internet Application)是为了融合这两种结构优点的一种技术,它依赖在客户端一次性安装一个通用解释器之后即获得强大的界面交互表达能力和无需部署具体 客户端的方便性。具体的实现技术很多,例如微软的SmartClient,

应用系统架构设计

萝らか妹 提交于 2020-02-01 01:09:04
我们在做着表面上看似是对于各种不同应用的开发,其实背后所对应的架构设计都是相对稳定的。在一个好的架构下编程,不仅对于开发人员是一件赏心悦目的事情,更重要的是软件能够表现出一个健康的姿态;而架构设计的不合理,不仅让开发人员受苦受难,软件本身的生命周期更是受到严重威胁。这里我将针对在微软dotNet平台上做应用开发系统的一般架构流程设计做一个粗浅的讨论。 总体设计图 表示层 表示层由UI(User Interface)和UI控制逻辑组成。 l UI(User Interface) UI是客户端的用户界面,负责从用户方接收命令,请求,数据,传递给业务层处理,然后将结果呈现出来。根据客户端的不同我们大体将应用程序分为BS(Browser-Server) 浏览器结构,CS(Client-Server)桌面客户端结构。 BS的优点是无需操心客户端,只需要部署维护好服务器即可。CS的优点在于强大的界面交互表达能力。RIA(Rich Internet Application)是为了融合这两种结构优点的一种技术,它依赖在客户端一次性安装一个通用解释器之后即获得强大的界面交互表达能力和无需部署具体客户端的方便性。具体的实现技术很多,例如微软的SmartClient, Avalon; Macromedia的Flex;以JS为基础的Bindows;Ajax等等很多。 l UI控制逻辑

apache工具

可紊 提交于 2020-01-31 06:05:21
组件 功能介绍 HttpClient 提供HTTP客户端与服务器的各种通讯操作. 现在已改成HttpComponents IO io工具的封装. Lang3 Java基本对象方法的工具类包 如:StringUtils,ArrayUtils等等. Logging 提供的是一个Java 的日志接口. Configuration 一个java应用程序的配置管理类库. Collections java集合框架操作. BeanUtils 提供了对于JavaBean进行各种操作,克隆对象,属性等等. Codec 处理常用的编码方法的工具类包 例如DES、SHA1、MD5、Base64等. DbUtils 提供对jdbc 的操作封装来简化数据查询和记录读取操作. Email java发送邮件 对javamail的封装. DBCP 提供数据库连接池服务. Betwixt XML与Java对象之间相互转换. FileUpload 提供文件上传功能. Validator 提供了客户端和服务器端的数据验证框架. Compress java提供文件打包 压缩类库. Math commons-pool2 commons-cli 可以帮助程序去解析传递给程序的命令行参数 来源: https://www.cnblogs.com/dhName/p/10941850.html

拒绝996,选对框架很关键!看这里。。。。。。

﹥>﹥吖頭↗ 提交于 2020-01-27 22:12:39
近日,996工作制再起波澜,各番立场争论不休!作为程序猿,怎么解决996的烦恼?与其抱怨抵制,提高自身更来得实际。工欲善其事必先利其器,研发或选择一款好的开发平台尤为重要。一款老牌开源快速开发平台Jeecg-Boot,技术全新换代版本,非常值得大家参考学习。 导读 ⊙平台首页UI升级,精美的首页支持多模式 ⊙提供4套代码生成器模板(支持单表、一对多) ⊙集成Excel简易工具类,支持单表、一对多导入导出 ⊙代码生成器,生成代码自带Excel导入导出,表单提供弹出风格和抽屉表单选择 ⊙系统权限大升级,支持按钮权限,数据权限(可控制不同人看不同数据) ⊙数据日志记录功能,可记录数据变更日志,对比版本功能 ⊙查询过滤器开发完成,根据页面配置自动生成查询条件,支持多种匹配规则 ⊙Online在线报表配置功能完成,在线输入sql生成数据报表 ⊙平台移动兼容优化,改造所有功能,支持移动自适应 ⊙消息中心开发完成(支持短信、邮件、微信推送等等,支持自己扩展) ⊙增加系统性能监控各种功能(Redis监控 、Tomcat、jvm、服务器信息、请求追踪等) ⊙在线文档同步升级 ————你想要的,都来了! 【 此版本是JeecgBoot 初成长稳定版本,企业级应用基本功能已经全部完成(Excel导入导出、按钮权限、数据权限、代码生成器、查询过滤器、Online在线报表、系统监控、数据日志)

自己封装的ASP.NET的MYSQL的数据库操作类

感情迁移 提交于 2020-01-26 02:47:05
/** * 作者:牛腩 * 创建时间:2010年3月7日17时35分 * 类说明:对MYSQL数据库的操作类 */ using System; using System.Data; using MySql.Data.MySqlClient; namespace Niunan.BYLW.Utility { /// <summary>对MYSQL数据库的操作类 /// /// </summary> public class MYSQLHelper { private MySqlConnection conn = null; private MySqlCommand cmd = null; private MySqlDataReader sdr = null; public MYSQLHelper() { //string connStr = WebConfigurationManager.ConnectionStrings["connStr"].ToString(); string connStr = "server=localhost;database=test;uid=root;pwd=123456;charset=utf8"; conn = new MySqlConnection(connStr); } /// <summary>创建Command对象 /// /// <