自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(96)
  • 收藏
  • 关注

原创 FFmpeg对视频封装的流程(画成流程图了,如果不清楚欢迎讨论)

2023-08-05 14:18:51 135 3

原创 FFmpeg 把pcm音频转换为aac

【代码】FFmpeg 把pcm音频转换为aac。

2023-07-29 19:00:13 537

原创 FFmpeg 对一个rgb文件转换为yuv再封装到mp4里面

上面的代码中包含每一个函数的解释,欢迎大家进行交流。

2023-07-29 16:06:21 878

原创 音视频(关于视频的封装,由mp4->mov)

1.封装格式:AVI,MP4,ASF。FLV,ts:直播等使用的流媒体。AVI:压缩标准可以任意选。mp4:既是封装又是压缩。

2023-07-25 14:39:09 364

原创 OpenGL的学习记录(一)(一些基本概念)

记录自己学习OpenGL的过程,本文是一些简单却重要的概念,却贯穿学习的始终

2023-07-11 16:02:23 193

原创 ffmpeg关于视频前几秒黑屏的问题解决

并且把/home/liqingfan/ffmpegAndQtav/build-QtAV-Desktop_Qt_5_12_10_GCC_64bit-Debug/lib_linux_x86_64/目录下的文件放到/home/liqingfan/ffmpegAndQtav/203ideoclient/libs/下就可以正常的编译这个视频项目啦。这里我们安装好了ffmpeg.下面我们进行QtAV的编译安装,可以直接点击下面的网址,这是我们再分析视频合成的视频,这里分析工具用的是。下面描述一下问题的解决过程和结论,

2023-03-18 15:04:56 2256 1

原创 Android事件分发源码剖析(二)之事件分发

思路分析:其实事件分发特别想一个销售过程,服从一下的几个规则。1.如果销售链还没有完全形成,零售商不可以找总代理直接要到事件的销售权。2.当销售链形成之后,再次来了事件,会沿着销售链走,不会再去询问了。3.当销售链形成后,我们的底层对上层有反向制约的权力。4.上层拥有两次的选择机会。(第一次分发之后,可以直接的进行处理(这是第一次的机会)。下面的人全问完之后,没有人处理(第二次处理的机会))下面还是通过一个案例来看这个问题:我们可以在一个ViewPager中嵌套一个ListView,

2021-01-18 00:04:46 191

原创 Android事件分发源码剖析(一)之事件处理

主要写三个方面:1,事件分发分发的是什么事件(ACTION_DOWN,ACTION_MOVE,ACTION_UP,ACTION_CANCEL(事件被上层拦截的时候触发))2,事件是怎么处理(通过对onTouch,onclick之间的关系解析)举一个案例,一个按钮同时监听onTouch,onclick,在onTouch()返回true,这时发现onclick没有被触发。通过这个现象我看了下源码中的事件处理流程,可以在源码中找到以下的代码段。 public boolean dispatc

2021-01-17 19:28:12 209

原创 关于git上(您的分支领先于’origin/master’共n个提交)这个问题的解决方法

这个问题出现,可以通过以下的方式进行解决,先叙述一下思路。就是先创建一个新的分支使这个分支可以跟踪来自于’origin’的远程分支’master’,然后删除有问题的本地master分支。下面我来写下语句:git checkout -b newbranch origin/master分支‘newbranch’设置为跟踪来自跟踪来自于’origin’的远程分支’master’,并切换到一个新的分支’newbranch’git status查看状态,可以看到已经位于newbranch与上游分支’o

2020-12-20 20:53:29 8409 4

原创 图解select poll epoll三种机制

2020-02-11 15:00:24 766

原创 图解网络

2020-02-11 14:42:56 209

原创 Taro开发框架介绍

taro框架可以提高开发效率,可以使技术栈得以统一,节约资源的同时,可以让开发简洁有效,实现了一次编码可以多端(H5,小程序等)运行效果(通过自身的编译工具,编译成不同环境下的代码)。特点:遵循react的语法规范,可以使用JSX语法规范开发小程序的应用。支持组件化开发(解耦)支持TypeScript语法开发准备:了解HTML,CSS,js了解mvvm模型...

2020-02-11 14:12:35 1730

