- 博客(165)
- 资源 (32)
- 收藏
- 关注

原创 视频监控安防平台-国标28181 2016-GB28181 2016版检测经历 (平台上联和下联检测)
最近和朋友一起做GB28181检测,特此纪念下:国标28181 2016-GB28181 2016版本的检测,检测项目大体分为:上联和下联 人员:控件开发人员1个、后台服务器开发人员1个检测时间:2天 (第一天前半天基本在调试前端设备)国标28181-2016版本相对于GB28181-2011版本大体修改内容如下:(目前只列出检测主要的修改功能)
2017-11-08 17:43:50
1928
5

原创 ffmpeg学习笔记目录
1、命令使用最开始看一下ffmpeg命令的中文解释,然后ffmpeg的基本用法,日常命令使用中最多的ffmpeg调用x264编码、mpeg4中的deblocking的用法,x264中输出值含义,x264编码之码率控制,x264参数介绍之一,x264参数介绍之二。2、编译ffmpegwin7用mingw+msys编译ffmpeg编译中遇到的文题解决各个组件下载地址,及编译方法,问
2015-06-19 10:05:19
4378
原创 osg实现法线贴图
1、tbn计算原理第十三课:法线贴图2、顶点shader// vertex shaderuniform vec3 lightpos; //传入光源的坐标uniform vec3 eyepos;varying vec3 lightdir;varying vec3 halfvec;varying vec3 norm;varying vec3 eyedir; attribute vec3 rm_Tangent; void main(void){ vec4 pos = g
2022-01-18 14:37:12
1502
5
原创 osg相机渲染到多个纹理
#include <osgViewer/Viewer>#include <osgDB/ReadFile>#include <osg/Texture2D>#include <osgGA/TrackballManipulator>#pragma comment(lib, "osgd.lib")#pragma comment(lib, "osgDBd.lib")#pragma comment(lib, "osgGAd.lib")#pragma...
2021-04-08 11:59:01
1004
原创 vpb生成地形
VPB生成三维地形1、下载dem来源有很多,我就写我用的地址:http://www.gscloud.cn然后选择dem下载:然后输入经纬度,找到想要下载的dem解压到目录存好2、下载卫片我是用水经注下的,目前手里没有狗,就下个低精度的示范下选好要下载的范围,可以输入:下载好后,选择导出,这里要注意导出的坐标系:手里可悲的是没有vip,所以只能导出墨卡托,不过没关系,可以用globalmapper转,转换方法如下:拖进gm,然后工具->设置-&
2020-09-16 15:47:42
1156
1
原创 osg之源码跟踪-----Viewer::eventTraversal
1、概述此函数是事件遍历函数,主要做以下几件事:a、把设备+窗口的事件收集起来b、从SceneData开始遍历,给每个节点事件回调。getSceneData()->accept(*_eventVisitor);c、以每个从属相机为根遍历事件回调。d、调用主相机以及从属相机事件回调(不递归)e、遍历调用Viewer加的事件回调f、调用相机操作器回调g、设置相应状...
2020-04-30 10:46:42
431
原创 osg之源码跟踪-----ViewerBase::frame
1、概述此函数是渲染一帧的主函数,主要做的有以下几点:a、判断是否为第一帧,如果是则初始化。b、advance函数,主要做一些时间计算,设置诸如rate之类的状态值,其中Viewer::advance最后还会做对象注销工作,而CompositeViewer::advance不会做这个工作。c、eventTraversal时间遍历d、更新遍历e、渲染遍历2、示意流程图如下...
2020-04-28 15:58:21
629
原创 osg之源码跟踪-----Viewer::realize
1、概述 搞osg也有几年了,从来没系统的跟过代码,最近打算把代码好好跟一下。 今天跟踪的是Viewer::realize函数,此函数只初始化一次,过后不再初始化,主要干啥呢。 a、初始化窗口 b、初始化纹理最大尺寸和缓冲最大大小 c、设置开始时间 d、开启线程。 下面是流程图(不规范,看得懂意思就好...
2020-04-27 17:24:44
736
原创 osg+ffmpeg播放视频
1、概述原理很简单,ffmpeg负责解码,然后把解码的图像当做纹理贴到osg创建的场景中去,看代码。2、代码#include <osg/Billboard>#include <osg/Texture2D>#include <osgDB/ReadFile>#include <osgViewer/Viewer>#include &l...
2020-04-03 17:06:08
1327
原创 Android Studio 搭建 + 第一个helloworld过程中遇到的问题记录
第一:搭建完成后,第一个程序死活编译不过报错:Could not find any version that matches com.android.support:appcompat-v7:29+. Could not find any version that matches com.android.support:appcompat-v7:29+. ...
2019-07-05 13:54:45
429
原创 ffmpeg4.x版本录音
1、最近一网友找到我,说我博客上的录音程序用不起了,研究一番发现是他用我代码然后链接ffmpeg库。发现版本改动还挺大,故此从新上传一份依赖最新版本的ffmpeg的录音程序,以便大家参考。2、直接上代码:/**最简单的录音*缪国凯 Mickel*821486004@qq.com*本程序用目前最新ffmpeg录音*2018-11-19*/#include <win...
2018-11-19 16:02:09
1776
4
原创 AVFrame存储YUV420P对齐分析
1、概述被这个问题困扰很久,由于懒癌晚期,一直都是云里雾里,最近终于把微信聊天记录里的视频分析了一下,记录于此已做备忘。2、分析过程用ffmpeg写了个解码程序,遍历微信聊天视频目录找出所有视频文件,一个600多个,挨个解码,并把其长宽,AVFrame.linesize[0],AVFrame.linesize[1],AVFrame.linesize[2]打印出来,做对比,终于发现一些规律。下面是打...
2018-06-27 16:37:16
5530
1
原创 ffmpeg用filter添加水印
1、利用filter添加水印,流程不过多介绍2、代码/** * 最简单的基于FFmpeg的AVFilter例子 * * 缪国凯(MK) * 821486004@qq.com * * http://blog.youkuaiyun.com/dancing_night * * 本程序使用FFmpeg的AVfilter实现了水印添加功能。 * * */#include "stdafx...
2018-06-26 17:34:47
1975
原创 处理AVFrame使存储的YUV旋转(YUV420P,旋转90的倍数)
1、原理介绍以YUV420P为例,AVFrame结构体存储YUV为data[0]存储Y,data[1]存储U,data[2]存储V,按一行一行的顺序存储,知道如何存储后,要旋转90的倍数就简单了。2、代码旋转90:for (int i = 0; i < m_srcW; i++) { for (int j = 0; j < m_srcH; j++) { m_Fra...
2018-06-26 16:00:49
2181
7
原创 ffmpeg不用filter添加水印
1、流程介绍openInput->openPic->InitOutput->readFrame->decode->operateAvframe->encode->writeFile->end2、核心代码核心代码为处理AVFrame如下:for(int j = 0; j < m_markH; j++) { if ((m_y + j) &...
2018-06-26 15:48:06
679
原创 ffmpeg用drawtext filter 给视频加字幕,代码实现
简介:利用drawtext filter给视频加字幕,忽略音频,只处理一个视频。流程:openinput->openout->readpacket->decode->push into filter->pull out ->encode->writefile重点看下CPenWordIntoPic里面如何初始化filter的,工程在底部的链接里。贴一下初始化...
2018-06-01 13:46:51
6464
3
原创 QGC杂记
关于QGC一些杂乱的笔记,记录于此备忘。MainWindow在QGCApplication::_initForNormalAppBoot中构造QGCQmlWidgetHolder 主wiget在MainWindow中初始化QGCQmlWidgetHolder包含QGCQuickWidgetMainWindow构造函数加载MainWindowHybrid.qmlMainWindowHybrid.qm...
2018-04-08 11:00:16
976
原创 关于用ffmpeg转手机视频发现视频长宽倒了的问题
1、概述最近用代码转手机视频,发现一个很奇怪的现象,明明源视频物体是竖着的,转了就不对,找了半天发现是以前一直没在乎的视频流rotate值。特此做个笔记。2、解决方案我们可以在输入的流里通过av_dict_get读出rotate值,并把这个值写到输出流里。代码如下: if (inPutStream) { AVDictionaryEntry *tag = NULL;
2017-11-03 20:42:04
1916
2
转载 Win7(Windows 7)下用VS2013(Visual Studio 2013)编译live555
转自:http://blog.youkuaiyun.com/caoshangpa/article/details/53200527一.live555简介live555是一个为流媒体提供解决方案的跨平台C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。live555能在Linux,Mac OS X,Windows和QNX等多个平台编译和运行。目前,它被用于
2017-06-08 11:00:56
930
转载 RTP 时间戳
最近被RTP的负载类型和时间戳搞郁闷了,一个问题调试了近一周,终于圆满解决,回头看看,发现其实主要原因还是自己没有真正地搞清楚RTP协议中负载类型和时间戳的含义。虽然做RTP传输,有着Jrtplib和Ortp这两个强大的库支持,一个是c++接口,一个是c语言接口,各有各的特点,各有各的应用环境,但是仅仅有库就能解决一切问题吗?可能仿照着一些例子程序,你能够完成主要的功能,但一旦问题发生了,不清楚原
2017-05-15 17:01:18
888
转载 H264的RTP负载打包的数据包格式,分组,分片
H264的RTP负载打包的数据包格式,分组,分片 转自:http://blog.youkuaiyun.com/wudebao5220150/article/details/138130011. RTP数据包格式RTP报文头格式(见RFC3550 Page12): 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 12 3 4 5 6
2017-04-06 10:54:52
1135
转载 RTP协议全解析(H264码流和PS流)
目录(?)[+]写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。原创不易,转载请附上链接,谢谢http://blog.youkuaiyun.com/chen495810242/article/details/
2017-04-06 10:23:07
1006
原创 用ffmpeg提取mp4的h264码流写文件花屏
1、用ffmpeg提取mp4的h264码流写文件的方法网上有很多,不知道的请参考雷神博客:http://blog.youkuaiyun.com/leixiaohua1020/article/details/118008772、但是这么写出来的文件是有问题的,首先的确能播放,但是会有很大几率出现花屏a、首先说说解决方案其实很简单,也是利用av_bitstream_filter_filter方法,如下
2017-04-01 17:30:23
7137
3
原创 关于资源编译时报错RC : fatal error RC1107: invalid usage; use RC /? for Help
1、概要最近编译QGroundControl时遇到这问题,到处找解决方案。2、网上的答案网上关于这问题不少,include目录下,一个是无效路径,另一个是有绝对路径斜杠和反斜杠之内的,关于我的工程,没有这些,于是就懵逼了。3、解决过程首先这个错是rc.exe报错,然后查看我工程的资源编译Command Line,如下图:这些命令啥意思,完全懵逼,查看rc的帮助,如下
2016-12-16 12:48:08
4844
原创 编译osgAudio遇到的'std::basic_ifstream<char,std::char_traits<char>>' : base class undefined
此问题是由于包含目录里的osgDB有自定义的ifstream和ofstream,和std标准库的冲突导致,造成此错误的原因是cmake配置include目录时,把各个模块(如osg、osgViewer、osgDB...)的目录设置为了分目录。解决方法很简单,cmake配置时,把每个模块目录路径都设置为osg的root目录则搞定。搞了我好几小时,真是汗颜啊~~~
2016-12-13 22:27:00
7234
转载 GLSL语言基础
变量GLSL的变量命名方式与C语言类似。变量的名称可以使用字母,数字以及下划线,但变量名不能以数字开头,还有变量名不能以gl_作为前缀,这个是GLSL保留的前缀,用于GLSL的内部变量。当然还有一些GLSL保留的名称是不能够作为变量的名称的。基本类型除了布尔型,整型,浮点型基本类型外,GLSL还引入了一些在着色器中经常用到的类型作为基本类型。这些基本类型都可以作为结构体内部的类型。
2016-11-29 14:56:43
734
原创 osg线碰撞检测
简介利用osgUtil::LineSegmentIntersector做的线碰撞检测,原理是把小球当前位置和新位置练成线与盒子做碰撞检测,如果有交点,则不准小球移动,记录于此备忘代码#include "../Common/Common.h"#include <osg/ShapeDrawable>#include <osg/Shape>#include <osgGA/GUIEventAdapte
2016-11-24 23:08:36
1807
原创 osg结合shader写的shadowmap
简介shadowmap示例,根据http://www.opengl-tutorial.org/intermediate-tutorials/tutorial-16-shadow-mapping/教程用osg写的demo 原理在教程上说的很清楚了代码/**shadowmap示例,根据http://www.opengl-tutorial.org/intermediate-tutorials/tuto
2016-11-09 16:06:12
3666
3
原创 ffmpeg音频编码
简介一个简单编码PCM的demo代码/**一个简单编码PCM的demo,参数都是根据PCM数据格式填写的,如果你的PCM不是s16p 44100 双声道,那么你需要自己修改编码上下文参数*注意读取对双声道的处理,因为pcm对双声道是交替存储的*缪国凯*MK(821486004@qq.com)*/#ifdef __cplusplusextern "C"{#endif#include
2016-11-09 00:57:06
2007
原创 ffmpeg解码音频保存为PCM
[TOC]简介一个简单保存PCM的demo,注意保存那里对双声道的处理,因为pcm对双声道是交替存储的代码/**一个简单保存PCM的demo,注意保存那里对双声道的处理,因为pcm对双声道是交替存储的*缪国凯*MK(821486004@qq.com)*/#ifdef __cplusplusextern "C"{#endif#include "libavcodec/avcodec.h
2016-11-08 23:40:54
8816
2
转载 PCM简介
转自:http://blog.youkuaiyun.com/ownwell/article/details/8114121/1. 音频简介 经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等. 44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节
2016-11-08 23:34:40
1286
转载 音频混音算法的实现
转自:http://blog.youkuaiyun.com/iflychenyang/article/details/11680449线性叠加后求平均优点:不会产生溢出,噪音较小; 缺点:衰减过大,影响通话质量;short remix(short buffer1,short buffer2) { int value = buffer1 + buffer2; return (sho
2016-11-08 11:50:42
13140
9
原创 利用ffmpeg的filter混音
概述流程介绍流程如下线程之间数据走向如下代码下载地址概述一个简单的混音demo,把文件a和文件b的音频混为一个音频流输出并存为文件,只处理每个文件的第一个音频流 注:源代码是网友Larry_Liang(1085803139)写的,我帮其调试通过,存在这里以免备忘流程介绍流程如下:打开输入1->打开输入2->打开输出->初始化混音filter->开启采集线程和编码写文件循环线程之间数据走向
2016-11-08 11:25:05
11178
1
转载 release下调用ffmpeg出错
win7 下开发视频服务器,用到ffmpeg,debug版本运行正常,切换到release时,出现"0x00905a4d 处未处理的异常: 0xC0000005: 读取位置 0x00905a4d 时发生访问冲突",原以为是jrtplib得问题,鼓捣半天才发现是ffmpeg. 用一个很小的测试程序验证,在av_register_all处就崩溃.鸟!难道是用mingw生成ffmpeg时有调
2016-11-02 16:41:10
960
原创 printf格式总结
每次都要搜一下,这次记录下来,看代码:int main() { char c, s[20]; int a=1234; float f=3.141592653589; double x=0.12345678912345678; strcpy(s, "Hello,World"); c='\x41'; printf("a=%d\n", a);//按照十进制整数格式输出,显
2016-08-15 21:48:46
788
转载 OpenGL glBlendFunc()
glBlendFunc();--混合OpenGL 会把源颜色和目标颜色各自取出,并乘以一个系数(源颜色乘以的系数称为“源因子”,目标颜色乘以的系数称为“目标因子”),然后相加,这样就得到了新的颜 色。(也可以不是相加,新版本的OpenGL可以设置运算方式,包括加、减、取两者中较大的、取两者中较小的、逻辑运算等,但我们这里为了简单起见,不讨 论这个了) 下面用数学公式来表达一下这个运算方式。
2016-08-10 16:29:53
691
转载 ffmpeg time_base详解
ffmpeg time_baseffmpeg存在多个时间基准(time_base),对应不同的阶段(结构体),每个time_base具体的值不一样,ffmpeg提供函数在各个time_base中进行切换。搞清楚各个time_base的来源,对于阅读ffmpeg的代码很重要。一、time_base1、AVStream(libavformat/avformat.h)typede
2016-08-03 10:39:52
2493
原创 用Layout实现QToolBox效果
1、简介最近要做一个项目,需要用到抽屉,但是抽屉有不能同时展开多个,所以自己用Layout实现下,记录在此,备忘。主要思路是自定义一个类继承自QWidget,此类包含一个QVBoxLayout作为mainlayout,然后在mainlayout中顶部用一个按钮控件来作为抽屉的标题栏,用一个list保存addItem插入的控件,当点击顶部按钮时,把list保存的控件可视化状态改变,下面贴具体
2016-08-02 17:43:22
1697
转载 Qt StyleSheet样式表实例
转自:http://blog.youkuaiyun.com/fu1201520/article/details/41147737在涉及到Qt 美工的时候首先需要掌握CSS 级联样式表。下面将通过几个例子来介绍一下怎样使用Qt中的部件类型设计。自定义的前台背景与后台背景的颜色:如果需要一个文本编辑器的背景变为黄色, 下面是代码行:qApp->setStyleSheet
2016-08-02 15:55:56
6740
ffmpeg实现录屏+录音
2015-07-23
mpeg-ps文件分析器
2015-07-10
ffmpeg音频转码,采用swr_convert重取样
2015-05-11
faac-1.28.diff
2015-04-28
mingw-get-inst-20110802.exe
2014-11-05
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人