- 博客(43)
- 资源 (10)
- 收藏
- 关注
原创 C++用来做多个中文关键词匹配的解决方案
4. 基于BM算法的匹配:使用BM算法来进行多个中文关键词匹配,可以快速地在文本中查找匹配的关键词。3. 基于正则表达式的匹配:使用正则表达式引擎来匹配多个中文关键词,可以使用C++中的正则表达式库,如Boost.Regex。劣势:BM算法对于长模式串的匹配效率较低,对于长关键词的情况,可能会影响匹配效率。劣势:Trie树的空间复杂度较高,对于大量关键词的情况,可能会占用较多的内存。劣势:AC自动机的空间复杂度较高,对于大量关键词的情况,可能会占用较多的内存。
2023-04-14 11:42:30 1051
原创 VSTO简介及简单使用
开发自定义的Office插件的解决方案,总共有如下几种VBA --- Visual Basic的一种宏语言 VSTO --- VB的替代品,目前主流office插件的实现方式 Office add-ins --- 使用主流的web技术(HTML, CSS, and JavaScript)来操作office文档VBA是微软提出的第一种Office开发解决方案,现在落后了;后来微软发布了.n...
2020-03-03 15:51:44 8096
原创 收藏几个比较好的各种流格式及封装格式的链接,辅助于音视频开发
MP4文件封装格式解析:https://www.cnblogs.com/ranson7zop/p/7889272.htmlh264基础及rtp分包解包:https://blog.csdn.net/machh/article/details/52165292TS包解析:https://www.cnblogs.com/jiayayao/p/6832614.htmlFLV格...
2019-10-12 15:19:41 438
原创 使用ffmpeg读取本地文件,进行推流
使用ffmpeg读取本地文件,进行推流,跳到指定时间播放。注意MP4文件h264_mp4toannexb与aac_adtstoasc。要实现循环播放注意两点:1.播放到结尾,跳到开始位置重新播放;2.时间戳要重新打,不然会报错;直接上代码:#define __STDC_CONSTANT_MACROS#ifdef __cplusplusextern "C"{...
2019-10-10 20:44:16 5638
原创 使用ffmpeg解复用rtsp流,取到ES数据
近期因为项目上安卓平台上要对接摄像头流,但是使用ffmpeg软解码,消耗CPU性能较大;所以使用ffmpeg解复用rtsp流,取到ES数据后使用硬件解码。特意抽了一个demo出来,希望能帮到大家,特别简单,一开始想复杂了。注:假如是其他格式的流或者文件类似,相应的修改open_input_file()就好了,网上有很多,这就以rtsp流为例。解析MP4文件的话注意下h264_mp4t...
2019-10-10 19:13:41 1012 7
原创 c++ 使用curl发送https POST请求并获取返回数据(包含appKey与appSecret)
借鉴连接:https://yq.aliyun.com/articles/629830?spm=a2c4e.11153940.blogcont630369.18.3dca5d3c1QHa9l使用到libcurl库及openssl,用VS2015写了个demo,记录一下,demo下载链接在文章末尾。直接上代码:#include <iostream>#include &l...
2019-05-24 19:26:09 7621 1
原创 使用live555客户端源码遇到的问题及解决方法
使用live555客户端源码拉rtsp流遇到两个问题,正常测试拉取海康摄像头没问题;1.拉有些厂商的rtsp流会间隔一段时间断开连接;2.与大华摄像头建立连接时,发送DESCRIBE命令后很长时间服务器端才返回;问题一:问题描述:rtsp流间隔一段时间后总是中断,因为有断开重连机制,所以画面一直是卡住,然后正常播放一段时间,这样循环。原因描述:由于没有与服务器端建立心跳导致;有...
2019-05-15 19:23:46 2786
原创 ts流在flush播放器中无法正常播放问题及解决(只有声音没有画面)
问题描述:第一次遇到这个问题是复用后的TS流在VLC上播放正常,但在苹果手机的浏览器上无法正常播放,只有声音没有画面。注:苹果手机自带的浏览器播放器是flush的,所以在flush播放器上一般都会有这种问题,其他播放器不确定会不会导致此问题。为什么这么做?在网上搜索资料查到,苹果官网说法:查看第10条https://developer.apple.com/library/cont...
2019-05-04 21:56:24 3376
原创 RTSP与UDP URL解析
UDP URL解析//参数1:strURL UDP的URL//参数1:strIP 解析出的UDP的IP//参数1:nPort 解析出的UDP的端口void ParseUdpUrl(string strURL, string &strIP, int &nPort){ // 小写转大写 transform(strURL.begin(), strURL....
2019-05-04 21:20:52 998
原创 ffmpeg从内存中读取数据(或者输出到内存)及其注意事项
本文借鉴与雷神的博客:https://blog.csdn.net/leixiaohua1020/article/details/12980423/天妒英才啊!!话不多数,项目中需要用到ffmpeg从内存中读取数据转码,然后输出到内存中,在此记录几个注意事项,避免遇到坑;从内存中读取数据:int TEST::openInputFile(){ int ret = -1; uns...
2019-04-21 00:14:19 4028 9
原创 基于LibFaceDetection开源库的人脸检测demo
参考上一篇博客:LibFaceDetection开源库介绍与使用最近很多朋友问我老版本LibFaceDetection的使用及demo,本文特此整理一下,方便大家借鉴,于老师的LibFaceDetection库已经更新了,老版本估计下载不到了,之前只是偶尔接触了一下人脸检测,现在不做这个方向了,故新版本没有学习。库的下载链接在文章末尾;老版本的头文件.h#ifndef _FACE_D...
2019-04-16 19:00:10 2490 21
原创 ffmpeg中h264_mp4toannexb使用说明及注意事项
本文借鉴于:https://blog.csdn.net/amazing_yangle/article/details/49029687首先解释一下h264_mp4toannexb是做什么用的:h264有两种封装,一种是annexb模式,传统模式,有startcode,SPS和PPS是在ES中,vlc里打开编码器信息中显示h264;一种是mp4模式,一般mp4 ,mkv会有,没有star...
2019-04-16 15:17:47 14423
原创 va_g729a编码库使用
借鉴链接:https://www.cnblogs.com/findumars/p/5706009.htmlffmpeg可以解码g729a,但不能编码成g729a,所以要想使用g729a编码需要用到va_g729a库。头文件g729a.h:#define L_FRAME_COMPRESSED 10#define L_FRAME 80extern "C"...
2019-04-03 19:33:06 2651
原创 centos7.2 下 ffmpeg交叉编译(安卓版x86_64)
参考链接:王英豪大神王英豪大神系列博客网上查到的都是arm版本的,但是我们项目中使用的是x86_64的,编译整理完保存一下,给大家提供方便,本文编译的ffmpeg源码是3.2.12,文章末尾有编译好的库及源码(3.2.12与3.4.2),但3.2.12版本似乎使用有bug,不知道是否是我使用不当,使用3.2.12版本的动态库推流时会有卡顿,将库替换成3.4.2版本问题解决。运行环境:c...
2019-04-01 23:09:29 866
原创 ffmpeg指定网卡接收流(绑定网卡)
AVDictionary* opts = NULL;av_dict_set(&opts, "localaddr", "192.168.15.15", 0);// 如果有超时设置,继续使用上述函数,超时的key一般为timeoutint nRet = avformat_open_input(&ctx, url, NULL, &opts);...
2019-04-01 21:40:43 2858 6
转载 live555学习之rtsp客户端和服务器端
网上相关资料有很多,自己保存一下,直接上连接吧rtsp客户端:https://www.cnblogs.com/jqctop1/p/4396301.htmlrtsp服务器:https://www.cnblogs.com/jqctop1/p/4386533.html
2018-08-05 15:35:13 816
原创 libfacedetection特征点下标说明
(打了个码)为了做人脸矫正,有时需要人脸上人眼坐标,人眼下标,一个是36--41,另一个是42--47.
2018-07-19 13:38:30 1522
原创 解决DShow采集USB摄像头数据时画面倒置问题
本人用的两个摄像头测试的:1.奥速的摄像头,型号ashu f11p,数据输出格式为YUV2,画面显示无问题;2.本机安装虚拟摄像头:VCAM,数据输出格式为RGB24,画面显示颠倒;一开始以为是数据输出格式不一致导致的,看其处理过程,查找了一天也没找到问题所在,流程处理无问题。然后开始上网查找解决方法,在网上找到一条相关信息:确认BITMAPINFOHEADER中的biHeight字段,biHei...
2018-07-04 13:54:59 1827
原创 ffmpeg解码后的yuv420P数据保存为opencv中mat格式(灰度图),最后保存为.bmp文件
完整代码就不贴上来了,讲一下实现思路: ffmpeg解码出来的视频数据是yuv格式,假设为AV_PIX_FMT_YUV420P,后续的图像处理一般都是RGB格式的,而opencv中mat中需要存储成RGB格式,所以就需要从yuv到rgb或者bgr的转换。ffmpeg提供了相应的转换API函数:下面代码中m_width, m_height是原图像宽度与高度,AV_PIX_FMT...
2018-07-01 14:56:41 3248
原创 opencv读写CSV文件
首先我的CSV文件是这样的://************************************// Method: ReadCsv// FullName: CFaceRecognition::ReadCsv// Access: protected // Returns: void// Qualifier:// Parameter: con...
2018-07-01 13:58:18 2187
原创 MQTT协议学习之Mosquitto编译安装
系统环境:centos 7.2下载地址:https://github.com/eclipse/paho.mqtt.cpp#解压:tar zxfv mosquitto-1.4.5.tar.gz#进入目录:cd mosquitto-1.4.5# 编译安装:make &make install假如编译出错:1.编译找不到openssl/ssl.h——安装open...
2018-06-21 22:03:31 448
原创 qt中在QLabel上显示图像并画矩形框。
最主要的是重写paintEvent()函数,下面直接看代码mylabel.h# pragma execution_character_set("utf-8")#ifndef MYLABEL_H#define MYLABEL_H#include <list>#include <map>#include<QLabel>#include<QPoin...
2018-06-11 23:20:55 19467 16
原创 LibFaceDetection性能测试数据
相关API介绍请看LibFaceDetection开源库介绍与使用。当前测试数据使用ffmpeg解码,解码一帧检测一帧,API检测特征点。结论:LibFaceDetection不支持GPU加速。1920*1080分辨率文件,i5-6500:解码一帧并检测人脸平均耗时81.7ms;i7-7700解码一帧并检测人脸平均耗时65.7ms。注:从当前测试数据可以看出,如果每一帧都检测并不能实时检测高清流(...
2018-06-11 22:43:21 2224 12
原创 LibFaceDetection开源库介绍与使用
Libfacedetection是由作者ShiqiYu发布在Github上的遵循MIT开源协议的公共库。Libfacedetection是一个用于图像中人脸检测和人脸标识(Landmark)检测的二进制库,提供了windows下与arm版本 32位和64位的动态库文件。为了达到最好的性能,建议使用64位的DLL动态库。下载地址:https://codeload.github.com/ShiqiYu...
2018-06-10 23:57:26 13029 46
原创 开发以及辅助工具(持续更新中)
每次找一些辅助工具都很费劲,而且一般都不是破解版,用一段时间就不能使用了,很郁闷,为此搞一些自己用的工具传上来方便大家。YUV查看工具:百度云盘:csdn下载:TS-Broad:推送组播流工具百度云盘:csdn下载:GPU-Z:查看工具百度云盘:csdn下载:moncenter:xml协议发送及接受工具百度云盘:csdn下载:baretail:windows下日志查看工具,可以实时打印日志,自动移...
2018-06-08 15:33:33 1107
转载 调用av_read_frame返回的错误码
首先上代码:[cpp] view plain copy#include <stdio.h> #define MKTAG(a,b,c,d) ((a) | ((b) << 8) | ((c) << 16) | ((unsigned)(d) << 24)) #define FFERRTAG(a, b, c, d) (-(int)MKTAG(...
2018-06-08 14:31:02 7348
原创 QT中QTextEdit中append追加显示数据,显示固定行数数据。
版本:qt5.7.1我的本意是写日志,但是一直写数据,不清空QTextEdit的话,会导致异常。一开始我是这样处理的:if (ui.logTextEdit->document()->blockCount() > 100){ ui.logTextEdit->clear();}ui.logTextEdit->append("123");但是这样每次清空的时候都会造...
2018-06-07 17:22:48 36669 4
原创 分层模型中的协议格式
数据包封装应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation),如下图所示:不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。以太网帧格式以太...
2018-06-06 23:48:18 552
原创 浅析TCP/IP四层模型
典型协议TCP传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。UDP用户数据报协议(User Datagram Protocol)是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。HTTP超文本传输协议(Hyper Text Transfer Protocol)是互联网上应用最为广泛的一种...
2018-06-06 21:34:43 295
原创 浅析OSI七层模型
分层模型典型协议传输层: 常见协议有TCP/UDP协议。应用层 :常见的协议有HTTP协议,FTP协议。网络层: 常见协议有IP协议、ICMP协议、IGMP协议。网络接口层: 常见协议有ARP协议、RARP协议。TCP传输控制协议(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。UDP用户数据报协议(User Datagram Pr...
2018-06-06 21:21:49 290
原创 Linux命令(仅记录本人不熟悉的命令),持续更新
本篇博客仅记录本人不熟悉的Linux命令,不对的地方还请指正。查看系统版本1.lsb_release -a,即可列出所有版本信息。(可能需要安装:yuminstallredhat-lsb-core-4.0-7.el6.centos.x86_64)2.uname -a查看linux中某个端口(port)是否被占用1.lsof -i:端口号2.netstat -anp|gr...
2018-06-06 21:03:06 193
原创 ffmpeg中av_seek_frame()使用及其flag值意义
例子:int nRet = av_seek_frame(m_ifmt_ctx, -1, (m_start_play_time + nSecs) * AV_TIME_BASE, AVSEEK_FLAG_BACKWARD);原型:使用时需要使用四个参数int av_seek_frame(AVFormatContext *s, int stream_index, int64_t times...
2018-03-13 19:12:09 9088 2
原创 解决ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
在终端输入mysql -uroot -p123456登录数据库总是报这样的错,很烦。在网上查了一下,没有得到解决,可能每个人遇到的问题原因不一样,此时我就想看一下/tmp/mysql.sock这个文件,但是在/tmp/目录下没有找到此文件,我想可能就是缺少这种文件导致的,于是搜索mysql.sock此文件,发现在/var/lib/mysql/mysql.sock,于是建立一个软连接...
2018-02-01 10:45:12 2647
原创 MySQL中实现DROP USER if EXISTS `test`,即创建新用户时检测用户是否存在
最近在工作中碰到这样一个问题,使用数据库脚本更新数据库,检测用户是否存在,不存在的话创建,分配库的权限,存在则跳过;第一个想到的就是类似删除表的判断DROP TABLE if EXISTS `test_table`;用DROP USER if EXISTS `test`;会报语法错误,ERROR 1064 (42000): You have an error in your SQL syn
2017-11-22 19:32:12 10041
原创 c++ 按分割符切割string字符串
/*************************************************** 函数名称: SplitString* 功能描述: 按切割符截取字符串* 参 数: const string & srcStr源字符串* 参 数: vector<string> & vec切割后的字符串存放容器* 参 数: const string ...
2017-10-27 16:03:02 7217
原创 Linux下将启动脚本写入开机启动项文件/ect/rc.d/rc.local文件,重启无法启动问题
最近遇到一个问题,在centos7.2下安装完程序,手动启动程序无问题,但是将启动脚本写入开机启动项文件/ect/rc.d/rc.local文件,重启无法启动问题有两个原因:原因1:我的启动脚本路径中含有和程序名相同的字符串原因2:链接不到动态库,没有将依赖库拷贝到系统库目录下我的启动脚本是将守护脚本放到后台执行,守护脚本:test_PID=`ps -ef
2017-10-20 10:59:57 3978 1
原创 利用ffmpeg实现添加图片水印和文字水印,添加多个水印。代码和命令实现及中文水印乱码
ffmpeg中文水印乱码两种原因1.字符编码格式原因,中文必须是utf8编码格式的(我遇到的问题,在vs2013上写的中文,已做编码格式转码,放到centos7.2上编译运行也会出现中文乱码的问题,在Linux上把中文水印重新输入一遍就OK了)2.字体文件fontfile原因,最好去C:\Windows\Fonts目录下去找,比如说宋体,黑体这些是不会乱码的1.ffmpeg命令添...
2017-10-17 10:38:45 39019 51
原创 Linux下编译ffmpeg及其依赖库
之前想写一篇博客来记录一下本人在编译ffmpeg库是遇到的坑。首先讲一下我的需求,利用ffmpeg库实现转码,增加水印,截图功能,输出文件固定为视频为H264编码,音频为AAC编码1.首先ffmpeg没有x264库,需要下载x264库,自己编译,地址:这个需要提前下载编译yasm库,地址:./configuremake && make install然后再编译安装x264库
2017-09-27 22:11:34 3653
原创 centos7.2下将程序启动写入到开机启动项
我的程序启动是一个脚本启动,start.sh,所以将其写入到开机启动项文件中,如果你只是一个程序的话,只需将start.sh改为你的程序名即可
2017-09-27 22:07:19 962
c++ 发送https POST请求并获取返回数据(包含appKey与appSecret)
2019-05-24
nginx源码及其依赖库openssl-1.0.2c、pcre-8.36、zlib-1.2.8
2019-05-21
jdk-8u211-windows-x64.exe
2019-04-23
各种编码,封装格式的视音频文件
2017-09-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人