原创 持续集成工具Jenkins学习(一)简单介绍

首先什么是持续化集成工具:持续化集成的核心价值在于:1.持续化集成中的任何一个环节都是自动完成的,无需太多人工干预,有利于减少重复过程以节省时间,费用和工作量。2.持续集成保证了每个时间点团队成员提交的代码是能成功集成的,换言之,任何时间点都可以第一时间发现软件的集成问题,使任意时间发布可部署的软件成为了可能。3.持续集成还可以利于软件本身的发展趋势,这点在需求不明确或者频繁性变更...

2019-07-09 18:41:24 340

原创 LeetCode 207. 课程表 (C++)

题目描述:现在你总共有n门课需要选,记为0到n-1。在选修某些课程之前需要一些先修课程。例如,想要学习课程 0 ,你需要先完成课程 1 ,我们用一个匹配来表示他们:[0,1]给定课程总量以及它们的先决条件,判断是否可能完成所有课程的学习?示例 1:输入: 2, [[1,0]] 输出: true解释:总共有 2 门课程。学习课程 1 之前,你需要完成课程 0...

2019-06-06 16:49:50 965

原创 Webbench的源码剖析以及两次改写

首先,介绍一下webbench是什么?webbench是一个网站压力测试工具,可以测出网站可以承受的压力,有助于衡量一个网站的性能。源码思路:创建管道(以便后面父子进程之间的通信),父进程fork()出用户要求数量的子进程后,子进程在用户要求时间内模拟客户端向服务器不断发起请求,并记录数据(如返回多少个字节的数据,连接失败多少次,连接请求多少次),用户要求时间到时用管道传回父进程,父进...

2019-05-16 22:32:09 944 3

原创 软件开发的流程分为哪几类,优点,缺点,和适用场景(重点在于自己的一点理解)

