自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Season@HangZhou 专栏

Working on Linux. http://blog.csdn.net/season_hangzhou

  • 博客(184)
  • 资源 (3)
  • 收藏
  • 关注

原创 三个例子让你透彻理解const (C/C++)

三个例子让你透彻理解const (C/C++)一、指向  const  对象的指针指向  const  对象的指针,指的是指针指向的内容是const的,不可修改,但指针本身是可以修改的。例1:char acConst[] = "const";const char *pcConst = acConst; *pcConst = ‘C’;         /* Error,像这样修改pcConst指向内容的做法是不允许的 */

2013-09-16 20:59:34 5480 1

转载 我为什么不能坚持?

很多大学生来信给我诉说一样苦恼:就是不管做什么事情都容易半途而废,不能坚持到底。  特别郁闷的是有同学说:我发现自己以前做一件事还能坚持到最后,现在大学了就不能坚持下去,有什么好办法解决吗?  要坚持做一件事情,其实是需要意志力----也就是自我控制自己行为的能力。而绝大部分人,包括我在内,天生都是有意志薄弱的时刻,能总是做到自我控制是很难的。  为什么这位大学生觉得自己原来能坚持而现

2013-05-30 19:25:37 912

原创 从“冷却时间”谈产品设计

新入职的95后同事,在客户端UI编程时,将原设计方案中的“间隔时间”字段,改成了“冷却时间”。我问他为什么不按设计方案做,他说他觉得这样改显得很酷啊。我当然是反对这个改动的,不是因为方案设定了就不能改,而是觉得这个改动在这款产品上不合适。因为,产品的使用对象,决定了产品的设计原则。2B(即To Business)的产品设计和2C(即To Customer)的会有不同。2B的产品,面向的...

2018-10-26 16:23:37 377

转载 FLV文件格式解析

flv文件主要由两部分组成:header和body。1.headerheader部分记录了flv的类型、版本等信息,是flv的开头,一般都差不多,占9bytes。具体格式如下:文件类型3 bytes“FLV”版本1 byte一般为0x01流信息1 byte倒数第一位是1表示有视频

2017-03-21 10:53:10 1047

转载 H.264码流解析 一个SPS的nalu及获取视频的分辨率

00 00 00 01 67 42 00 28 E9 00  A0 0B 77 FE 00 02 00 03 C4 80  00 00 03 00 80 00 00 1A 4D 88  10 94 00 00 00 0100 00 00 01为NALu头,‍其余码流由十六进制转为二进制 67 0110 011142 0100 001000 0000 0000

2017-02-09 20:10:11 1808

原创 程序运行产生SIGABRT信号的原因

目前我所知的程序运行产生SIGABRT信号的原因有三个,若还有其他情况,敬请网友留言。(注:SIGABRT信号即signal 6的信号)一、多次free导致的SIGABRT#include "stdlib.h"#include "string.h"#include "stdio.hint main(){ void *pc = malloc(1024);

2017-02-08 14:53:31 41821 1

转载 C++模版使用用例

用例子来说明C++模版的使用

2017-02-08 14:27:12 651

原创 centos 6.5下,安装git2.2.1

一、 卸载老版本git1.7.1yum remove git二、 安装编译git源码所需要的工具yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel asciidocyum install  gcc perl-ExtUtils-MakeMaker yum install xml

2016-11-08 14:47:08 1887 1

原创 用mingw编译ffmpeg

一、安装mingw具体方法见:http://jingyan.baidu.com/article/455a99509c76d8a1662778f6.html二、下载ffmpeg去官网下ffmpeg源码tar包三、 编译ffmpeg运行mingw脚本“msys.bat”进入shell,路径为: C:\MinGW\msys\1.0下载yasm的windows版本编译后程序,你自己选择32或64,将其

2016-08-08 16:01:45 872

原创 在linux下源码编译x265

一获取libx265源码二编译libx265源码一、获取libx265源码去libx265官网上下载源码,地址:http://ftp.videolan.org/pub/videolan/x265/ 将源码放入linux目录下,注意,若是虚拟机的话要放到Linux系统的真实目录下,而不是windows的共享文件夹,否则会有很多问题。二、编译libx265源码libx265是用CMAKE编译的

2016-08-06 21:08:56 11612

转载 基于h264的SDP相关字段解析

