自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 视频监控安防平台-国标28181 2016-GB28181 2016版检测经历 (平台上联和下联检测)

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

2017-11-08 17:43:50 1823 5

原创 ffmpeg学习笔记目录

1、命令使用最开始看一下ffmpeg命令的中文解释,然后ffmpeg的基本用法,日常命令使用中最多的ffmpeg调用x264编码、mpeg4中的deblocking的用法,x264中输出值含义,x264编码之码率控制,x264参数介绍之一,x264参数介绍之二。2、编译ffmpegwin7用mingw+msys编译ffmpeg编译中遇到的文题解决各个组件下载地址,及编译方法,问

2015-06-19 10:05:19 4300 2

原创 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 1270 5

原创 C++ Reflection

c++实现反射

2022-01-06 17:57:17 872

原创 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 819

原创 vpb生成地形

VPB生成三维地形1、下载dem来源有很多,我就写我用的地址:http://www.gscloud.cn然后选择dem下载:然后输入经纬度,找到想要下载的dem解压到目录存好2、下载卫片我是用水经注下的,目前手里没有狗,就下个低精度的示范下选好要下载的范围,可以输入:下载好后,选择导出,这里要注意导出的坐标系:手里可悲的是没有vip,所以只能导出墨卡托,不过没关系,可以用globalmapper转,转换方法如下:拖进gm,然后工具->设置-&

2020-09-16 15:47:42 950 1

原创 osg之源码跟踪-----Viewer::eventTraversal

1、概述此函数是事件遍历函数,主要做以下几件事:a、把设备+窗口的事件收集起来b、从SceneData开始遍历,给每个节点事件回调。getSceneData()->accept(*_eventVisitor);c、以每个从属相机为根遍历事件回调。d、调用主相机以及从属相机事件回调(不递归)e、遍历调用Viewer加的事件回调f、调用相机操作器回调g、设置相应状...

2020-04-30 10:46:42 377

原创 osg之源码跟踪-----ViewerBase::frame

1、概述此函数是渲染一帧的主函数,主要做的有以下几点:a、判断是否为第一帧,如果是则初始化。b、advance函数,主要做一些时间计算,设置诸如rate之类的状态值,其中Viewer::advance最后还会做对象注销工作,而CompositeViewer::advance不会做这个工作。c、eventTraversal时间遍历d、更新遍历e、渲染遍历2、示意流程图如下...

2020-04-28 15:58:21 542

原创 osg之源码跟踪-----Viewer::realize

