自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(37)
  • 资源 (5)
  • 收藏
  • 关注

原创 ffmpeg设置视频帧率

使用-r参数可以对视频的帧率进行设置,那么是写成ffmpeg -i input -r n output还是ffmpeg -r n -i input output呢?实际上-r参数用来设置输入文件和输出文件的效果是不一样的前者决定了文件的时长,如果总帧数为N我们设置帧率为n,那么文件的长度就是N/n。如果未指定帧率,默认为25。后者可以用来降低码流,也就说对于一秒的n帧,我们想让输出文件

2017-07-10 22:47:12 66736 6

原创 利用ffmpeg将pcma和h264合成MP4

摄像头回调的音频数据大都是pcma,视频数据大都是h264,利用一条ffmpeg可以将其合成为MP4。ffmpeg -f alaw -ar 8000 -i test.pcma -r 20 -i test.h264 -vcodec copy test.mp4-f alaw:指定输入格式为pcma-ar 8000:设置音频的采样率为8000-r 20:设置视频的帧率为20-vcod

2017-07-10 21:45:18 3045

原创 linux/windows socket属性继承

今天在开发RTSP流转发程序之后,在windows下测试ok,在linux测试不可以,感觉程序跑的非常慢。最后定位为socket使用的是阻塞的。windows下:tcp监听套接字accept生成的套接字继承监听套接字的属性,包括阻塞、非阻塞、发送和接受缓冲区等linux下:不继承,需要重新设置。

2017-03-07 11:08:36 690

原创 RTP封装H264

