自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

吐着泡泡说爱你的博客

总结一些视音频技术,有的怕自己忘掉,写在这方便自己家浏览

  • 博客(101)
  • 资源 (1)
  • 收藏
  • 关注

原创 C语言#和##运算符的用法

#运算符 #运算符用于在预编译期将宏参数转换为字符串 #define CONVERS(x) #x printf(‘%s\n”,CONVERS(Hello world!));CONVERS(100) CONVERS(while)#define CALL(f,p) (printf(“Call function %s”,#f),f(p)) int square(int n) {

2017-12-22 21:04:41 1438

原创 使用ffmpeg将mp4转为ts(代码实现)

使用ffmpeg将mp4转为ts的命令格式如下 ffmpeg - i b.mp4 -codec copy -bsf h264_mp4toannexb a.ts如果不使用-bsf h264_mp4toannexb参数 会提示错误 主要是因为使用了mp4中的h264编码 而h264有两种封装: 一种是annexb模式 传统模式 有statrtcode SPS和PPS是在ES中 另一种是m

2017-09-01 16:15:23 17956 5

转载 ffmpeg将视频从隔行扫描转为逐行扫描

其实主要是这个参数 -deinterlace 隔行扫描的视频一般在播放的时候 会有横条感 逐行扫描的视频播放的时候感觉会好很多 会感觉清晰很多ffmpeg -i 1.mts -strict -2 -vcodec libx264 -vb 2000k -deinterlace -r 30 -vprofile high -vlevel 5.1 -acodec aac -ar 44100 -ab 1

2017-09-01 15:43:35 5665

转载 ffplay查看运动向量及宏块的显示情况

MacroBlock相关信息: ffplay -debug vis_mb_type inputfile 使用该命令行执行后效果如下: 可以看到block的信息,可以显示出来; 通过这个列表可以看到对应的宏块类型。 Motion Vector相关信息 ffplay -vismv pf inputfile 使用该命令行以后效果如下:Vismv的参数有三种,分别为: -vismv pf – 向前预测

2017-09-01 15:25:33 1097

转载 ffmpeg中tbr tbc tbn的含义解释

因为最近的工作需要从MP4视频中提取一些关键帧,要了解如何将视频的时间点转换为对应的帧号,所以查阅了一些关于视频编解码以及时间同步方式的资料。再此总结一下。 首先是解码,利用FFmpeg解码得到的信息通常如下: Metadata: major_brand : isom minor_version : 512 compatible_brands: mp4

2017-09-01 15:12:00 4448

转载 调用ffmpeg SDK对YUV视频序列进行编码

1、FFMpeg进行视频编码所需要的结构:为了实现调用FFMpeg的API实现视频的编码,以下结构是必不可少的:AVCodec:AVCodec结构保存了一个编解码器的实例,实现实际的编码功能。通常我们在程序中定义一个指向AVCodec结构的指针指向该实例。 AVCodecContext:AVCodecContext表示AVCodec所代表的上下文信息,保存了AVCodec所需要的一些参数。对于实现

2017-08-30 17:50:57 674

原创 ffmpeg中av_seek_frame使用样例

av_seek_frame使用时需要使用四个参数 av_seek_frame(fmt_ctx, -1 , 20 * AV_TIME_BASE, AVSEEK_FLAG_ANY);参数一: fmt_ctx为容器内容; 参数二: 流索引, stream_index 参数三: 将要定位处的时间戳 参数四: seek功能flag容器即AVFormatContext, 其中包含了一些视频标准格式中对应

2017-08-28 17:51:38 12764 1

原创 opencv 之运动物体检测(二)

1)运动物体轮廓椭圆拟合及中心vector<vector<Point>contours;vector<Vec4i>hierarcy;findContours(diff,,contours,hierarcy,CV_RETR_EXTERNAL,CV_CHAIN_APPPROX_NONE);cout<<"num"<<contours.size()<<endl;vector<RotatedRect>

2017-07-14 09:05:53 1038

