
c++
文章平均质量分 52
ybn187
这个作者很懒,什么都没留下…
展开
-
rtmp h264,h265包结构和推流组包
rtmp视频包结构类型长度值FrameType4bit1表示关键帧,2表示非关键帧,3表示一次性帧,4为服务器保留,5表示视频信息或命令帧CodecID4bit1表示JPG,2表示Sorenson H263,3表示屏幕录像,4表示VP6 ON2,,5表示带alphat通道的VP6 ON2,6表示版本2的屏幕录像,7表示avc,即h264VideoData视频数据,根据CodecID的不同,此处字段内容不同,例如CodecID为2时,此处为H263包结构,当Co原创 2020-05-19 19:02:00 · 2501 阅读 · 5 评论 -
win下libgo boost编译
win下,libgo 版本2.6, cmake, vs2015编译失败参考:https://github.com/yyzybb537/libgo/issues/204libgo默认使用系统CreateFiberEx创建task,但如果是使用默认栈大小,最多只能创建2028个fiber,实际使用时libgo连1500个协程都无法创建。1200个可以通过。如果使用boost,则...原创 2020-05-08 13:52:48 · 551 阅读 · 1 评论 -
ffmpeg 保存数据流到文件
av_register_all(); std::string filename = "d6.mp4";AVFormatContext *outContext = NULL;avformat_alloc_output_context2(&outContext, NULL, "mp4", filename.c_str());AVStream *stream = avformat_...原创 2020-04-08 14:37:31 · 1115 阅读 · 0 评论 -
mysql性能测试
mysql性能测试版本5.6.32默认参数//0:事务提交时,不做日志写入操作,而是每秒钟将log buffer中的日志写入文件并且flush磁盘一次。//1:每秒钟或者事务提交时,都会引起日志写入和flush磁盘操作,这样设计也是最安全的。//2:每次事务提交时,进行日志写入,但此时没有flush磁盘操作,而是在每秒钟时进行flush磁盘操作。//值为0时性能最好,但是会丢失数据...原创 2020-04-08 13:56:47 · 809 阅读 · 0 评论 -
exosip udp定时发送心跳jaK
exosip2,抓包发现会定时发送心跳包,4个字节,转成assic就是jak原以为是业务逻辑的原因,查了发现不是,最后exosip库代码里面找到了static intudp_tl_keepalive (struct eXosip_t *excontext){ struct eXtludp *reserved = (struct eXtludp *) excontext->e...原创 2019-12-13 13:56:10 · 1698 阅读 · 1 评论 -
rtmp 发送h264包,主要是sps,pps,i帧和非i帧
28181流媒体,ps流解析,nalu分析,出来的数据封装成rtmp包发送rtmp,此处仅关心rtmp发送问题这个连接有完整的调用librtmp发送h264的代码,但是里面发送h264包时候有问题,没有区分包类型https://blog.youkuaiyun.com/godspeed513/article/details/8972947sps,pps包的构建可以参考这个连接https://blo...原创 2019-11-15 09:27:39 · 2624 阅读 · 0 评论 -
c++ aac转pcm
最开始使用的是ffmpeg主要代码如下://注册所有的工具 av_register_all(); AVFormatContext *fmt_ctx = NULL; AVCodecContext *cod_ctx = NULL; AVCodec *cod = NULL; //分配一个avformat fmt_ctx = avformat_alloc_c...原创 2019-11-07 20:22:03 · 1400 阅读 · 2 评论 -
c++ GPS坐标转换百度坐标
#include <math.h>static double pi = 3.14159265358979324;static double a = 6378245.0;static double ee = 0.00669342162296594323;static double x_pi = 3.14159265358979324 * 3000.0 / 180.0;do...原创 2019-11-06 10:42:53 · 749 阅读 · 0 评论 -
poco 库streamsocket 发送数据失败错误码获取
使用sendBytes发送数据,函数实现如下:int StreamSocket::sendBytes(const void* buffer, int length, int flags){ return impl()->sendBytes(buffer, length, flags);}int StreamSocket::sendBytes(FIFOBuffer&am...原创 2019-03-13 16:22:29 · 1862 阅读 · 0 评论 -
nginx 支持h265 的 rtmp和hls,http-flv
https://github.com/illuspas/nginx-rtmp-win32高人编译的win下的nginx,已经支持h265的rtmp,hls未使用rtmp 和hls中的h265 的ID为 12nginx rtmp模块源码,支持h265:https://github.com/adwpc/nginx-rtmp-module不支持h265的源码:https://git...原创 2019-03-08 15:14:02 · 9211 阅读 · 4 评论 -
log4cplus 1.2.0 编译,使用记录
需求:根据日期建立文件夹,根据文件大小分包,保存一定时间内的日志实际上就是RollingFileAppender和DailyRollingFileAppender2个appender的结合先说结论:官方appender实现不了网上搜索说TimeBasedRollingFileAppender能实现这种需求,但是本机用的版本比较老,没有这个appender由于使用的是vs2008, ...原创 2019-01-25 09:54:56 · 831 阅读 · 0 评论 -
st-load 使用记录
项目上用到了rtmp,在原来的基础上改吧改吧调试完了之后,能跑,想测试一下性能使用固定端口的socket接收推流,网页端播放找了找,说st-load的比较多, 最开始想自己编个win版试了试,不行,因为有个依赖库,state threads, 这个库不支持win改动起来比较麻烦,就算了linux下,编译相当容易,congifure,make之后就好了,缺啥装啥就好了运行, 一般使...原创 2018-11-23 17:09:23 · 4712 阅读 · 2 评论 -
win下延时方法记录
记录一下最开始采用的是boost::this_thread::sleep(boost::posix_time::milliseconds(milli_seconds))延迟80ms,结构实际延迟96-100ms之间,msdn也说明sleep的精度为16ms,延迟在20-60ms下面3种方法:boost::this_thread::interruptible_wait((m...原创 2018-11-09 14:56:50 · 1361 阅读 · 0 评论 -
g726转pcm
g726转pcm1077协议,别人的设备,没参数,获取音频包,解析得知是g726编码刚开始找的是adpcm解码的,下面这个链接的https://blog.youkuaiyun.com/forfuture3513/article/details/51764814测试发现都是电流兹兹声,不对后来找到https://blog.youkuaiyun.com/xiejiashu/article/details/46505...原创 2018-10-10 13:46:04 · 3213 阅读 · 14 评论 -
soui中展示图片
BSCMAKE: error BK1506 : 无法打开文件“.\Debug\stdafx.sbr”: No such file or directory工程属性 -> c/c++ -> 浏览信息, 启用浏览信息 官方教程https://www.cnblogs.com/setoutsoft/p/3925996.html但是 里面的东西有误版本2.6.1.1,在...原创 2018-08-13 15:07:13 · 1323 阅读 · 0 评论 -
c++ 调用caffe caffe.pb.h错误修正
记录一下从这个链接编译的caffehttps://blog.youkuaiyun.com/xingchenbingbuyu/article/details/72765612使用#include "caffe\caffe.hpp"caffe.pb.h 报错 caffe.pb.h(2958): error C2059: 语法错误:“常量”打开错误处,查看代码:static const ...原创 2018-07-31 10:49:57 · 2312 阅读 · 2 评论 -
vs2015编译dlib,测试
dlib vs2015编译 测试使用cmake生成文档使用vs2015编译,成功,静态库使用demo测试#include "stdafx.h"#include "dlib\image_processing\frontal_face_detector.h"#include "dlib\image_io.h"using namespace dlib;void TestFac...原创 2018-07-31 09:53:49 · 1222 阅读 · 0 评论 -
c++ 调用protobuf和grpc 遇到的问题
c++ 调用protobuf和grpc刚开始,由于各种原因,使用的是protobuf3.0 和 grpc1.0grpc编译正常,调用的时候报异常,找不大Wait()等几个方法google一下,找到了:https://github.com/grpc/grpc/issues/8606主要原因就是文件名冲突了,导致编译的时候没有把grpc++内的部分功能加入所以找不大函数重新下载了...原创 2018-07-25 10:46:55 · 2795 阅读 · 0 评论 -
c++ 调用 python脚本, runtime error r6034
c++ 调用 python脚本, runtime error r6034vs2015,c++调用python 脚本,PyImport_ImportModule的时候报了个run time error ,错误码R6034最开始以为是环境的问题,仔细测试了发现,其他的python脚本没问题,就这个有问题。错误提示说加载c库的时候出现的问题,那么一步步排查python脚本中import导入的库...原创 2018-07-20 10:22:45 · 1549 阅读 · 1 评论 -
java下cmyk图片读取和转换rgb
记录一下整个过程 第一次采用的办法 public static String readImage(String filename) throws IOException { File file = new File(filename); ImageInputStream input = ImageIO.createImageInp...原创 2016-08-11 18:15:34 · 12136 阅读 · 4 评论 -
wp8开发中c++与c#的交互
c++与c#的交互项目基本上是c++写的,现在要移植到wp8上,坑啊,c#不会啊 查了下资料,发现目前来说,c++与c#交互主要有2中方法: http://stackoverflow.com/questions/14434874/calling-c-sharp-method-from-c-code-in-wp8http://www.cnblogs.com/zhxili...原创 2014-11-05 18:47:21 · 1483 阅读 · 0 评论 -
sqlite 后备内存分配
在之前,我们看了 数据库打开的流程,其中sqlite3_open16函数中有一句话,是生成sqlite3_value的:pVal = sqlite3ValueNew(0);打开sqlite3ValueNew函数:sqlite3_value *sqlite3ValueNew(sqlite3 *db){ Mem *p = sqlite3DbMallocZero(db, sizeof...原创 2018-08-28 08:59:02 · 1142 阅读 · 0 评论 -
sqlite btree打开流程
sqlite btree打开之前在openDatabase函数中,看了大致流程,里面有个很重要的函数sqlite3BtreeOpen看一下这个函数的流程吧//打开数据库文件,实际上,btree是将数据库文件加载为一个有序的key/value形式的tree//zFilename,数据库文件名,如果是NULL,会创建一个临时的数据库,这个数据库//只存在内存当中,或者在磁盘上的内存缓...原创 2018-08-29 14:50:24 · 834 阅读 · 0 评论 -
sqlite3 版本号
sqlite3 版本号根据官方文档,sqlite3的版本号是用SQLITE_VERSION宏来定义的在整合代码中,可以很容易的找到,在sqlite3.h中#define SQLITE_VERSION "3.25.0"#define SQLITE_VERSION_NUMBER 3025000#define SQLITE_SOURCE_ID "2018-07-...原创 2018-08-30 08:53:11 · 5239 阅读 · 0 评论 -
sqlite 系统内存分配
sqlite 系统内存分配sqlite内存分配有几种方式,后备内存分配之前已经了解过了现在看下系统内存分配,以下面的函数为开头:void *sqlite3MallocZero(u64 n){ void *p = sqlite3Malloc(n); if( p ){ memset(p, 0, (size_t)n); } return p;}函数比较简单,就是...原创 2018-08-30 08:54:28 · 1447 阅读 · 0 评论 -
sqlite 系统结构,文件头格式,动态内存
之前的几个章节里面,也提到了系统结构,文件头,动态内存分配现在主要是把相应的部分内容补充上,主要是资源来源,方便查找 关于系统结构,在官方文档里的Technical and Design Documentation目录下的Virtual FileSystem中有介绍,主要是一个层级图到目前为止,已经接触过了最下面的3层,相信对于sqlite应该有个初步的认识了其余的...原创 2018-08-30 09:06:48 · 719 阅读 · 0 评论 -
SOUI图片显示,button,treeview控件
图片显示和treeview控件<!-- [相对于前一个窗口,在x位置时是相对于前一个同级窗口的right, 在y时是相对于前一个窗口的bottom 2个-5表示相对于父窗口向内缩5个像素--> <window pos="5,[2,-5,-5"> <!--文字按钮,tip表示鼠标移上去的提示内容,focusable是否获取焦点,获取焦点...原创 2018-08-14 15:51:10 · 1290 阅读 · 0 评论