1、概述 搞osg也有几年了,从来没系统的跟过代码,最近打算把代码好好跟一下。 今天跟踪的是Viewer::realize函数,此函数只初始化一次,过后不再初始化,主要干啥呢。 a、初始化窗口 b、初始化纹理最大尺寸和缓冲最大大小 c、设置开始时间 d、开启线程。 下面是流程图(不规范,看得懂意思就好...

2020-04-27 17:24:44 636

原创 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 1225

原创 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 349

原创 ffmpeg4.x版本录音

1、最近一网友找到我,说我博客上的录音程序用不起了,研究一番发现是他用我代码然后链接ffmpeg库。发现版本改动还挺大,故此从新上传一份依赖最新版本的ffmpeg的录音程序,以便大家参考。2、直接上代码:/**最简单的录音*缪国凯 Mickel*[email protected]*本程序用目前最新ffmpeg录音*2018-11-19*/#include &lt;win...

2018-11-19 16:02:09 1698 4

原创 AVFrame存储YUV420P对齐分析

1、概述被这个问题困扰很久,由于懒癌晚期,一直都是云里雾里,最近终于把微信聊天记录里的视频分析了一下,记录于此已做备忘。2、分析过程用ffmpeg写了个解码程序,遍历微信聊天视频目录找出所有视频文件,一个600多个,挨个解码,并把其长宽,AVFrame.linesize[0],AVFrame.linesize[1],AVFrame.linesize[2]打印出来,做对比,终于发现一些规律。下面是打...

2018-06-27 16:37:16 5197 1

原创 ffmpeg用filter添加水印

1、利用filter添加水印,流程不过多介绍2、代码/** * 最简单的基于FFmpeg的AVFilter例子 * * 缪国凯(MK) * [email protected] * * http://blog.csdn.net/dancing_night * * 本程序使用FFmpeg的AVfilter实现了水印添加功能。 * * */#include "stdafx...

2018-06-26 17:34:47 1887

原创 处理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 &lt; m_srcW; i++) { for (int j = 0; j &lt; m_srcH; j++) { m_Fra...

2018-06-26 16:00:49 1997 7

原创 ffmpeg不用filter添加水印

1、流程介绍openInput-&gt;openPic-&gt;InitOutput-&gt;readFrame-&gt;decode-&gt;operateAvframe-&gt;encode-&gt;writeFile-&gt;end2、核心代码核心代码为处理AVFrame如下:for(int j = 0; j &lt; m_markH; j++) { if ((m_y + j) &...

2018-06-26 15:48:06 624

原创 ffmpeg用drawtext filter 给视频加字幕,代码实现

简介:利用drawtext filter给视频加字幕,忽略音频,只处理一个视频。流程:openinput-&gt;openout-&gt;readpacket-&gt;decode-&gt;push into filter-&gt;pull out -&gt;encode-&gt;writefile重点看下CPenWordIntoPic里面如何初始化filter的,工程在底部的链接里。贴一下初始化...

2018-06-01 13:46:51 6122 3

原创 QGC杂记

关于QGC一些杂乱的笔记,记录于此备忘。MainWindow在QGCApplication::_initForNormalAppBoot中构造QGCQmlWidgetHolder 主wiget在MainWindow中初始化QGCQmlWidgetHolder包含QGCQuickWidgetMainWindow构造函数加载MainWindowHybrid.qmlMainWindowHybrid.qm...

2018-04-08 11:00:16 907

原创 关于用ffmpeg转手机视频发现视频长宽倒了的问题

1、概述最近用代码转手机视频,发现一个很奇怪的现象,明明源视频物体是竖着的,转了就不对,找了半天发现是以前一直没在乎的视频流rotate值。特此做个笔记。2、解决方案我们可以在输入的流里通过av_dict_get读出rotate值,并把这个值写到输出流里。代码如下: if (inPutStream) { AVDictionaryEntry *tag = NULL;

2017-11-03 20:42:04 1733 6

转载 Win7(Windows 7)下用VS2013(Visual Studio 2013)编译live555

转自:http://blog.csdn.net/caoshangpa/article/details/53200527一.live555简介live555是一个为流媒体提供解决方案的跨平台C++开源项目,它实现了对标准流媒体传输协议如RTP/RTCP、RTSP、SIP等的支持。live555能在Linux,Mac OS X,Windows和QNX等多个平台编译和运行。目前,它被用于

2017-06-08 11:00:56 875

转载 RTP 时间戳

最近被RTP的负载类型和时间戳搞郁闷了,一个问题调试了近一周,终于圆满解决,回头看看,发现其实主要原因还是自己没有真正地搞清楚RTP协议中负载类型和时间戳的含义。虽然做RTP传输,有着Jrtplib和Ortp这两个强大的库支持,一个是c++接口,一个是c语言接口,各有各的特点,各有各的应用环境,但是仅仅有库就能解决一切问题吗?可能仿照着一些例子程序,你能够完成主要的功能,但一旦问题发生了,不清楚原

2017-05-15 17:01:18 830

转载 H264的RTP负载打包的数据包格式,分组,分片

H264的RTP负载打包的数据包格式,分组,分片 转自:http://blog.csdn.net/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 1097

转载 RTP协议全解析(H264码流和PS流)

目录(?)[+]写在前面:RTP的解析,网上找了很多资料,但是都不全,所以我力图整理出一个比较全面的解析,其中借鉴了很多文章,我都列在了文章最后,在此表示感谢。互联网的发展离不开大家的无私奉献,我决定从我做起,希望大家支持。原创不易,转载请附上链接,谢谢http://blog.csdn.net/chen495810242/article/details/

2017-04-06 10:23:07 965

原创 用ffmpeg提取mp4的h264码流写文件花屏

1、用ffmpeg提取mp4的h264码流写文件的方法网上有很多,不知道的请参考雷神博客:http://blog.csdn.net/leixiaohua1020/article/details/118008772、但是这么写出来的文件是有问题的,首先的确能播放,但是会有很大几率出现花屏a、首先说说解决方案其实很简单,也是利用av_bitstream_filter_filter方法,如下

2017-04-01 17:30:23 6876 5

原创 关于资源编译时报错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 4529

原创 编译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 7113

转载 GLSL语言基础

变量GLSL的变量命名方式与C语言类似。变量的名称可以使用字母,数字以及下划线,但变量名不能以数字开头,还有变量名不能以gl_作为前缀,这个是GLSL保留的前缀,用于GLSL的内部变量。当然还有一些GLSL保留的名称是不能够作为变量的名称的。基本类型除了布尔型,整型,浮点型基本类型外,GLSL还引入了一些在着色器中经常用到的类型作为基本类型。这些基本类型都可以作为结构体内部的类型。

2016-11-29 14:56:43 703

原创 osg线碰撞检测

简介利用osgUtil::LineSegmentIntersector做的线碰撞检测,原理是把小球当前位置和新位置练成线与盒子做碰撞检测,如果有交点,则不准小球移动,记录于此备忘代码#include "../Common/Common.h"#include <osg/ShapeDrawable>#include <osg/Shape>#include <osgGA/GUIEventAdapte

2016-11-24 23:08:36 1682

原创 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 3511 3

原创 ffmpeg音频编码

简介一个简单编码PCM的demo代码/**一个简单编码PCM的demo,参数都是根据PCM数据格式填写的,如果你的PCM不是s16p 44100 双声道,那么你需要自己修改编码上下文参数*注意读取对双声道的处理,因为pcm对双声道是交替存储的*缪国凯*MK([email protected])*/#ifdef __cplusplusextern "C"{#endif#include

2016-11-09 00:57:06 1947

原创 ffmpeg解码音频保存为PCM

[TOC]简介一个简单保存PCM的demo,注意保存那里对双声道的处理,因为pcm对双声道是交替存储的代码/**一个简单保存PCM的demo,注意保存那里对双声道的处理,因为pcm对双声道是交替存储的*缪国凯*MK([email protected])*/#ifdef __cplusplusextern "C"{#endif#include "libavcodec/avcodec.h

2016-11-08 23:40:54 8718 2

转载 PCM简介

转自:http://blog.csdn.net/ownwell/article/details/8114121/1. 音频简介      经常见到这样的描述: 44100HZ 16bit stereo 或者 22050HZ 8bit mono 等等.     44100HZ 16bit stereo: 每秒钟有 44100 次采样, 采样数据用 16 位(2字节

2016-11-08 23:34:40 1192

转载 音频混音算法的实现

转自:http://blog.csdn.net/iflychenyang/article/details/11680449线性叠加后求平均优点:不会产生溢出,噪音较小; 缺点:衰减过大,影响通话质量;short remix(short buffer1,short buffer2) { int value = buffer1 + buffer2; return (sho

2016-11-08 11:50:42 12785 9

原创 利用ffmpeg的filter混音

概述流程介绍流程如下线程之间数据走向如下代码下载地址概述一个简单的混音demo,把文件a和文件b的音频混为一个音频流输出并存为文件,只处理每个文件的第一个音频流 注:源代码是网友Larry_Liang(1085803139)写的,我帮其调试通过,存在这里以免备忘流程介绍流程如下:打开输入1->打开输入2->打开输出->初始化混音filter->开启采集线程和编码写文件循环线程之间数据走向

2016-11-08 11:25:05 10914 1

转载 release下调用ffmpeg出错

win7 下开发视频服务器,用到ffmpeg,debug版本运行正常,切换到release时,出现"0x00905a4d 处未处理的异常: 0xC0000005: 读取位置 0x00905a4d 时发生访问冲突",原以为是jrtplib得问题,鼓捣半天才发现是ffmpeg. 用一个很小的测试程序验证,在av_register_all处就崩溃.鸟!难道是用mingw生成ffmpeg时有调

2016-11-02 16:41:10 928

原创 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 721

转载 OpenGL glBlendFunc()

glBlendFunc();--混合OpenGL 会把源颜色和目标颜色各自取出,并乘以一个系数(源颜色乘以的系数称为“源因子”,目标颜色乘以的系数称为“目标因子”),然后相加,这样就得到了新的颜 色。(也可以不是相加,新版本的OpenGL可以设置运算方式,包括加、减、取两者中较大的、取两者中较小的、逻辑运算等,但我们这里为了简单起见,不讨 论这个了) 下面用数学公式来表达一下这个运算方式。

2016-08-10 16:29:53 645

转载 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 2422

原创 用Layout实现QToolBox效果

1、简介最近要做一个项目,需要用到抽屉,但是抽屉有不能同时展开多个,所以自己用Layout实现下,记录在此,备忘。主要思路是自定义一个类继承自QWidget,此类包含一个QVBoxLayout作为mainlayout,然后在mainlayout中顶部用一个按钮控件来作为抽屉的标题栏,用一个list保存addItem插入的控件,当点击顶部按钮时,把list保存的控件可视化状态改变,下面贴具体

2016-08-02 17:43:22 1607

转载 Qt StyleSheet样式表实例

转自:http://blog.csdn.net/fu1201520/article/details/41147737在涉及到Qt 美工的时候首先需要掌握CSS 级联样式表。下面将通过几个例子来介绍一下怎样使用Qt中的部件类型设计。自定义的前台背景与后台背景的颜色:如果需要一个文本编辑器的背景变为黄色, 下面是代码行:qApp->setStyleSheet

2016-08-02 15:55:56 6522

NormalTexture.rar

osg实现法线贴图

2022-01-18

读PCM文件编码成MP3文件

由于之前上传的资源有bug,且csdn不支持重新修改资源,故重新上传

2018-11-30

ffmpeg4.x录音程序

本程序用最新ffmpeg示例录音程序,之前的录音程序在此版本的ff上不能用了,故传一份以供参考(吐槽一下,csdn没有0分分享了)

2018-11-19

基于最简单的FFmpeg的解码器做的YUV420对齐分析

本程序实现了视频解码保存为yuv,写yuv是用文件方式写的,没用到muxer,用作AVFrame里YUV420对齐分析

2018-06-27

ffmpeg用filter添加水印

最简单的基于FFmpeg的AVFilter例子 ,本程序使用FFmpeg的AVfilter实现了水印添加功能。

2018-06-26

ffmpeg不用filter添加水印

ffmpeg不用filter添加水印,手动处理AVFrame内存数据,达到添加水印的目的

2018-06-26

利用drawtext给视频加字幕

利用drawtext给视频加字幕,忽略音频,只处理一个流视频

2018-06-01

osg实现shadowmap

osg实现shadowmap示例

2016-11-09

读取PCM利用ffmpeg编码音频

用文件读取的方式读取PCM数据,利用ffmpeg编码为音频文件

2016-11-09

ffmpeg解码音频并保存PCM的简单demo

一个简单用ffmpeg解码音频保存PCM的demo

2016-11-08

利用ffmpeg的filter混音

一个简单的混音demo

2016-11-08

ffmpeg实现scale

此例子使用ffmpeg实现视频缩放功能,是一个ffmpeg关于filter的例子

2015-08-31

ffmpeg录音+录屏

实现录屏+录音,发现bug修改,音csdn资源不能修改,所以重传

2015-08-25

ffmpeg实现录屏+录音

最简单的基于FFmpeg的AVDevice例子(屏幕录制+声音采集),视频采用mpeg4编码,音频采用aac编码,并生成mp4文件,以前上传的有一个bug,此版本把他修复(因为不能修改资源,所以重新传一个,csdn功能不够啊)

2015-07-23

mpeg-ps文件分析器

mpeg-2文件结构分析用代码实现,结合http://blog.csdn.net/dancing_night/article/details/46832371看

2015-07-10

ffmpeg录屏+录音

最简单的基于FFmpeg的AVDevice例子(屏幕录制+声音采集),视频采用mpeg4编码,音频采用aac编码,并生成mp4文件

2015-06-30

ffmpeg录音

本程序实现采集麦克风音频数据,压制为aac

2015-06-19

ffmpeg解码

最简单的ffmpeg解码保存为yuv的例子

2015-06-19

ffmpeg api实现视频转码(音视频)

用ffmpeg代码进行转码,音频进行了重采样

2015-06-15

ffmpeg合并视频

本程序实现把2个视频合并为一个视频,不涉及编解码,但是对视频源有要求,必须是相同的参数

2015-05-14

ffmpeg实现视频切割

用ffmpeg实现视频切割,不涉及编解码,做得不够完美的地方是,没有从关键帧开始切割,所以有可能切割点会花,以后改善

2015-05-14

ffmpeg音频转码,采用swr_convert重取样

本程序实现从一个视频格式转码到另一个视频格式,只处理音频,视频忽略,若有多个音频流,只处理第一个,采用swr_convert重取样

2015-05-11

ffmpeg音频转码

本程序实现从一个视频格式转码到另一个视频格式,只处理音频,视频忽略,若有多个音频流,只处理第一个

2015-05-08

ffmpeg各个组件下载地址+编译方法+错误处理

ffmpeg各个组件下载地址+编译方法+错误处理,文件中都有记录,环境是mingw,ffmpeg版本是2.6.2

2015-05-07

ffmpeg录屏

采用内存dc抓取屏幕图像并送入ffmpeg压制为avi视频

2015-05-07

ffmpeg最简单的视频转码示例(只处理视频,忽略音频)

ffmpeg最简单的视频转码示例(只处理视频,忽略音频),工程已经在vs2010上编译通过,代码比较清晰。

2015-05-07

faac-1.28.diff

faac报错mpeg4ip_win32.h:70:36: error:'_TRUNCATE' was not declared in this scope ret = vsnprintf_s(buffer, count, _TRUNCATE, format, ap); mpeg4ip_win32.h:70:57: error:'vsnprintf_s' was not declared in this scope ret = vsnprintf_s(buffer, count, _TRUNCATE, format, ap); 可以用这个补丁解决 命令:patch -p1 < faac-1.28.diff

2015-04-28

qt-faststart

把ffmpeg转码的MP4的meta信息转换到文件头部。

2015-03-18

mingw-get-inst-20110802.exe

MinGW:一个可自由使用和自由发布的Windows特定头文件和使用GNU工具集导入库的集合,允许你生成本地的Windows程序而不需要第三方C运行时库。   MinGW,即 Minimalist GNU For Windows。它是一些头文件和端口库的集合,该集合允许人们在没有第三方动态链接库的情况下使用 GCC 产生 Windows32 程序。   在基本层,MinGW 是一组包含文件和端口库,其功能是允许控制台模式的程序使用微软的标准C运行时间库(MSVCRT.DLL),该库在所有的 NT OS 上有效,在所有的 Windows 95 发行版以上的 Windows OS 有效,使用基本运行时间,你可以使用 GCC 写控制台模式的符合美国标准化组织(ANSI)程序,可以使用微软提供的 C 运行时间扩展。该功能是 Windows32 API 不具备的。下一个组成部分是 w32api 包,它是一组可以使用 Windows32 API 的包含文件和端口库。与基本运行时间相结合,就可以有充分的权利既使用 CRT(C Runtime)又使用 Windows32 API 功能。

2014-11-05

x264源码带自己的注解

x264-snapshot-20091006-2245源码带一些自己的注解

2014-07-18

avifile写的2个avi和一个wav合成

本工程是用于屏幕和摄像头录制完了后合成一个工程,里面的鼠标文件时自定义的,不用管就是

2014-05-30

空空如也

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

TA关注的人

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