8.软件开发的流程分为哪几类,优点,缺点,和适用场景: 参考了别人写的博客(https://blog.csdn.net/oscar999/article/details/79168778这个是主要参考,因为阅读了一些,加上自己其实之前也看过一些书籍,觉得这是很好的一篇,比较全,且写的很清晰),因为感觉概念比较多,应该没有什么问题。下面是我的一点感想: 就...

2019-04-30 16:57:38 1295

原创 理论的一场测试的组织与准备

10.如果我是测试经理,我会如何组织和准备一个测试:(查看了《软件测试原理,方法与管理》《大话软件测试-性能。自动化与团队管理》《软件测试慕课版》感觉都写得不大一样,差的有些大,我就自己整理了一下)我觉得应该是这样的: 1.需求分析:需求是软件设计的来源与依据,对于测试工作来说所有的需求(不只是终级用户需求,还有例如设计性需求,可靠性需求,性能需求,安全性需求等)最后...

2019-04-30 16:56:15 256

转载 关于白盒测试

定义:  白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,白盒指的是程序的内部结构和运作机制是可见的。白盒测试的目的:  通过检查软件内部的逻辑结构,对软件中的逻辑路径进行覆盖测试;在程序不同地方设置检查点,检查程序的状态,以确定实际运行状态与预期状态是否一致。白盒测试的方法:大致分为静态方法和动态方法两大类。A. 静态分析:...

2019-04-25 19:06:36 479

原创 Python的字符串

在Python中字符串是不可变的,不可以修改一个字符串,只可以创建一个新的字符串。(同样不可以改的还有元组)原始字符串(raw strings)有时我们需要有\n这样的字符作为转义字符,但有时我们又不希望进行转义,那么在字符串的前面加上r或R前缀,表示原始字符串下面加上rrepr函数我们前面讲了,用str函数可以将一些对象转换成字符串,repr也有这样的效果。...

2019-04-23 01:09:08 139

原创 Python中条件循环以及else悬挂问题

首先,Python中的for 循环和传统的for 循环不同for循环接收可以迭代的对象(序列或者迭代器)作为参数,每次迭代其中的一个元素。例一;遍历字符串中的每一个字符例二:遍历列表中的每一个元素例三:遍历字典中所有的Key-value值例四:for循环执行三次打印range函数其实有参数,前两个参数分别表示了一个前闭后开的区间,第三个参数表示迭代的步长。------...

2019-04-22 14:08:27 426

原创 Python 中的作用域与生命周期

Python中,def,class,lamda会改变变量的作用域,if,else,elif,while,for,try/catch不会改变变量的作用域内建函数globals()返回了全局作用域下都有哪些变量,内建函数locals()返回了局部作用域下有哪些变量。特殊标识符Python使用_作为变量的前缀和后缀,来表示特殊的标识符,_xxx表示一个‘私有变量’,使用fro...

2019-04-21 21:00:56 501

原创 Python中的模块

当我们的项目的代码量较大的时候,就需要把代码放在多个不同的.py文件之中。可以通过import关键字,引用其他.py文件中的代码。被引入的这个代码文件就被称为“模块”被引入的文件,去掉.py后缀名,就是模块名模块查找的顺序是,先查找当前目录,然后查找Python的安装目录。Python使用_作为变量的前缀和后缀,来表示特殊的标识符,_xxx表示一个‘私有变量’,使用from...

2019-04-21 18:06:37 132

原创 Python的文件操作

使用内置函数open打开一个文件,第一个参数是文件目录,第二个参数是文件的打开方式,返回的是一个文件句柄,是一个可迭代的对象,可以直接用for循环按行读取文件的内容,handle使用完毕,需要close。下面举一个例子,统计一个文本中的词频,一个文本文件中,每一行是一个单词,可能有重复,统计每个单词出现的次数。...

2019-04-21 17:38:48 100

原创 Python 中的函数及它的参数

一些可以被经常使用的代码,可以提取出来放在函数中。Python使用def 来定义一个函数,使用return来返回结果。python 中没有“重载”这样的概念,相同名字的函数,后面的会覆盖前面的。Python 支持默认参数,函数参数可以支持默认值。Python解包语法(unpack)语法,函数返回多个值。假如我不想关注x,只想关注y也是可以的,可...

2019-04-21 10:46:43 584

原创 Python中的引用

首先什么是对象Python中一切都是对象,而对象中包含三部分的信息:身份:每一个对象都有唯一一个身份标识自己,使用内建函数id 可以看到这个标识的具体值,也就是变量的地址。类型:对象的类型可以决定对象保存什么样的值,可以进行什么样的操作。以及遵守什么样的规则,实际上用内建函数type可以查看对象的类型。值:表示对象具体保存的内容,有些对象的值可以修改,有些对象的值不可以修改,这个称...

2019-04-21 09:20:39 529

原创 Python中的列表,元组,字典

1.序列:序列的概念包含若干个元素,元素有序排列,可以通过下标来访问一个或者多个元素,这样的对象,Python就统一称为序列(Sequence)。Python中以下的对象都属于序列。》字符串》列表》元组同是序列,他们的使用方式有很多相同之处。序列类型操作符》in/not in :判断一个元素是否存在于序列之中,返回布尔值》连接操作符(+);把两个相同类型的序列进...

2019-04-18 21:32:36 1265

原创 Python入门(介绍及一些入门的常见操作)

首先是介绍Python是一种解释性语言,Python解释器会按行读取源代码文件,然后将源代码转换为供python 解释器直接执行的“字节码”,然后再执行字节码。例如,我们执行一个.py文件之后,会生成一个同名的.pyc文件,这个.pyc文件就是Python解释器生成的字节码文件,如果.pyc 文件已经生成,那么就不需要再“翻译”一遍了,这样就提高了效率。下面正式进入学习,在命令行输入p...

2019-04-18 19:55:47 187

原创 公交卡的测试思维导图

2019-04-13 14:32:18 398

原创 水杯的测试思维导图

好吧,废话不多说,直接放图

2019-04-13 13:30:29 5933

原创 QQ表情收藏的测试思维导图

直接上图

2019-04-13 12:17:17 200

原创 关于QQ登录测试的思维导图

好吧,直接上图

2019-04-13 10:57:24 2221

原创 渗透测试之信息搜集

可以说信息搜集是渗透测试相当重要的一步,占到整个测试时间的50%-70%。(1)域名搜集对应的IP:子域名收集:大的集团大多都有子域名(子站),当主站不好攻击的时候,就可以用子域名做切入点,在子域中找出不太安全的站进行攻击,如比较老的子站。可以用Layer等工具。whois:根据已知的域名进行反查,分析出此域名的注册人(企业),邮箱,电话等,可以用站长工具查询。(当这个站本身安全性...

2019-04-03 15:29:16 777

原创 HTML常用标签

HTML是什么?HTML是一种标签语言(超文本标签语言),用来写静态页面,不需要编辑,直接交给浏览器执行。下面是一个最简单的HTML:<html><head> <title>hello<title></head><body></body></html>可以看到其实是由...

2019-04-01 20:52:38 452

原创 关于HTTP协议的安全隐患问题

1.错误配置导致安全隐患服务器存在允许PUT方式和MOVE方式,这时我们可以通过PUT方式传一个webshell.txt,然后再结合MOVE方式结合解析漏洞,这样就可以很快拿到网站的webshell.2.HTTP头中安全隐患在PHP中通过使用$_SERVER["HTTP_CLIENT_IP"]或者$_SERVER["HTTP_X_FORWARDED_FOR"]来获取IP。因此,我们...

2019-03-26 16:52:03 3479

原创 伪静态

如输入www....com/index.html看似静态,实际进行了与数据库的交互,被称为伪静态。验证伪静态的方法是通过修改后缀名可以判断是那种动态语言编写,如输入www....com/index.aspwww....com/index.phpwww....com/index.jsp哪个成功了,就是用哪个动态语言编写的。当然这只是一个小技巧。...

2019-03-26 15:51:49 119

原创 外网如何访问虚拟机

科普一下桥接模式network address translation(NAT模式)使用NAT模式,就是让虚拟系统借助NAT(网络地址转换)功能,通过宿主机器所在的网络来访问公网。也就是说,使用NAT模式可以实现在虚拟系统里访问互联网。NAT模式下的虚拟系统的TCP/IP配置信息是由VMnet8(NAT)虚拟网络的DHCP服务器提供的,无法进行手工修改,因此虚拟系统也就无法和本局域网中的其...

2019-03-26 14:54:39 7233

原创 渗透测试的一般流程

1.明确目标2.信息收集3.漏洞探测4.漏洞验证(poc )如 id=27 and select vesion();只是进行查看,不进行破坏,目的是证明漏洞的存在。exp漏洞利用(注意渗透测试人员不写这个,要写poc )5.编写报告6.信息整理7.获取所需8.信息分析...

2019-03-25 21:22:48 1789

原创 渗透测试是什么--一些简单的小术语

渗透测试是什么渗透测试并没有一个标准的定义,共识的通用说法是,渗透测试是通过模拟恶意的攻击方法,来评估计算机网络安全的一种评估方法,针对于系统的任何弱点,技术缺陷或者漏洞的主动分析。也就是说,渗透测试是指渗透人员在不同的位置利用各种手段对特定的网络进行测试和挖掘系统中存在的漏洞,然后输出测试渗透报告,网站所有者根据渗透人员提供的渗透测试报告知晓系统中存在的安全隐患和问题。小术语MD5;...

2019-03-25 21:12:21 2292

原创 开发与测试的争执---bug的级别以及bug要不要修改

是不是bug ,bug的级别是不是有点高,这真是开发与测试永恒的话题。如何定义bug 的级别:bug的定义每个公司都不一样,在定义级别之前需要查看公司规范。研发拒绝修改bug时我们的做法:研发拒绝修改bug时,测试和研发是极有可能发生争执的,但我们应该明确的是能让开发人员解决最多bug 的人员是最优秀的测试人员,在产生争执的情况下我们的正确做法是应该明确的是对于拒绝修改和...

2019-03-24 21:28:39 934

原创 一个合格的bug描述应该是什么样的呢

一个合格的bug 描述应该是具备以下几点的1.发现问题的版本开发人员需要知道出现问题的版本,才能获取对应版本的代码来重现故障,并且版本的标识也有利与统计和分析每个版本的质量。2.问题出现的环境环境分为硬件环境和软件环境,如果是web 项目,需要描述浏览器的版本,客户机操作系统。详细的环境描述有利于故障的定位。3.错误重复步骤描述问题重现的最短步骤4.预期行为的描述描...

2019-03-24 21:08:21 2163

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除