原创 opecncv之运动物体检测

1)运动物体检测简介 运动物体检测就是在视频(视频文件/摄像头获取)中检测运动物体(目标)。opencv中常用的运动物体检测方法有背景减法,帧差法,光流法,运动物体检测广泛应用于视频安全监控,,车辆检测等方面 背景减法:就是用原图像减去背景模型,剩下的就是前景图像,即运动目标 帧差法:就是利用相邻的两帧或三帧图像,利用像素之间的差异性,判断是否有运动目标 视频就是一帧一帧图像组成的 求图像

2017-07-13 09:59:09 988

原创 opencv之特征检测与匹配(三)

1)SURF特征检测 SURF—-加速稳健特征算法 SURF是尺度不变特征变换SIFT的加速版,一般来说,标准的SURF算子比SIFT算子快好几倍,并且在多幅图像中具有更好的稳定性,SURF最大的特征在于采用harr特征以及积分图像的概念,这大大加快了程序运行时间,可以应用于物体识别以及三维重建中 在检测特征点的过程中计算了Hessian矩阵的行列式,与此同时,计算到了Hessian

2017-07-12 10:02:57 1248

原创 opencv之特征检测与匹配

1)SIFT特征提取匹配的步骤 A使用SiftFeatureDector的detect方法检测特征存入一个向量(可以使用drawKeypoints在图中标记出来) B使用SiftDescriptorExtractor的compute方法提取特征描述符(特征向量),特征描述符是一个矩阵 C使用匹配器matcher对描述符进行匹配 D匹配结果保存由DMatch的组成的向量里设置距离阈值,使得匹配

2017-07-10 10:48:03 743

原创 opencv特征检测与匹配

特征点的检测与匹配,在物体识别,视觉追踪,三维重建领域都有很广泛的应用 ,Opencv 提供了如下几种特征检测方法 “FAST”—–FastFeaturedector “STAR”—–StartFeaturedector “SIFT”——SIFTF(nonfree module) “SURF”—–SURF(nonfree module) “ORB”—–ORB “MSER”–MSER “

2017-07-09 09:59:01 827

原创 opencv角点检测简介

1)相关概念 1兴趣点 在图像处理和计算机视觉领域,兴趣点也被称为 关键点或者特征点被大量用于解决物体识别,图像识别,图像匹配,视觉追踪,三维重建,等一系列问题,我们不再观察整幅图,而是选择某些特殊的点,然后对他们进行分析,如果能检测到足够的这种点,同时他们的区分度很高,并且可以精准定位稳定的特征,这个方法就具有实用价值,图像特征类型被分为如下三种: *边缘 *角点(感兴趣关

2017-07-08 10:06:18 1160

原创 OpenCV2升级到OpenCV3

新添加了脸部识别,文本探测,文本识别,新的边缘检测器,深度图像处理,新的光流和追踪算法 opencv3.0手册地址 http://docs.opencvorg/trunk/index/htmlOpencv2代码修改为Opencv3代码报错 1由于宏定义名称变更提示“”未定义的标识符“”问题 ex:CV_WINDOW_AUTOSIZE未声明的标识符 原因:OpenCV3中取消了Openc

2017-07-07 11:08:37 3840 1

原创 opencv之GrabCut&FloodFill分割

1)GrabCut图像分割算法 Opencv中的GrabCut算法是Graphcut算法的改进,Graphcut是一种直接基于图割算法的图像分割技术,仅仅需要确认前景和背景的输入,该算法就可以完成前景和背景的最优分割,该算法利用图像中的纹理(颜色)信息和边界(反差)信息,只要少量的用户交互操作就可得到比较好的分割结果,和分水岭算法比较相似,但是计算速度比较慢,得到的结果比较精确,如果从静态图像中提

2017-07-07 10:49:06 642

原创 opencv之分水岭算法分割及图像修补

