- 博客(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
449

原创 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
503
原创 window查看dll依赖库命令
打开vs自带的开发者命令提示符窗口。在窗口中使用命令 dumpbin -imports XXXXX/XXX/XXXX.dll
2020-12-28 10:33:15
2377
原创 NTP时间戳和UTC时间戳互转及其原理
1.NTP时间戳NTP时间戳是用一个64bit的无符号的定点数表示。它表示自从1900年1月1日00:00 到现在过了多少秒。64bit分为两部分,高32bit表示整数部分,单位是秒;低32bit表示小数部分,单位是232皮秒(picosecond)。...
2020-12-19 15:55:11
8996
原创 编译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
637
原创 “(_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
1422
原创 devenv 设置 未能完成操作。参数错误
在使用脚本编译VS2015工程文件,进行devenv 设置的时候报错 未能完成操作。参数错误 无法进行正常的编译devenv 解决方案文件.sln /build [ 解决方案配置 ] [ /project 项目名称或文件 [ /projectconfig 名称 ] ]/Build 使用指定的解决方案配置生成解决方案或 项目。例如“Debug”。如果可能存在多个平台, 则配置名称必须用引号括起来...
2020-05-14 15:53:43
2195
原创 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
2335
原创 VS error 记录
C4996:出现这样的警告,是因为VC2005之后的版本中认为CRT中的一组函数如果使用不当,可能会产生诸如记忆体泄露,缓冲区溢位,非法访问等安全问题。这些函数如:strcpy,strcat等。解决方法:1. #pragmawarning(disable:4996)或#define _CRT_SECURE_NO_WARNINGS 忽略掉这个错误2.修改VS配置,告诉它我就要旧...
2020-01-09 10:22:50
327
翻译 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
13203
原创 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
769
原创 socket 的句柄属性设置
Socket一些属性设置记录标记window/linux设置方法,如果没标记则是不同系统下设置都相同。udp/tcp 共有的属性FIONBIO 设置socket是否为阻塞非阻塞模式,默认创建的socket是阻塞模式。设置非阻塞模式:dwOn = true;window:ioctlsocket(m_hSocket, FIONBIO, &dwOn);linux...
2019-12-05 16:23:55
1759
原创 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
335
原创 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
2894
转载 创建动态库时,使用的链接选项Bsymbolic
问题描述回归正题,前段时间项目开发中,实现了一个动态库,封装了一些方法。然后基于这个动态库,实现了一个应用程序。应用程序中含有全局变量A,动态库中也含有全局变量A,当我调用动态库中函数后,发现应用程序的A发生了变化!!!O,My God!对于我这种还没在Linux下做过开发的人来说,一头雾水。。。。。。 于是我尝试着,将A中的变量名称改为B,这样问题也就没有了~~~原因应用程序进行链接的...
2019-09-05 15:16:45
681
原创 内存错误检测-AddressSanitizer
目录简介:使用范围:使用方法:结合gdb:运行结果:简介:AddressSanitizer是C/C++内存错误检测的工具,它是LLVM3.1版本开始支持,GCC从4.8版本开始支持,它可以检测以下错误:功能:1.释放后使用(悬空指针解除引用)2.堆缓冲区溢出3.堆栈缓冲区溢出4.全局缓冲区溢出5.使用返回值访问局部变量6.使用释放后的局部变量内存7...
2019-02-22 16:39:23
7956
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
1386
原创 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
24501
原创 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
13282
原创 QT 实现线程moveToThread(QThread *targetThread)
用Qt 也一年多了,工作过程中线程是少不了的,以前项目中都是继承QThread 然后重载run()函数。而且一直喜欢这种方法。后来发现QT 还有个方法就是MoveThread 不过一直不喜欢用。也有看网上其他人的使用过程,总是喜欢把继承的Qobject类的槽函数跟Qthread的started信号相关联(这句话纯吐槽)。 既然有多种方法实现线程,还是学习一下怎么使用比较好。这里记录一下用法,以便...
2018-09-19 11:53:22
1564
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
3329
2
原创 你有代码编辑工具的配色强迫症
每次拿到一个新电脑,装上自己喜欢用的代码编辑工具(笔记本,note++, sublime,vs,qtcreate...). 如果不是自己喜欢的编辑器或者配色不对,我发现自己就不会写代码,或者读不懂代码,总感觉哪里不对劲。今天我旁边的同事,在百度vs配色方案。你是否也这样? 如果没事,你是新人...
2018-07-07 18:04:41
842
原创 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
10330
原创 C++引用C的静态库
操作系统:Linux 项目中使用的语言是C++, 客户给的静态库是用c语言封装的,编译时一直报错:undefined reference to "xxxxxxxxxxxx".经过查找得出原因有两点:1. c++ 与 C 引用静态库头文件的时候,没有添加 extern "C" { xxxxxxxx.h }原因:C++ 有多态,编译时函数名和参数会联合起来,C语言没有
2017-04-13 16:47:50
2614
原创 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
16062
转载 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
469
转载 查看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
6388
转载 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
515
转载 编程术语英汉对照
abstract 抽象的 抽象的 abstraction 抽象体、抽象物、抽象性 抽象体、抽象物、抽象性 access 存取、取用 存取、访问 access level 存取级别 访问级别 access function 存取函式 访问函数 activate 活化 激活 active 作用中的 adapter 配接器 适配器 address 位址 地
2014-01-22 15:11:03
1005
转载 QT中QImage类
QImage类提供了一个硬件无关的图像表示方法,该图像可以逐像素被访问和用于画图设备。Qt提供了QImage、QPixmap、QBitmap和QPicture四种图像操作类。QImage类主要用于I/O和直接逐像素访问、操作;QPixmap主要用于在屏幕中显示图像;QBitmap是一个基于方便考虑继承自QPixmap的提供1bit深度二值图像的类;QPicture是一个可以记录和响应QPain
2014-01-18 08:39:20
6428
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人