H264的RTP中有三种不同的基本负载(Single NAL,Non-interleaved,Interleaved)应用程序可以使用第一个字节来识别。 在SDP中也说明了本次会话的属性SDP 参数 下面描述了如何在 SDP 中表示一个 H.264 流:. "m=" 行中的媒体名必须是 "video". "a=rtpmap" 行中的编码名称必须是 "H2

2016-04-11 18:51:51 2024

原创 h264协议帧头数据解析

h264常见的帧头数据为:00 00 00 01 67    (SPS)00 00 00 01 68    (PPS)00 00 00 01 65    ( IDR 帧)00 00 00 01 61    (P帧)等等,那么他们代表的意思是什么呢?一、start codestart code有两种,四个字节的“00 00 00 01”和三个字节的“00 00

2016-04-11 18:37:14 21037

原创 linux下用live555进行二次开发指南

一、live555源码下载地址最新代码下载:http://www.live555.com/liveMedia/public/live555-latest.tar.gz二、编译源码过程对于移植进行二次开发者,其实用它编译出的可执行文件是不会去用的,但是看编译过程可以帮助理解live555的架构。还有,看makefile里面的编译宏对我们开发也有帮助。在linux下,我们使用命

2016-03-22 19:30:10 3677

原创 生成onvif相关的开发代码

一、必备网址1. Onvif官网:http://www.onvif.org/2. gsoap官网:http://www.cs.fsu.edu/~engelen/soap.html二、操作步骤1. 下载gsoap在gsoap官网旁边,有sourceforge的链接,去那里下源码。https://sourceforge.net/projects/gsoap2/f

2016-02-26 16:13:13 1213

转载 CentOS6.5下编绎gSoap相关问题及解决

一,开发环境准备:1,centos为虚拟下安装,版本为32位,(64位同样可以,均测过,需注意的是红色部分内容)2,gSoap:gsoap_2.7tar.gzhttp://www.cs.fsu.edu/~engelen/soap.html下载下来解压缩,按正常安装过程进行编译、安装。# tar zxvf gsozp_2.7.12.tar.gz # cd gsoa

2016-02-23 15:11:57 3464

原创 虚拟机拷贝后网卡eth0变成了eth1的解决办法

一、修改/etc/udev/rules.d/70-persistent-net.rules文件将之前的eth0那行删了,将eth1改为eth0二、配置ifcfg-eth0脚本,注意HWADDR那行,要和上图ATTR对应DEVICE=eth0TYPE=EthernetONBOOT=yesNM_CONTROLLED=yesBOOTPROTO=dhcpDEFROUT

2015-12-16 16:54:23 8929 1

原创 根据gbt28181协议,注册到SPVMN平台的方法

说明:SPVMN平台IP为192.168.8.180,设备IP为192.168.8.184一、向平台注册的交互协议1、客户机向SPVMN平台注册协议REGISTER sip:34020000002000000001@3402000000 SIP/2.0Via: SIP/2.0/UDP 192.168.8.184:5060;rport;branch=z9hG4bK1839159

2015-11-05 11:16:39 7517 1

原创 tcpdump常用命令

tcpdump -i eth3 host 192.168.8.87 -w ./rtp.pcap -s 0i: 指定网卡host: host + ip,抓指定ip的交互包,注意,是交互包。若要抓指定原ip或目的ip,还需加上src 或dst,即src host 192.168.8.87。w:指定路径-s 0:抓取数据包时默认抓取长度为68字节。加上-s 0 后可以抓到完整的数据包

2015-11-03 12:41:20 919

原创 MPEG2-PS格式分析实例

一、 PS 包头格式1、PS 包头格式包起始码字段  pack_start_code  值为'0000 0000 0000 00000000 0001 1011 1010' (0x000001BA)的位串,用来标志一个包的开始。系统时钟参考字段  system_clock_reference_base,system_clock_reference_extenstio

2015-09-28 18:21:28 4871 1

转载 shell脚本助你在linux下实时查看单网卡流量

#!/bin/bash while [ "1" ] do eth=$1 RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}') TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}') sleep 1 RXnext=$(c

2015-09-23 15:54:39 4240

转载 shutdown和close详解

在Linux socket关闭连接的方法有两种分别是shutdown和close,首先看一下shutdown的定义#includeint shutdown(int sockfd,int how);how的方式有三种分别是SHUT_RD(0):关闭sockfd上的读功能,此选项将不允许sockfd进行读操作。SHUT_WR(1):关闭sockfd的写功能,此选