1)分水岭算法 原理: 任何一幅灰度图像都可以被看成是拓扑平面,灰度值高的区域可以被看成是山峰,灰度值低的区域可以被看成是山谷,我们向每一个山谷中灌不同颜色的水,随着水位的升高,不同山谷的水就会相遇汇合,为了防止不同山谷的水的汇合,我们需要在水汇合的地方构建起堤坝,不停的灌水,不停的构建堤坝直到所有的山峰都被水淹没,我们构建好的堤坝就是对图像的分割,这就是分水岭算法的背后原理 对灰度

2017-07-06 09:45:49 836

原创 c语言之符号的技巧

C语言中的单引号用来表示字符常量 C语言中的双引号用来表示字符串常量 ‘a’表示字符常量 在内存中占1个字节 ‘a’表示’a’的ascii码加1,结果是’b’ ‘a+1’表示指针运算,结果指向”a”结束符‘\0’ 本质上单括号括起来的一个字符代表整数 双括号括起来的字符代表一个 指针!只认得0,只知道见了0就返回1 因此当其作用的值不是0时,其结果为0三目运算符(a?b:c)可

2017-07-05 17:44:17 324

原创 opencv之轮廓特征属性及应用

1)HSV颜色空间 HSV颜色空间与人眼所看色彩较接近,因此常用于颜色检测和识别 其中H(色调)S(饱和度),V(亮度) H–不同的颜色(红色/绿色/蓝色)—范围:0–360 S–颜色深浅(浅红/深红)———–范围:0.0-1.0 V–颜色亮暗(暗红/亮红)———–范围:0.0-1.0 opencv默认的HSV范围分别是 H:0-180 S

2017-07-05 10:26:49 347

原创 C语言学习之关键字的秘密

数据类型可以理解为固定内存大小的别名 数据类型是创建变量的模子 short 2 byte 变量的本质 变量是一段实际连续存储空间的别名 程序中通过变量来申请并命名存储空间 通过变量的名字可以使用存储空间自定义类型 typedef int INT32; typedef unsigned char BYTE typedef struct _demo { sho

2017-07-05 09:49:39 279

原创 opencv之轮廓特征属性及应用

1)点与轮廓的距离及位置关系 计算点与轮廓的距离及位置关系–pointPolygonTest() double pointPolygonTest(InputArray contour,Point2f pt,bool measureDist); &&contour 所需检测的轮廓对象 &&pt Point2f类型的pt 待判定位置的点 &&measureDis

2017-07-04 19:59:30 497

原创 自学qt之QImage

QImage 纯软件绘图QImage image(size(),QImage::Format ARGB32 Premultiplied);QPainter imagepainter(&image);enum DrawTap{Butterfly,Dog};DrawType drawType;QImage butterflyImage;

2017-07-04 16:23:00 576

原创 自学qt之QPainter

drawPoint() drawArc() drawLine() drawChord() drawPolyline()drawPie() drawPoints()drawText() drawLines()drawPixmap() drawPolygon()drawPath() drawRect

2017-07-04 16:00:37 805

原创 opencv之轮廓特征属性及应用

1)最小外接圆 轮廓最小外接圆–minEnclosingCircle() void minEnclosingCircle(InputArray points,CV_OUT Point2f&center,CV_OUT float&radius); &&points:输入的二维点集,可以填Mat类型或者std::vector &&center:Point2f&类型的center

2017-07-04 09:17:30 508

原创 opencv之轮廓特征属性及应用

1)最小外接矩形 轮廓最小外接矩形–minAreaRect() RotatedRect minAreaRect(InputArray points); **points :输入的二维点集,可以填Mat 类型或std::vector **返回值:RotatedRect类矩形对象,外接旋转矩形主要成员有center,size,angle,points 在opencv中,坐标的原

2017-06-21 10:47:50 527

原创 opencv之轮廓特征属性及应用