1 H264数据结构H264功能分为两层:视频编码层(VCL,VideoCodeing Layer)和网络提取层(NAL,Network Abstraction Layer)。VCL数据及编码处理的输出,它表示被压缩编码后的视频数据序列。在VCL数据传输或存储之前,这些编码的VCL数据,先被映射或封装仅NAL单元中。每个NAL单元包括一个原始字节序列负荷(RBSP,Raw Byte Seque

2017-02-09 09:13:06 2760

原创 Darwin架构优化的一点想法

首先说下我对Darwin架构的一些理解:Darwin在对socket、任务、线程等对象封装的基础上,创建一个事件线程来对所有的网络事件进行监听,当监听到网络事件后就向与socket对象绑定的任务对象发送消息即将任务对象添加到Darwin根据cpu个数创建的任务线程的任务队列中,任务线程来循环获取任务队列的任务,调用其Run函数,来实现对socket事件的处理。另外我们注意到任务线程会根据R

2016-11-14 18:11:56 676

原创 EasyDarwin拉流支持基本认证和摘要认证(2)

在前面《EasyDarwin拉流支持基本认证和摘要认证》一文中讲述了如何通过修改qtaccess、qtusers来让EasyDarwin对我们创建的用户支持基本认证和摘要认证,之后在与群主的沟通中感觉这种方式的体验性太差,用户的需求是多方面的,可能有的想在配置文件中配置、有的想从数据库中读取、有的想在程序中写死……,我们需要提供一种便于用户自己扩展的方式,而不是与qtaccess、qtusers来

2016-08-26 18:21:07 2509 1

原创 EasyDarwin拉流支持基本认证和摘要认证

RTSP认证作为RTSP标准协议的一部分,其内容在网上可以找到很多,在此就不在赘述。EasyDarwin作为RTSP服务器也提供了对RTSP请求的基本认证和摘要认证。EasyDarwin用RTSPSession对象来处理RTSP请求,在其Run函数的kAuthenticatingRequest状态和kAuthorizingRequest状态及其调用的QTSS_RTSPAuthenticate_

2016-08-20 18:24:38 2373 2

原创 GBK与UTF-8的相互转化 Windows Linux

在程序中经常用到GBK与UTF-8的转化,尤其是对于一些中文字符的处理,现总结如下:windows:std::string UTF8ToGBK(const std::string& strUtf8)//UTF-8编码转化为多字节{  std::string strGBK; int len=MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)strUt

2016-08-02 08:54:55 617

转载 2010断点失效

转载,原文地址为:http://blog.csdn.net/cai6811376/article/details/52063666。近日,我们EasyDarwin团队在调试EasyDarwin的时候遇到有些C++源文件无法命中断点,提示“当前不会命中断点。还没有为该文档加载任何符号”。这里是因为,有些源文件的调试信息被禁用了,生成不了调试符号。只需要将源文件的“调试信息格式”设置一下就可以

2016-07-29 13:15:34 608

原创 EasyDarwin自动停止推流

我们使用EasyDarWIn的推流转发来进行媒体直播的时候,有时会有这样一个需求,当推流端推送的媒体没有客户端观看时,就希望推流端不再推送,也就是实现按需推送,当推流端使用4G网络时这个需求会更加强烈。需求明确,那么说下实现。实现分为两步:触发和通知。触发,EasyDarWin为每一路推流转发维护一个ReflectorSession对象,该对象的fNumOutputs属性用来指示当

2016-05-18 10:49:30 3124 1

原创 WSAAsyncSelect模型实例讲解

WSAAsyncSelect

2016-01-21 14:18:45 460 1

原创 以STL::map实现引用表的一种方式

引用表 map

2016-01-15 18:28:05 1086

转载 MFC多国语言实现

http://www.cnblogs.com/xianyunhe/archive/2011/09/02/2163842.html

2014-08-20 15:51:41 550

转载 利用二层交换机来隔离冲突域

http://blog.chinaunix.net/uid-24504987-id-122488.html如现在有一台交换机连着四台主机,分别为A、B、C、D。假设现在主机A要发一个数据包给主机D。当交换机收到主机A发过来的数据帧之后,该如何处理呢?1、若交换机中没有主机A或者主机D的MAC地址信息如果这个网络是刚刚组建,又或则出于某种原因,网络管理员把交换机重置后,则交换

2014-08-08 11:53:12 1809

转载 一种快速编辑电子电路图形的方法

一种快速编辑电子电路图形的方法南京航空航天大学信息科学与技术学院(南京 210016) 郑步生1 引言写论文、编写产品资料等等,都离不开电原理图的绘制。与文档的输入相比,电路图形的输入要复杂得多。目前,常见的电路图形绘制的方法大致有以下几种: (1)采用专业绘图软件绘制,如AutoCAD、CorelDRAW等〔1〕〔2〕。专业绘图软件绘图功能强大,所

2014-07-08 14:09:20 1176

转载 截取窗口的最小化消息

1.  WindowProc 函数:LRESULT C***Dlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam){    // TODO: Add your specialized code here and/or call the base class     if(message == WM_SYSCOMMAND

2014-04-25 14:40:16 1419

原创 C++ 结构体内存对齐

最近工作时需要用到内存对齐,查了资料。发现比较乱且观点不一,因此验证并总结。下面所写都是在实际中得到验证。环境:XP,VC6.0.内存对齐又称字节对齐,可以加快系统的处理速度。在结构体中的存储中尤其重要,那么系统对齐是按照什么方式呢?每个特定平台上的编译器都有自己的默认“对齐系数”(也叫对齐模数)。比如32位windows平台下,VC默认是按照8bytes对齐的(VC->Pro

2014-04-16 17:23:06 941

转载 字符串常量

字符串常量,之所以称之为常量,因为它可一看作是一个没有命名的字符串且为常量,存放在静态数据区。这里说的静态数据区,是相对于堆、栈等动态数据区而言的。静态数据区存放的是全局变量和静态变量,从这一点上来说,字符串常量又可以称之为一个无名的静态变量,因为"Hello world!"这个字符串在函数 s1和s2 中都引用了,但在内存中却只有一份拷贝,这与静态变量性质相当神似。char *c

2014-04-04 09:28:54 700

转载 const

C++中的const关键字的用法非常灵活,而使用const将大大改善程序的健壮性 ,所以我们要尽可能的多使用const。一、const使用情况:1、const常量  如const int max = 100; 优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边

2014-04-03 15:20:42 1407

转载 引用

引用是给变量取一个别名,所以引用传递会直接进行变量本身的传递。它的最大好处是可以把别处对变量的改变保留下来,第二好处是它提高了性能:如果函数的返回值是一个引用,那么,如上文所说,它会节约一组构造、赋值和析构过程。但是,函数返回引用往往会带来一些意想不到的错误:比如返回临时变量的引用。//一个错误的函数int &Max(int i, int j){  return i>j ? i :

2014-04-03 15:14:33 583

转载 解决VS2008程序独立运行问题

许多刚接触 VS2008 的程序员,编写应用程序会遇到这种情况,即在开发用的机器上可以正常运行,但是换了没装VS2008的机器,你写的程序就有可能运行不了了。其实当初我也是遇到这个问题,但是对于MFC程序来说,如果采用MFC静态链接发布,那么这个问题将会被简单解决。但是如果换了Win32项目,情况就不同了,因为它没有使用MFC,但是编译出来的程序,同样无法独立运行。这个问题本人曾在网上寻找过答案,

2014-03-18 13:15:28 1418

原创 工欲善其事,必先利其器

之前在原来的电路板上进行了简单的更改以满足客户的要求。原理没有问题,但输出电压不稳定,表现为持续变高,范围竟高达2V,且基准也不正确,且发生变化。头疼一上午。中午时,大拿张工来了,向他请教了这个问题,他在听到我的描述及看过电路图后,说基准不可能变,你的表是不是有问题了?我想起了我那块电量不足的电压表,或许他就是凶手。换过之后,没有问题了。 工欲善其事,必先利其器!

2014-03-18 12:59:22 518

原创 字符与GBXX,UCS-2,utf-8编码的相互转换

在介绍转换之前,先介绍一下常见的字符集:1ASCII:这个大家应该都比较熟悉,他把英文字母、数字等256个字符编码为Ox00-OxFF2GBXX:包括GB2312、GBK、GB18030,这里面主要增加了对汉及汉字标点等的编码。其中GB18030>GB2312>ASCII完全向下兼容。GBK是在GB2312上的改进(增加了对更多汉字的编码)。对于记事本(简体中文版)的默认编码方式就是GB2

2014-03-13 20:59:29 4548

原创 多线程为什么会卡

今天写了一个测试多线程的程序,线程函数如下所示:UINT ThreadFunction(LPVOID lp){int i,j,k;int a;for(i=0;ifor(j=0;jfor(k=0;k{a=i+j+k;}AfxMessageBox("多线程运算结束");return 0; }发现当同时打开打开多个这样的线程时,界面就会显得

2014-01-22 11:52:20 5573

转载 CreateThread 与 AfxBeginThread的区别

具体说来,CreateThread这个 函数是windows提供给用户的 API函数,是SDK的标准形式,在使用的过程中要考虑到进程的同步与互斥的关系,进程间的同步互斥等一系列会导致操作系统死锁的因素,用起来比较繁琐一些,初学的人在用到的时候可能会产生不可预料的错误,建议多使用AfxBeginThread,是编译器对原来的CreateThread函数的封装,用与MFC编程(当然,只要修改了项目属性

2014-01-13 16:40:28 574

转载 C/C++圣战篇

偶尔看到这篇文章,引起了很多回忆。记得自己第一个在WINDOWS平台下编制的软件就是BORLAND C++做的,当时确实感觉,世界上没有比它更好的开发工具了。以后又陆续用过几款BORLAND的产品,感觉都很好。然而事过时迁,现在却只能用MS的开发工具。看了这篇文章,或许可以知道点什么! === 附录一 === 李维,中国台湾人,上世纪九十年代于美国取得电脑硕士学位,Borland大

2014-01-08 11:11:52 1357

转载 Nagle算法

目录1简介2算法1简介Nagle算法是以他的发明人John Nagle的名字命名的,它用于自动连接许多的小缓冲器消息;这一过程(称为nagling)通过减少必须发送包的个数来增加网络软件系统的效率。Nagle算法于1984年定义为福特航空和通信公司IP/TCP拥塞控制方法,这使福特经营的最早的专用TCP/IP网络减少拥塞控制,

2013-12-30 16:57:28 751

转载 千万别说那句最招人恨的话!

男生搭讪:“你长得很像我的初恋女友。”——女生内心独白:“那你到底是喜欢我还是喜欢你初恋女友?!” 同事说:“你真的跟咱们部门的某某很相像。”——“你”内心嘀咕:“该死的某某,识相的话就尽量少在我眼前晃!” ……后世评论家也说“晴为黛影”。不论个性还是长相,都似一个模子里刻画出来的。我们总以为这样的两个女孩应该是臭味相投的吧,可恰恰黛玉和晴雯,关系真的不好。

2013-12-25 13:09:47 731

原创 补码

几年前的知识后头看一下还是茫茫然,虽然简单(看上去)。关于补码:好多人都说到了模的概念。以二字节为例模为2^8=256如果一个数的补码为1000 0001,如果看做无符号数则为129,但因为符号位为1,因此为负,考虑到模256,故为129-256=-127当然用求反+1(不涉及符号位)也可。同样补码的补码就是原码(谁来给出严谨的数学证明。)补码的意义到底是什么?

2013-12-23 14:41:02 655

转载 MTU原理及相关问题分析

转载自以下网址http://tech.c114.net/169/a650345.html一、MTU的定义及相关概念:Mtu即最大传输单元,全称为Maximum Transmission Unit,是指通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。由于定义的模糊性,在此也介绍几个相关的名词,MRU、PMTU、MSS和JUMBO FRAME,供大家甄别。MRU即最大接收

2013-12-23 13:53:58 2470

转载 数据在内存中是如何存储的

在C++中,内存分成5个区,他们分别是堆、栈、自由存储区、全局/静态存储区和常量存储区。栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区。里面的变量通常是局部变量、函数参数等。堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动回收。

2013-12-18 10:43:37 775

原创 内网与外网通讯 socket

学习了socket这么长时间,没写过内网,外网之间的通讯,今天看到两句话顿时领悟。内网和外网连接,这要看你的主动连接方(Client)和被动连接方(Server)各处于什么位置1、假设Server方在外网,Client方在内网,那么可以直接通过外网IP连接,不需要任何映射2、假设Server方在内网,Client方不论在其他内网还是在外网,都需要Server方的监听端口有被外网访问的权

2013-12-17 17:02:25 2253 2

原创 VB程序多国语言的实现

国际化的发展对软件的多国语言也提出了要求,今天要对公司的一个软件做英文界面。老大给我说了简单的实现方式:读写文件。功能要求:1在设置界面上有语言选项,选择相应的选项时,界面上所有的显示及可能显示的都变为相应语言;2且下一次打开时显示上一次最后一次设置的语言。想法:1.程序如何知道当前设置的语言?即要有相应的文件存储语言设置。因此添加了一个文件“语言txt"当程序

2013-11-19 17:15:28 2944 1

转载 局域网和以太网的区别

几个问题:1. 关于局域网和以太网的区别2. 两台机器组成的网是不是局域网?3. 局域网和以太网有什么区别? 4. 网卡的自适应是什么意思?  首先,我们来看看局域网是什么,简单的说局域网就是在一个封闭的环境如办公楼中彼此连接起来的一组计算机。这个定义中的关键在于所有的计算机都以一定的形式在网络中进行组织和彼此连接,而且要在同一幢建筑物中。所以只要这两台计算机在同一个建筑物中并

2013-11-13 16:54:24 1228

原创 VB笔记

记录一些小知识点:1.如何改变listview的列标题名称:With ListDetail.ColumnHeaders        .Clear        .Add , , "", 50        .Add , , "序号", 800        .Add , , "元素", 1600        .Add , , "附加值", 1000       

2013-11-13 11:26:29 544

原创 TCP连接3次握手的理解

在TCP的连接中有有这样一个功能:1:客户端向服务器发送一个syn2:服务器回一个ack并发一个syn3:客户端回一个ack刚开始一直很疑问,仅仅要1.2不就行了,再网上找了找发现好多人有同样的疑问,现在把我的理解写出来,和大家交流。首先我们要知道为什么要进行连接,这是为了发送数据做准备。 首先客户端对服务器说:可以开始数据传递?服务器说:可以。并问一句:可以开始数

2013-11-01 16:48:41 743

原创 VB登录界面的两种实现方式

由于框架内容已基本完成,下面就可以做些业户性质的任务了。首先是登录界面的设计,常见的登录界面有两种第一种设程序在开始运行时显示一个登录窗口,验证正确后才可以进入程序中,如QQ。VB实现:VB程序的启动可以设置为从登录窗体启动,即工程--工程属性--启动对象,选择要启动的窗体即可。我一般喜欢从sub mian启动,那么只需在sub main里启动登录窗体即可。第二种是程序弹出一个登录

2013-10-30 14:04:44 4845

引用表头文件

以map实现引用表。如有错误,欢迎指教。

2016-01-15

以STL::map实现引用表

以STL::map实现引用表,如有错误,欢迎指教!

2016-01-15

VB 实现FTP客户端

虽然有很多现成的,但由于功能需要定做,必须再写一遍。 开始打算用inet控件,但下载多个程序时老是失败。最后找了一个用WIninet API实现的,估计是老外写的,代码比较严谨,界面比较差劲,但功能都实现了。我就在它的基础上完成了自己的封装。 现在上传的是老外写的那个,在VB6.0下通过验证。

2013-10-30

键盘监视程序

后台运行的程序,监视键盘输入,仅供交流。

2013-08-03

交流固态继电器在工业控制中的应用

交流固态继电器在工业控制中的应用,从原理到选型以及应用到有比较详细的介绍。

2013-07-17

空空如也

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

TA关注的人

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