2015-09-10 11:13:07 1471

原创 wireshark中带有SLE和SRE的SACK包详解

一、名词解释SLE: Sequence Left Edge of already acknowledged data when Selective Acknowledgments are used. 即已收到tcp数据的左边界。SRE: Sequence Right Edge of already acknowledged data when Selective Acknowledgmen

2015-09-09 17:26:14 8821 1

原创 正则表达式在notepad++中的使用

在看日志时发现不同等级的日志太多,需要进行过滤,notepad++支持正则表达式,故选用它 ^[(FATAL)|(WARNNING)].*支持查找FATAL和WARNNING。

2015-08-27 11:32:59 1146

原创 linux启动时进入只读系统的恢复方法

一、现象系统登录时有磁盘分区挂载错误的信息,想要修改任何文件,都提示文件只读。二、解决方案重新挂载,使fstab等文件可写。命令: mount / -o remount修改fstab文件: vi /etc/fstab 删除你自己加的那些命令行,很有可能是其中某个导致的错误,然后保存。重启电脑。若命令不行,则强制下电重启。起来后你就发现问题解决了。

2015-08-10 10:18:56 2216

转载 centos下的vnc server的使用

一、用户创建vnc用户需要先创建linux用户。linux用户创建方法:useradd test修改密码方法:useradd test修改VNC密码su test          //切换到用户testvncpasswd      //设置用户的test登录密码exit二、vnc配置文件修改VNCSERVERS="1:root 2:

2015-07-15 11:26:34 793

原创 用shell脚本批量修改目录下的文件名

#!/bin/bashfile_head=""file_b=""Folder_A="/root/share/video/decode_test/2" for file_a in `ls *.data`; do file_b="${file_a:0:4}.h264" mv $file_a $file_bdone

2015-07-02 16:17:47 3176

转载 Centos 7 安装VNC步骤

原文:http://wic.xingning.gov.cn/blog/29首先试试服务器装了VNC没[root@wic ~]# rpm -q tigervnc tigervnc-server没安装的话会直接出现package tigervnc is not installedpackage tigervnc-server is not installed

2015-05-06 16:52:28 941

转载 Linux网络编程socket错误分析

Linux网络编程socket错误分析 socket错误码: EINTR: 4阻塞的操作被取消阻塞的调用打断。如设置了发送接收超时,就会遇到这种错误。只能针对阻塞模式的socket。读,写阻塞的socket时,-1返回,错误号为INTR。另外,如果出现EINTR即errno为4,错误描述Interrupted system call,操作也应该继续。如果recv的返回值为0

2015-03-26 15:36:45 804

转载 TCP选项之SO_RCVLOWAT和SO_SNDLOWAT

每个套接口都有一个接收低潮限度和一个发送低潮限度。 接收低潮限度:对于TCP套接口而言,接收缓冲区中的数据必须达到规定数量,内核才通知进程“可读”。比如触发select或者epoll,返回“套接口可读”。 发送低潮限度:对于TCP套接口而言,和接收低潮限度一个道理。 理解接收低潮限度:如果应用程序没有调用recv()去读取socket的接受缓冲区的数据,则接受缓冲区数据将注一直保存

2015-03-25 16:21:21 1608

原创 生成coredump文件的方法

输入以下命令:ulimit -a命令解释:查看限制ulimit  -c unlimited命令解释:设置生成的core文件大小为无限制,unlimited这个参数可以改为数字,如1024等等,表明生成的core文件最大值为1024命令解释:去除生成的

2015-03-04 12:20:51 1063

原创 虚拟机中用centos光盘安装RPM包的方法(实体机也可适用)

1、在虚拟机光盘选项中设置连接路径为centos安装光盘。2、将光盘挂载到本地目录。mkdir cdrommount /dev/cdrom cdrom3、进入目录rpm包的目录cd cdromcd Packages4、用命令安装rpm包:如:rpm -ivh telnet-server-*.rpm telnet*.rpm

2015-01-27 14:40:29 2674

原创 在centos下安装git

1. 下载geekery repo文件(root权限)wget -P /etc/yum.repos.d/ http://geekery.altervista.org/geekery-el6-x86_64.repo 2. 安装 rpmrpm -ivh rpmforge-release-0.5.3-1.el6.rf.x86_64.rpmrpm -ivh epel-release

2015-01-14 09:52:18 643