使用特定形状的轮廓包围 在实际应用中,经常会有将检测到的轮廓用多边形表示出来的应用,提取包围轮廓的多边形也方便我们做进一步分析,轮廓包围主要有几种 1.轮廓外接矩形 2.轮廓最小外接矩形(旋转) 3.轮廓最小包围圆形 4轮廓拟合椭圆 5.轮廓毕竟多边形曲线轮廓外接矩形–boudingRect() Rect boundingRect(InputArray points); points

2017-06-20 20:25:40 499

原创 opencv之轮廓特征属性及应用(一)

1)凸包 凸包是一个计算机几何图形学中的概念,简单来说,给定二维平面点集,凸包就是能够将最外层的点连接起来构成的凸多边形,他能够包含点集中所有的点,物体的凸包检测常应用在物体识别,手势识别及边界检测等领域寻找凸包–convexHull() void convexHull(InputArray points,OutputArray hulll,bool clockwise=false,bool r

2017-06-20 09:49:42 1049

转载 ffmpeg字幕

转载自 dancing_night 增加字幕流 ffmpeg -i video.avi -i sub.ass -map 0:0 -map 0:1 -map 1 -c:a copy -c:v copy -c:s copy video.mkv提取字幕流 1)原始文本输出 ffmpeg -i output.mkv -an -vn -bsf:s mov2textsub -scodec copy

2017-06-19 17:12:46 1649

转载 x264参数介绍(二 ,分析和视频可用性信息)

分析partitions默认:’p8x8,b8x8,i8x8,i4x4′ 说明:H.264在压缩前会被切分为16×16大小的宏块。这些块可被进一步切分成更小的块,利用此参数,可以控制不同的帧类型(I、P、B)开启更细的帧切分(8×8、4×4),具体参数如下: I帧:i8x8、i4x4; P帧:p8x8(会同时开启p16x8和p8x16)、p4x4(会同时开启p8x4和p4x8); B帧:b8

2017-06-19 17:10:33 568

转载 x264参数介绍(-,帧类型和码率控制)

预设值预设值是x264在r1177版本增加的一个方便的命令行选项。可以用x264.exe –fullhelp查看所有的命令行帮助。profile默认:无 说明:限制输出文件的profile。这个参数将覆盖其它所有值,此选项能保证输出profile兼容的视频流。如果使用了这个选项,将不能进行无损压缩(qp 0 or crf 0)。 可选:baseline,main,high 建议:不设置。除非解

2017-06-19 17:09:19 1805

转载 x264编码----码率控制

x264是一个 H.264/MPEG4 AVC 编码器,本指南将指导新手如何创建高质量的H.264视频。对于普通用户通常有两种码率控制模式:crf(Constant Rate Factor)和Two pass ABR。码率控制是一种决定为每一个视频帧分配多少比特数的方法,它将决定文件的大小和质量的分配。如果你在编译和安装libx264 方面需要帮助,请查看ffmpeg和x264编译指南:http:/

2017-06-19 17:08:09 982

转载 x264输出统计值含义

典型的x264输出(Stats Output)如下: [text] view plaincopyavis [info]: 1280x720 @ 1.77 fps (40997 frames) yuv4mpeg: 640x480@30/1fps, 0:0 x264 [info]: 352x288 (given by file name) @ 25.00 fps 取决于输入源会有不同,但大

2017-06-19 17:07:10 665

转载 FFmpeg基本用法

FFmpegFFmpeg 基本用法本课要解决的问题1.FFmpeg的转码流程是什么?2.常见的视频格式包含哪些内容吗?3.如何把这些内容从视频文件中抽取出来?4.如何从一种格式转换为另一种格式?5.如何放大和缩小视频?6.如何旋转,翻转,填充,裁剪,模糊,锐化视频?7.如何给视频加logo,删除logo?8.如何给视频加文本,动态文本?9.如何处理图片?10.如何录像,添加动态logo,截图,马赛克

2017-06-19 16:46:20 3388

转载 ffmpeg命令中文解释

