自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 rtmp详细介绍

本文章对RTMP的解读,主要依赖于adobe官网下载的rtmp_specification_1.0.pdf,文档里标注的时间是2012年12月21。1.RTMP简介rtmp是adobe公司制定的一种实时消息传输协议,全称 real time messaging protocol。是一种应用层的协议,底层协议是基于tcp【RFC0793】,实现了一对一,一对多的视频、音频、数据消息等数据在网络上的传输。2.名词定义消息流:一个逻辑通信通道里的消息数据流。消息流ID:对每个消息流的一种表示

2020-12-16 16:04:34 300

原创 FLV格式

在做rtmp相关的项目,中间用到FLV格式,这里对FLV格式进行介绍说明。对于FLV格式的文件,一个文件只包含一种类型的码流,不能音频流和视频流混合存放,也不能将多个同类型码流放到一起。FLV里面的数据是采用大端模式存储。下面对FLV格式做个整体认识:FLV由FLVHeader和Tag组成,在每个Tag后面都包含一个四字节的pretagsize表示前一个tag的大小。每个Tag又由TagHeader和TagData两部分组成。下面分别介绍FLV各个部分的具体内容。1.FLVHeade

2020-05-15 14:03:52 413

原创 VS2019编译调试ffmpeg

vs2019 ffmpeg编译和调试

2022-07-14 15:48:46 412 1

原创 window查看dll依赖库命令

打开vs自带的开发者命令提示符窗口。在窗口中使用命令 dumpbin -imports XXXXX/XXX/XXXX.dll

2020-12-28 10:33:15 2222

原创 实用的linux命令

1.lsoflsof -i port

2020-12-25 11:31:30 170

原创 NTP时间戳和UTC时间戳互转及其原理

1.NTP时间戳NTP时间戳是用一个64bit的无符号的定点数表示。它表示自从1900年1月1日00:00 到现在过了多少秒。64bit分为两部分,高32bit表示整数部分,单位是秒;低32bit表示小数部分,单位是232皮秒(picosecond)。...

2020-12-19 15:55:11 6994

原创 编译vs2015 protobuf

这里主要是使用cmake生成vs2015 工程。然后编译自己需要的库文件和proto.exe工具:CMAKE:http://www.cmake.org源码地址:https://github.com/protocolbuffers/protobuf/releasesVS2015 已经安装完成版本选择:(根据自己需要选择相应的版本)cmake:cmake version 3.17.20200511-g8787079protobuf源码下载的是3.9.2 (我下载的是souce cod

2020-07-17 16:19:59 507

原创 “(_Ptr_user & (_BIG_ALLOCATION_ALIGNMENT - 1)) == 0“ && 0

进来用vs2015进行开发调试,遇到了 "(_Ptr_user&(_BIG_ALLOCATION_ALIGNMENT-1))==0"&&0 异常。现象很奇怪,在函数返回的时候才会报出异常,整个函数的运行中都是正常的。网上查询都说是vector满什么之类的。但是我的函数中就没有vector。后来通过比较笨的方法就是注释代码,一行行的去排查,发现是函数中一个结构体中的string类型的成员变量,初始化的时候莫名其妙的分配了很多内存,都达到了G基本的分配。我...

2020-07-14 11:30:00 1266

原创 devenv 设置 未能完成操作。参数错误

在使用脚本编译VS2015工程文件,进行devenv 设置的时候报错 未能完成操作。参数错误 无法进行正常的编译devenv 解决方案文件.sln /build [ 解决方案配置 ] [ /project 项目名称或文件 [ /projectconfig 名称 ] ]/Build 使用指定的解决方案配置生成解决方案或 项目。例如“Debug”。如果可能存在多个平台, 则配置名称必须用引号括起来...

2020-05-14 15:53:43 1977

原创 Ubuntu16.04安装ssh服务端

电脑联网的情况下自动安装流程:打开终端1.安装ssh服务端sudo apt-get install openssh-server2.查看有没有成功启动sshps -aux | grep ssh显示有 /usr/sbin/sshdroot 1147 0.0 0.3 65512 6196 ? Ss 4月08 0:12 /usr/sbin/sshd3.启动ssh或者重启ssh/etc/init.d/ssh start 或 /etc/...

2020-05-13 13:30:16 2207

原创 VS error 记录

C4996:出现这样的警告,是因为VC2005之后的版本中认为CRT中的一组函数如果使用不当,可能会产生诸如记忆体泄露,缓冲区溢位,非法访问等安全问题。这些函数如:strcpy,strcat等。解决方法:1. #pragmawarning(disable:4996)或#define _CRT_SECURE_NO_WARNINGS 忽略掉这个错误2.修改VS配置,告诉它我就要旧...