转载 epoll_create, epoll_ctl和epoll_wait

NAME        epoll - I/O event notification facility SYNOPSIS        #include  DEscrīptION        epoll is a variant of poll(2) that can be used either as Edge or Level        Triggered

2015-01-08 16:52:04 736

原创 解决在epoll中accept接收端口会漏处理的问题. 直到新的socket消息到达,epoll_wait才响应去接收socket端口数据的问题

在用epoll的边缘触发模式中,发现socket接收有异常,有时会出现新的socket连接到底,但是需要有新的数据到底时,epoll_wait才响应去接收数据这个问题。原因分析:epoll的边缘触发模式下,同一端口可读时,epoll_wait只会提示一次。在accept中,当2个端口同时到达时,只会响应一次。这时就要用 while等循环函数去接收消息和接收accept响应,一般接收消息

2015-01-08 15:57:12 2296 1

原创 整理华为C/C++编码规范

目  录1 排版2 注释3 标识符命名4 可读性5 变量、结构6 函数、过程7 可测性8 程序效率9 质量保证10 代码编辑、编译、审查11 代码测试、维护12 宏1 排版1-1:程序块要采用缩进风格编写,缩进的空格数为4个

2015-01-07 16:18:24 5244

转载 编译后的汇编语言程序

们来看看由GCC 生成的汇编语言程序。程序1-1 是为检验而编写的小程序。程序 1-1 10 次加 1 运算的程序#include int a, b;main(){    a = 0;    do {        b += a + 1;        a++;    } while (a }如果在编译此程序时加上-S 选项,如“gcc  -

2015-01-06 17:34:50 1300

转载 TCP/IP协议栈概述及各层包头分析

一、摘要  对之前几篇博文涉及到的网络通信协议进行分析,概述出TCP/IP的协议栈模型,最后根据实例对各层包头进行分析。 二、标准TCP/IP协议栈模型  标准TCP/IP协议是用于计算机通信的一组协议,通常被称为TCP/IP协议栈,以它为基础组建的互联网是目前国际上规模最大的计算机网络。正因为互联网的广泛应用,使得TCP/IP成为了事实上的网络标准。1、O

2014-12-12 16:51:21 1022

转载 通过load值查服务器问题

