自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

yhc166188的博客

路虽远,行则将至;事虽难,做则必成!

  • 博客(35)
  • 资源 (12)
  • 收藏
  • 关注

转载 c++14新特性

在C++的时间表中,C++14按计划是一个小版本,完成制定C++11标准的剩余工作,目的是使C++成为一门更清晰、更简单和更快速的语言。新的语言特性留到了未来的C++17标准中。C++14的主要特性可以分为三个领域:Lambda函数、constexpr和类型推导。Lambda函数C++14的泛型Lambda使编写如下语句成为可能:auto lambda = [](auto x...

2018-07-30 17:53:46 908

转载 UML类图总结(浅显易懂实用)

UML类图的作用是描述程序中类的信息及各个类之间的关系。所有的面向对象(Object Oriented)语言都离不开类的概念,理解了程序中类的设计也就理解了程序的一半。但类的具体描述方式在各个类中都不一样,UML类图的提出是为了能够脱离语言的限制,抽象地描述各个类的信息及各个类之间的关系。这是UML类图的作用。一、类的基本表示方式在UML类图中,每一个矩形代表一个类。我们举一个简单的例...

2018-07-26 17:05:54 243

转载 理论经典:TCP协议的3次握手与4次挥手过程详解

摘要: 本文将分别讲解经典的TCP协议建立连接(所谓的“3次握手”)和断开连接(所谓的“4次挥手”)的过程。1、前言尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。TCP提供一种面向连接的、可靠的字节流服务。面向连接意味着两个使用TCP的应用(通常是一个客户和一个服务器)在彼此交换数据之前必须先建立一个TCP连接。这一过程与打电话很相似,先拨号振...

2018-07-26 13:45:38 231

原创 Qt connect信号槽

connect用于连接qt的信号和槽,在qt编程过程中不可或缺。它其实有第五个参数,只是一般使用默认值,在满足某些特殊需求的时候可能需要手动设置。Qt::AutoConnection: 默认值,使用这个值则连接类型会在信号发送时决定。如果接收者和发送者在同一个线程,则自动使用Qt::DirectConnection类型。如果接收者和发送者不在一个线程,则自动使用Qt::QueuedConnec...

2018-07-25 15:01:10 121

转载 挖掘算法中的数据结构(三):O(n*logn)排序算法之 快速排序(随机化、二路、三路排序) 及衍生算法

在上一篇博文中学习了时间复杂度为 O(n*logn) 的归并算法,介绍其两种实现方式——自顶向下和自底向上,不同于O(n^2)排序算法,O(n *logn)在处理百万级数据量上有明显的性能优势。而此篇文章将介绍具有代表性O(n *logn)的另一种算法——快速排序,其性能总体还会优于归并排序,但是在最坏情况下时间复杂度会退化为O(n^2)!继而出现了对快速排序的系列优化并衍生出新的实现方式,来一探...

2018-07-23 12:29:31 418

转载 挖掘算法中的数据结构(二):O(n*logn)排序算法之 归并排序(自顶向下、自底向上) 及 算法优化

在上一篇博文中学习了时间复杂度为 O(n^2)的几个排序算法(选择、插入、冒泡、希尔排序),其中尤为需要注意的是插入排序,在近乎有序的测试用例条件下,此算法的效率会高于O(n*logn)的排序算法,所以它的效率不容小觑。但是O(n*logn)的排序算法与O(n*logn)之间还是有质变的区别,综合而言性能更优。此篇文章将讲解时间复杂度为O(n*logn)的有关算法,涉及到的知识点有:归并排...

2018-07-23 12:22:31 498

转载 挖掘算法中的数据结构(一):O(n^2)排序算法之 选择、插入、冒泡、希尔排序 及 优化

一. 前言1 . 语言要求对于算法而言,它其实是与语言无关的,被誉为算法神书的《算法导论》中都是以伪码的形式进行编写。算法更重要的是一种思想,当你想透彻后编代码实现就不是问题了。由于不同的语言含有独特的特性,在某些语言实现算法过程中可利用其特性可更好地实现算法思想,此系列中的代码主要支持C++语言,后期会提供Java语言扩展。2 . 基础要求此系列博文重点讲解算法实现,默认读者...

2018-07-23 11:36:02 397

原创 o(1), o(n), o(logn), o(nlogn) 复杂度

在描述算法复杂度时,经常用到o(1), o(n), o(logn), o(nlogn)来表示对应算法的时间复杂度, 这里进行归纳一下它们代表的含义:这是算法的时空复杂度的表示。不仅仅用于表示时间复杂度,也用于表示空间复杂度。O后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。比如时间复杂度为O(n),就代表数据量增大几倍,耗时也增大几倍。...

2018-07-23 10:02:06 7880 1

原创 c++ 空类,含有虚函数的类的大小

1、为何空类的大小不是0呢?为了确保两个不同对象的地址不同,必须如此。类的实例化是在内存中分配一块地址,每个实例在内存中都有独一无二的二地址。同样,空类也会实例化,所以编译器会给空类隐含的添加一个字节,这样空类实例化后就有独一无二的地址了。所以,空类的sizeof为1,而不是0.2、请看下面的类:class A{ virtual void f(){} };class B:pub...

2018-07-22 21:48:53 3393

原创 sip 协议解析

基本呼叫流程学习 SIP 协议最快捷的方法是通过范例来学习,找到了一个完整的呼叫流程,let's go!INVITE主叫方Tesla首先发起 INVITE 消息到被叫方Marconi。INVITE 消息包含会话类型和一些呼叫所必须的参数。会话类型可能是单纯的语音,也可能是网络会议所用的多媒体视频,还可能是游戏会话。下面是消息体范例,我们来详细分析各个字段的意义。INVITE...

2018-07-22 21:30:14 2548

原创 SIP呼叫流程

SIP呼叫流程包含注册流程注消流程基本呼叫建立过程正常呼叫释放过程被叫忙呼叫释放被叫无应答流程遇忙呼叫前转无应答呼叫前转流程呼叫保待呼叫等待(1)终端代理A向代理服务器发送REGISTER注册请求; (2)代理服务器通过后端认证/计费中心获知用户住处不在数据库中,便向终端代理A回送401 Unauthorized质询信息,其中包含安全认证所需要的令牌...

2018-07-22 14:18:42 5279

原创 SIP应答消息状态码

类型 状态码 状态说明临时应答(1XX) 100 Trying 正在处理中180 Ringing 振铃181 call being forwarder 呼叫正在前向182 queue 排队181* session progress 会话进行会话成功(2XX) 200 OK 会话成功重定向(3XX) 300 multiple 多重选择301 moved permanently ...

2018-07-22 13:14:55 804

原创 C++11特性(模板类 initializer_list)

C++primer 原文如下:通读原文相关篇幅,分析解读内容如下:提供initializer_list类的初衷,为了便于将有限个同一类型(或可转换为同一类型)的元素传递给函数。代码:/*  initializer_list 是C++11新增的,可以使用它来初始化STL:           例如:std::vector<double> payments {45...

2018-07-17 17:52:49 1232

原创 libevent windows编译

1.官网下载http://libevent.org/最新源码2.打开vs命令行工具进入libevent-2.1.8-stable目录下执行nmake  ./Makefile.nmake  只要三个libevent.lib,libevent_core.lib,libevent_extras.lib编译出来即可下面的命令也可全量编译:nmake /f Makefile.nmake [all] /...

2018-07-17 14:44:04 209

转载 c++读写文件

掌握文本文件读写的方法了解二进制文件的读写方法C++文件流:fstream  // 文件流ifstream  // 输入文件流ofstream  // 输出文件流//创建一个文本文件并写入信息//同向屏幕上输出信息一样将信息输出至文件#include<iomanip.h>#include<fstream.h>void main(){  ofstream f1("d:\\me...

2018-07-16 14:36:11 166

转载 FFmpeg 基本用法

本课要解决的问题1.FFmpeg的转码流程是什么?2.常见的视频格式包含哪些内容吗?3.如何把这些内容从视频文件中抽取出来?4.如何从一种格式转换为另一种格式?5.如何放大和缩小视频?6.如何旋转,翻转,填充,裁剪,模糊,锐化视频?7.如何给视频加logo,删除logo?8.如何给视频加文本,动态文本?9.如何处理图片?10.如何录像,添加动态logo,截图,马赛克视频?第一部分基础术语容器(Co...

2018-07-13 20:03:12 477

转载 FFmpeg 基本用法

本文对在使用ffmpeg进行音视频编解码时使用到的一些函数做一个简单介绍,我当前使用的ffmpeg版本为:0.8.5,因为本人发现在不同的版本中,有些函数名称会有点小改动,所以在此有必要说明下ffmpeg的版本号。ffmpeg本人也是刚接触,本文将采用累加的方法逐个介绍我使用到的函数,如有不妥之处,还望谅解!头文件引入方法:extern "C" {#include "libavcodec/avco...

2018-07-13 19:54:32 489

转载 视音频编解码技术概念

1.     视频播放器原理视音频技术主要包含以下几点:封装技术,视频压缩编码技术以及音频压缩编码技术。如果考虑到网络传输的话,还包括流媒体协议技术。简要说明一下视频播放器的原理。视频播放器播放一个互联网上的视频文件,需要经过以下几个步骤:解协议,解封装,解码视音频,视音频同步。如果播放本地文件则不需要解协议,为以下几个步骤:解封装,解码视音频,视音频同步。他们的过程如图所示。 解协议的作用,就是...

2018-07-12 16:34:37 717

转载 YUV420P格式分析

YUV格式通常有两大类:打包(packed)格式和平面(planar)格式。前者将YUV分量存放在同一个数组中,通常是几个相邻的像素组成一个宏像素(macro-pixel);而后者使用三个数组分开存放YUV三个分量YUV420P(planar格式)在ffmpeg中存储是在struct AVFrame的data[]数组中data[0]-------Y分量               data[1]-...

2018-07-12 15:39:48 15321

转载 RTP协议全解析(H264码流和PS流)

1、RTP 分析(1)IP是属于网络层部分的,UDP和RTP都是属于传输层部分的。(2)RTP首部1)        V:RTP协议的版本号,占2位,当前协议版本号为22)        P:填充标志,占1位,如果P=1,则在该报文的尾部填充一个或多个额外的八位组,它们不是有效载荷的一部分。3)        X:扩展标志,占1位,如果X=1,则在RTP报头后跟有一个扩展报头4)        C...

2018-07-12 14:53:08 778

转载 RTSP协议学习笔记

第一部分:RTSP协议一、RTSP协议概述RTSP(Real-TimeStream Protocol )是一种基于文本的应用层协议,在语法及一些消息参数等方面,RTSP协议与HTTP协议类似。RTSP被用于建立的控制媒体流的传输,它为多媒体服务扮演“网络远程控制”的角色。尽管有时可以把RTSP控制信息和媒体数据流交织在一起传送,但一般情况RTSP本身并不用于转送媒体流数据。媒体数据的传送可通过RT...

2018-07-12 11:03:43 198

转载 RTMP规范简单分析

RTMP(Real Time Messaging Protocol)实时消息传送协议是Adobe Systems公司为Flash播放器和服务器之间音频、视频和数据传输 开发的开放协议。它有多种变种:1)RTMP工作在TCP之上,默认使用端口1935;2)RTMPE在RTMP的基础上增加了加密功能;3)RTMPT封装在HTTP请求之上,可穿透防火墙;4)RTMPS类似RTMPT,增加了TLS/SSL...

2018-07-11 22:02:52 294

转载 五层协议体系结构的各层功能

1 第五层——应用层(application layer)应用层(application layer):是体系结构中的最高。直接为用户的应用进程提供服务。在因特网中的应用层协议很多,如支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,支持文件传送的FTP协议等等。2. 第四层——运输层(transport layer)运输层(transport layer):负责向两个主机中进程之间的通信...

2018-07-11 21:58:09 2323

转载 RTMP流媒体播放过程

本文描述了从打开一个RTMP流媒体到视音频数据开始播放的全过程。注意:RTMP中的逻辑结构RTMP协议规定,播放一个流媒体有两个前提步骤:第一步,建立一个网络连接(NetConnection);第二步,建立一个网络流(NetStream)。其中,网络连接代表服务器端应用程序和客户端之间基础的连通关系。网络流代表了发送多媒体数据的通道。服务器和客户端之间只能建立一个网络连接,但是基于该连接可以创建很...

2018-07-11 21:02:03 207

原创 流媒体码流、分辨率、gop、qp、fps、cvbr等常见概念理解

IDR        Instantaneous Decoding Refresh,即时解码刷新。为将首个I帧和其他I帧区别开,定义首个I帧为IDR帧。它与I帧、P帧、B帧的区别见http://blog.csdn.net/sphone89/article/details/8086071。 GOP        Group of Picture,关键帧的周期,也就是两个IDR帧之间的距离,一个帧组的...

2018-07-11 17:04:34 1746

原创 分辨率、帧率和码率三者之间的关系

帧率:FPS(每秒钟要多少帧画面);   以及Gop(表示多少秒一个I帧)码率:编码器每秒编出的数据大小,单位是kbps,比如800kbps代表编码器每秒产生800kb(或100KB)的数据。分辨率:单位英寸中所包含的像素点数; VGA:Video Graphics Array(视频图像分辨率)三者的对应直播质量的影响因素:帧率:影响画面流畅度,与画面流畅度成正比:帧率越大,画面越流畅;帧率越小,...

2018-07-11 10:30:38 3356

转载 H264编码之GOP含义

GOP说白了就是两个I帧之间的间隔.比较说GOP为120,如果是720p60的话,那就是2s一次I帧.        在视频编码序列中,主要有三种编码帧:I帧、P帧、B帧,如下图所示。            ● I帧即Intra-coded picture(帧内编码图像帧),不参考其他图像帧,只利用本帧的信息进行编码            ● P帧即Predictive-codedPicture(...

2018-07-11 09:59:55 608

转载 H.264编码原理以及I帧B帧P帧

前言-----------------------       H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中, 一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,我们可以先编码出一个完整 的图像帧A,随后的B帧...

2018-07-10 18:04:56 145

转载 用户空间与内核空间,进程上下文与中断上下文[总结]

1、前言  最近在学习linux内核方面的知识,经常会看到用户空间与内核空间及进程上下文与中断上下文。看着很熟悉,半天又说不出到底是怎么回事,有什么区别。看书过程经常被感觉欺骗,似懂非懂的感觉,很是不爽,今天好好结合书和网上的资料总结一下,加深理解。2、用户空间与内核空间    我们知道现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操...

2018-07-09 19:34:54 164

转载 select、poll、epoll之间的区别总结[整理]

  select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝...

2018-07-09 19:34:11 118

转载 IO多路复用之epoll总结

1、基本知识  epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。2、epoll接口  epoll操作过程需要三个接口,分别如下:#include <sys...

2018-07-09 19:33:34 109

转载 IO多路复用之select总结

1、基本概念多路复用 指进程受阻于select调用,等待任意多个套接字中的任何一个变为可读。  IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合:  (1)当客户处理多个描述字时(一般是交互式输入和网络套接口),必须使用I/O复用。  (2)当一个客户同时处理多个套接口时,而这种情况是可能的,但很少出现。  (3)如果...

2018-07-09 19:32:24 121

转载 网络IO之阻塞、非阻塞、同步、异步总结

1、前言  在网络编程中,阻塞、非阻塞、同步、异步经常被提到。unix网络编程第一卷第六章专门讨论五种不同的IO模型,Stevens讲的非常详细,我记得去年看第一遍时候,似懂非懂,没有深入理解。网上有详细的分析:http://blog.csdn.net/historyasamirror/article/details/5778378。我结合网上博客和书总结一下,加以区别,加深理解。2、数据流向  ...

2018-07-09 19:30:41 128

转载 IO多路复用之poll总结

1、基本知识  poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。2、poll函数  函数格式如下所示...

2018-07-09 19:28:52 113

原创 zmq和ucmq消息队列简述

ZMQ是什么?这是个类似于Socket的一系列接口,他跟Socket的区别是:普通的socket是端到端的(1:1的关系),而ZMQ却是可以N:M 的关系,人们对BSD套接字的了解较多的是点对点的连接,点对点连接需要显式地建立连接、销毁连接、选择协议(TCP/UDP)和处理错误等,而ZMQ屏蔽了这些细节,让你的网络编程更为简单。ZMQ用于node与node间的通信,node可以是主机或者是进程。区...

2018-07-09 19:18:55 1073

secureCRT免安装版.zip

secureCRT免安装版.zip

2021-04-10

Visual Assist 西红柿完美支持2010-2017

Visual+Assist+X+通用破解补丁2017,亲测可用,带有破解补丁(完美支持visula stuido 2017及以下版本)

2018-06-05

Visual+Assist+X+通用破解补丁2017

Visual+Assist+X+通用破解补丁2017,亲测可用,带有破解补丁(完美支持visula stuido 2015及以下版本)

2018-05-29

语音播报demo

利用百度语音技术把文字转换成语音,在从内存中读取,播放音乐。是源码,有依懒项需要设置一下,在win32目录下有编译好的程序可以直接运行

2018-02-07

Notepad FTP插件下载(NppFTP)

NppFTP是Notepad++上的一款小插件,它能轻松实现FTP、FTPES和SFTP通信。下载该压缩包,解压完成后,将bin目录下的“NppFTP.dll”文件放notepad++的plugin目录下 重新启动notepad++即安装成功

2018-02-01

dependencies2015库

vs依赖库下载!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

2017-11-29

qt 播放音乐

qt播放音乐 qmediaplaylist 循环暂停 快进快退等播放。。

2017-11-28

获取电脑进程列表,显示各个进程的CPU,内存,上行速度,下载速度

获取电脑进程列表,显示各个进程的CPU,内存,上行速度,下载速度。以及通过pid杀死进程的方法。使用winpcap库抓取各个进程的网络速率。

2017-09-20

通过进程id获取主窗口句柄及主窗口标题

通过进程id获取到所在进程的主窗口的句柄,及通过该主窗口句柄获取当前主窗口的标题,进程名;这是一个demo例程,仅供参考

2017-09-01

( YUV420(YV12)与YUY2(YUV422,YUYV)格式互转

做美颜要进行格式转换,就做了两种格式的互转,( YUV420(YV12)与YUY2(YUV422,YUYV)格式互转

2017-08-02

YUY420(YV12)转YUY2(YUV420),读取yuv文件转成YUY2文件

从磁盘中读取YUY420(YV12)文件解析处理按YUY2(YUV420)格式写入磁盘,利用格式检查工具可以进行检查

2017-08-02

空空如也

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

TA关注的人

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