2020-01-09 10:22:50 271

翻译 epoll_create和epoll_create1

名字 epoll_create epoll_create1 - 创建epoll文件描述符摘要 #include <sys/epoll.h> int epoll_create(int size); int epoll_create1(int flags);描述 epoll...

2019-12-26 09:39:00 11667

原创 Window和linux下组播不同之处

怎么加入组播这里就不说了,这里要说的是加入组播之后要接收组播消息一般我们都是创建socket bind recvfromint socketfd = socket(AF_INET,SOCK_DGRAM,0);struct sockaddr_in saddr;memset(&saddr,0,sizeof(saddr));saddr.sin_family = AF_IN...

2019-12-05 16:55:18 614

原创 socket 的句柄属性设置

Socket一些属性设置记录标记window/linux设置方法,如果没标记则是不同系统下设置都相同。udp/tcp 共有的属性FIONBIO 设置socket是否为阻塞非阻塞模式,默认创建的socket是阻塞模式。设置非阻塞模式:dwOn = true;window:ioctlsocket(m_hSocket, FIONBIO, &dwOn);linux...

2019-12-05 16:23:55 1618

原创 C++实现顺序表和单链表

创建文件命名为sqlist.h#ifndef SQLIST_H#define SQLIST_Htypedef int ElemType;class SqList{public: SqList(); // 无参构造函数,建立空的顺序表 SqList(ElemType array[], int len); ...

2019-10-17 15:35:46 276

原创 ioctl() FIONREAD 检测socket是否有数据可读

先看看FIONREAD 的作用FIONREAD:Get the number of bytes in the input buffer 获取接收缓存中数据的字节数项目中用来判断tcp socket是否有数据接收到,但是出现了一个问题,对于用于accept的socket 即调用listen()之后的socket,用FIONREAD,判断的时候报错,ioctl()返回-1,错误码是 2...

2019-10-10 17:31:55 2593

转载 创建动态库时,使用的链接选项Bsymbolic

问题描述回归正题,前段时间项目开发中,实现了一个动态库,封装了一些方法。然后基于这个动态库,实现了一个应用程序。应用程序中含有全局变量A,动态库中也含有全局变量A,当我调用动态库中函数后,发现应用程序的A发生了变化!!!O,My God!对于我这种还没在Linux下做过开发的人来说,一头雾水。。。。。。 于是我尝试着,将A中的变量名称改为B,这样问题也就没有了~~~原因应用程序进行链接的...

2019-09-05 15:16:45 600

原创 内存错误检测-AddressSanitizer

目录简介:使用范围:使用方法:结合gdb:运行结果:简介:AddressSanitizer是C/C++内存错误检测的工具,它是LLVM3.1版本开始支持,GCC从4.8版本开始支持,它可以检测以下错误:功能:1.释放后使用(悬空指针解除引用)2.堆缓冲区溢出3.堆栈缓冲区溢出4.全局缓冲区溢出5.使用返回值访问局部变量6.使用释放后的局部变量内存7...

2019-02-22 16:39:23 7745 1

原创 memcpy() 函数 window 与 linux 下区别

void *memcpy(void *str1, const void *str2, size_t n)char achData[1500], int len, pos;memcpy(achData, achData + pos, len);window下:源内存地址 和 目的内存地址 是同一个数组是, pos 小于len  也就是复制区域会有重合的部分,重复部分不会被覆盖掉。...

2019-01-22 15:44:20 1214

原创 ubuntu16.04 安装libcurl

使用:还有其他版本的libcurl  根据自己需求安装包含openssl  是为了支持httpssudo apt-get install libcurl4-openssl-dev头文件:/usr/include/curl库文件:/usr/lib/x86_64-linux-gnu/libcurl.so.4...

2018-11-20 11:14:37 24292

原创 Ubuntu16.04 jsoncpp 的安装

这里记录两种安装方法:1.能联网的情况下,使用apt-get installsudo apt-get install libjsoncpp-dev这里安装可以看到是1.7.2版本的jsoncpp头文件在:/usr/include/jsoncpp/json动态库在:/usr/lib/x86_64-linux-gnu/libjsoncpp.so.1.7.22.下载源码自...

2018-11-20 10:40:59 13006

原创 QT 实现线程moveToThread(QThread *targetThread)

用Qt 也一年多了,工作过程中线程是少不了的,以前项目中都是继承QThread 然后重载run()函数。而且一直喜欢这种方法。后来发现QT 还有个方法就是MoveThread 不过一直不喜欢用。也有看网上其他人的使用过程,总是喜欢把继承的Qobject类的槽函数跟Qthread的started信号相关联(这句话纯吐槽)。 既然有多种方法实现线程,还是学习一下怎么使用比较好。这里记录一下用法,以便...