几乎每个接触类 Unix 操作系统的工程师都知道如何查看系统负载。但这东西的工作机理到底是怎样的,可能没有多少能说清楚。对比了一些相关信息,加上自己的理解,做一下笔记。 什么是 Load ? 什么是 Load Average ? Load 就是对计算机干活多少的度量(WikiPedia: the system load is a measure of the amount of work

2014-10-14 16:40:51 2424

原创 Linux下NTP服务器端配置

我的[root@bogon ~]# clear[root@bogon ~]# lsb_release -aLSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd6

2014-10-11 11:56:55 6810

原创 在redhat/centos下源码安装gcc的方法

在安装GCC之前,需要预先安装一些软件。先安装GMP,然后 MPFR,最后才是MPC安装内容下载:gcc-4.8.2.tar.bz2一、解压安装包。tar xf gmp-4.3.2.tar.bz2tar xf mpc-0.8.1.tar.gztar xf mpfr-2.4.2.tar.bz2tar xf gcc-4.8.2.tar.bz2二、将g

2014-10-10 17:43:23 1635

ONVIF2.0中文协议原版(word).pdf

ONVIF 的目标是为了实现完全标准化的、可互操作性的网络视频服务,即使是由不同的 网络视频供应商组成的产品。规范描述了网络视频模型,接口,数据类型和数据交换模式。 规范使用了那些已经存在的的相关标准,并同时根据视频网络服务添加制定了一些必要的新 规范。

2020-06-10

flv二进制数据解析工具(FlvParse)-已包含齐全的动态库

【该资源在win7——64位系统下验证通过。win10系统试试用win7兼容方式打开】 解析flv二进制数据的小工具,tag header tag data等都分析出来了的 这个工具的主要功能是查看FLV的文件结构,帮助我们理解FLV格式。另外,如果涉及到处理flv文件的开发,这个工具对于查看处理结果非常有帮助。因此我觉得有必要写一个使用说明,希望这个工具能够给大家提供帮助。 打开后的界面如下图所示。 先说一下界面布局:左上方是FLV文件的结构树,右边是FLV文件的字节流数据;左侧结构树下面依次是结构树的信息等级选择、高速模式选择、文件分析用时及进度条等;下方是分析文件的地址显示以及文件选择按钮。下面详细介绍一下相关部分。 结构树及信息等级 FLV结构树是这个工具最重要的显示信息,用户可以直观的查看当前FLV文件的结构。FLVParse默认FLV文件结构树的形式为:File Header + Metadata Tag(1个) + Video or Audio Tags(按顺序)。 结构树的信息详细程度是按等级划分的,之所以要分等级,是为了区分显示信息的详细程度,因为不同程度的分析对于分析所用的时间影响是比较大的(主要在UI界面上),越详细的信息等级占用分析时间越长。一共有6个等级,按从简单到详细介绍如下。 only section position info —— 只有每个section的位置信息,如下图所示。其中每个section后的方括号里是位置信息(十六进制表示),每个“Pre Tag Size”后面的数字表示size的大小(十进制表示),Video&Audio Tag按照在文件中的顺序依次排序标号; file header info, metadata info —— 只有File Header + Metadata Tag的详细信息,如下图所示。其中File Header的详细结构信息会在子树中列出,并在每项后面标示该项的值;Metadata Tag类似,包含Tag Header和Tag Data两个子树,并且对应子项的详细信息也都列出; file header info, metadata info, tag position info —— 包含File Header + Metadata Tag的详细信息,Video&Audio Tags的位置信息,以及Pre Tag Size信息,如下图所示; file header info, metadata info, tag section position info —— 比上个等级多出Video&Audio Tags的Tag Header和Tag Data的位置信息,如下图所示; file header info, metadata info, tag header info —— 比上个等级多出Tag Header的详细子项信息,如下图所示; file header info, metadata info, tag info —— 比上个等级多出Tag Data的详细子项信息,如下图所示。 FLV字节流数据显示 右侧显示了FLV文件的数据,可以让用户方便地查询对应位置上的字节。每一行都以一个十六进制的位置开始,该位置为相对于文件开头的位置。每一行有十六个字节,每个字节按高4位和第4位显示2个十六进制的字符,用户可以滑动滚动条查看任意位置的字节。 当用户选中左边结构树中的某项时,右边数据会自动选中对应的数据区域(绿色),根据不同项的类型,选中的区域大小也会自动对应。 高速模式 这个选项是为了解决分析比较大的FLV文件时,用户等待时间过长的问题。 普通模式时,分析过程为阻塞模式,即主线程分析完毕后刷新界面,用户才可以继续操作。 高速模式时,为非阻塞模式,主线程分析一小部分后立即返回刷新界面,响应用户操作;另外一个线程会继续分析剩余大部分文件,直到分析完毕自动结束线程。因此高速模式时,用户会看到结构树的滚动条一直在滑动,这是因为后台分析线程在不断向结构树里添加子项。需要注意的是,当后台分析线程还没有结束,如果用户打开新的文件进行分析,有可能出现错误的分析结果。这个目前没有进行测试,我想应该是这样的。 这里需要提一下,其实真正分析文件的时间并不会特别长,即使几百兆的文件,几十秒内应该没有问题,时间主要消耗在MFC的树型控件CTreeCtrl上。为了开发效率,FLVParse使用了MFC控件,但是CTreeCtrl在结构比较复杂,子项比较多的时候,效率会出现比较大的下降。当子项超过10000的时候,再进行添加的时间大大变长,几乎到了无法忍受的程度,好在还算稳定,没有出现崩溃等现象。粗略估计,每次分析文件,花在更新UI界面上的时间要占总耗时的90%以上,而且对于越大的

2017-03-20

mii-tool-1.65.0.0.tar.gz mii-tool源码

mii-tool(这是Linux下专门设置网卡工作模式的命令)可以设置网卡工作模式,如10M全双工、半双工之类的。 MII的全称是Media Independent Interface,字面意思上就是媒体无关的接口,因此它是独立于具体设备的,仔细想想标准化的东西都是独立于具体设备的。虽然如此,很多以太网卡设备并不支持这些参数的配置,因此当你执行mii-tool的时候,会得到Operation not supported的提示,要不就是没有使用超级用户身份,还有就是若接口编号设置超过eth7时,直接使用mii-tool 不加参数,会出现NO MII xxxxxxxxxx interface 之类的提示,是因为超过了默认值,使用帮助信息可以了解。

2013-05-08

空空如也

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

TA关注的人

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