a) 通用选项-L license -h 帮助 -fromats 显示可用的格式,编解码的,协议的… -f fmt 强迫采用格式fmt -I filename 输入文件 -y 覆盖输出文件 -t duration 设置纪录时间 hh:mm:ss[.xxx]格式的记录时间也支持 -ss position 搜索到指定的时间 [-]hh:mm:ss[.xxx]的格式也支持 -title s

2017-06-19 16:44:47 512

原创 opencv之轮廓的查找与绘制(二)

1)如何访问每一个轮廓 for(int i=0;i< contours.size();i++) { …………. } vector < vector /Point>>contours;//注这有个/是< 的意思 (每个轮廓的点集 size()单个轮廓中点的个数) (所有的轮廓集合 size() 轮廓的个数) 2)如何访问每一个轮廓的所有点 ex

2017-06-19 14:58:27 453

转载 ffmpeg转码研究命令行

Ffmpeg是一款功能强大的视频处理工具,那么转码肯定不是问题的,因为项目的需求,对转码进行了研究。刚开始首先去看了ffmpeg源代码中的一个例子transcode.c,但是发现该例子更应该称之为remux的一个例子,并没有具体的涉及到转码。所以转而去ffmpeg工具中寻求帮助了。 ffmpeg转码流程:举例: 输入文件为ts格式,视频编码为H.264,音频编码为AAC,要求的输出文件封装格式为

2017-06-19 11:17:12 722

转载 mpeg-ts(二)

MPEG2的三类帧 I帧:是帧内编码帧,其编码不依赖BP两帧,同时他是BP帧编解码的参考图像 P帧:前向预测编码图像,像素的预测值取为前面与其相邻的I帧或P帧中对应像素的值,即采用帧间运动补偿前值预测。 B帧:双向预测编码图像,像素的预测值取为前后与其距离最近的I帧或P帧相应像素的加权平均,即采用帧间运动补偿前后平均,需要指出,B帧不能作为其他B帧或P帧的编码参考图像。编码顺序: 传输流中编

2017-06-19 10:40:43 428

转载 mpeg2-ts基础

一:基本概念1.ES–Elementary Streams(原始流)是直接从编码器出来的数据流,ES经过PES打包器之后,转换成PES包。ES仅是包含一种数据内容的数据流,如h.264视频或者aac音频数据。打包之后的PES也是只包含一种的ES,如只含视频ES的PES或者只含音频ES的PES。每个ES都由若干个存取单元(AU)组成,每个视频AU或者音频AU都由头部和编码数据两部分组成,一个AU相当于

2017-06-19 10:28:01 451

原创 ffmpeg 一些命令

1.修改分辨率率将输入为640*480的修改为320*249ffmpeg -i input -vf scale=iw/2:-2 outputiw:输入帧宽,此处为640,640/2=320。-1告诉scale filter保持纵横比,所以scale filter计算出值240.2.改变音视频播放速度1>视频2倍播放速度,音频两倍播放速度。ffmpeg -i input.mkv -filter:v “

2017-06-19 10:22:03 557

转载 ffmpeg_Cropping video(剪裁视频)命令行

1.Cropping Basics老版本的ffmpeg有bottom, left, right, top选项,但是现在已经被废弃了,而改用crop filter来进行描述。值ow可从oh中得到,反之亦然,但是不可以从x和y中得到,因为x和y是从ow和oh中推断出来的。值x可从y中获取,反之亦然。比如:剪切输入帧的左第三,中第三,右第三,可以用下面的命令。ffmpeg -i input -vf cro

2017-06-19 10:19:56 2568

转载 ffmpeg -resize and scale

resize 的意思是改变长和宽,scale意思是用scale filter改变帧的大小。 1.Resizing video 宽和高用-s选项进行设置。要在output filename 之前设置。例如:初始化分辨率为320*240ffmpeg -i input_file -s 320*240 output_file2.预定义视频帧的大小下面的两个cmd有同样的效果ffmpeg -i input

2017-06-19 10:13:11 7445

ffmpeg基础

ffmpeg基础

2017-08-30

空空如也

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

TA关注的人

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