2018-09-19 11:53:22 1287 11

原创 qt 中隐藏namedwindow的标题栏

做个展会的demo,播放视频,用opencv进行视频的播放。opencv也提供high-gui。但是namedwindow没有控制标题栏的函数或者属性设置。不显示标题栏有两种情况。1、你全屏namedwindow窗口,opencv自己做处理不显示窗口标题栏。namedWindow("input", CV_WINDOW_NORMAL| CV_GUI_NORMAL | CV_WINDOW_F...

2018-07-17 15:53:14 3070 2

原创 你有代码编辑工具的配色强迫症

每次拿到一个新电脑,装上自己喜欢用的代码编辑工具(笔记本,note++, sublime,vs,qtcreate...). 如果不是自己喜欢的编辑器或者配色不对,我发现自己就不会写代码,或者读不懂代码,总感觉哪里不对劲。今天我旁边的同事,在百度vs配色方案。你是否也这样? 如果没事,你是新人...

2018-07-07 18:04:41 774

原创 linux 下获取当前工作路径的方法

获取工作路径这里介绍两种方法:1.使用getcwd()函数。头文件:#include 定义函数:char * getcwd(char * buf, size_t size);函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf 所指的内存空间,参数size 为buf 的空间大小实例:void getPath(){ char pPath[

2017-04-18 14:49:31 10219

原创 C++引用C的静态库

操作系统:Linux 项目中使用的语言是C++, 客户给的静态库是用c语言封装的,编译时一直报错:undefined reference to "xxxxxxxxxxxx".经过查找得出原因有两点:1. c++ 与 C 引用静态库头文件的时候,没有添加 extern "C" {  xxxxxxxx.h }原因:C++ 有多态,编译时函数名和参数会联合起来,C语言没有

2017-04-13 16:47:50 2533

原创 symbol lookup error错误

操作系统:linux 编译:g++项目中编写的中间接口,其中几个接口增加参数,生成动态库,提供他人使用。修改完成后我自己编写测试引用动态库的demo。生成的xxx.so copy到/usr/lib/ 下,运行测试demo:生成symbol lookup error错误,经过debug发现是引用接口的问题,使用ldd QL_1553B_Demo, 查看到此可执行文件QL_15

2017-04-13 16:10:42 15663

转载 Linux中变量$#,$@,$0,$1,$2,$*,$$,$?的含义

我们先写一个简单的脚本,执行以后再解释各个变量的意义# touch variable# vi variable脚本内容如下:#!/bin/shecho "number:$#"echo "scname:$0"echo "first :$1"echo "second:$2"echo "argume:$@"echo "show parm list:

2014-08-28 10:36:24 431

转载 查看so库的方法

1.nm -D libxxx.so 打印出符号信息。我一般这样用:nm -D libxxx.so |grep T2.ldd libxxx.so 查看依赖关系3.readelf -a libxxxx.so 用来读取elf信息我一般这样用:readelf libxxx.so |grep NEEDED 这样也可以读取依赖关系4.objdump -d libxxxx.so5.rmp

2014-08-12 14:08:09 5733

转载 ubuntu 10.04配置tftp服務器

第1步:安装tftp所需的软件。首先需要安装tftp-hpa,tftpd-hpa,前者是客户端,后者是服务程序,在终端下输入 sudo apt-get install tftp-hpa tftpd-hpa,安装tftp-hpa和tftpd-hpa。然后还需要安装xinetd,在终端下输入 sudo apt-get install xinetd,安装好xinetd。第2步: 配置相关

2014-07-28 09:30:01 469

原创 Ubuntu10.04 nfs服務器的配置

這次由於工作中需要,進行了NFS服務器和TFTP服務器的配置

2014-07-24 08:40:37 447

转载 编程术语英汉对照

abstract 抽象的 抽象的  abstraction 抽象体、抽象物、抽象性 抽象体、抽象物、抽象性  access 存取、取用 存取、访问  access level 存取级别 访问级别  access function 存取函式 访问函数  activate 活化 激活  active 作用中的  adapter 配接器 适配器  address 位址 地

2014-01-22 15:11:03 844

转载 QT中QImage类

QImage类提供了一个硬件无关的图像表示方法,该图像可以逐像素被访问和用于画图设备。Qt提供了QImage、QPixmap、QBitmap和QPicture四种图像操作类。QImage类主要用于I/O和直接逐像素访问、操作;QPixmap主要用于在屏幕中显示图像;QBitmap是一个基于方便考虑继承自QPixmap的提供1bit深度二值图像的类;QPicture是一个可以记录和响应QPain

2014-01-18 08:39:20 6306

空空如也

空空如也

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

TA关注的人

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