自定义博客皮肤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)
  • 收藏
  • 关注

转载 ffmpeg 获取帮助的命令

1.Text help in FFmpeg tools ffmpeg有很多的控制台帮助信息。可以查找到比如编解码器等信息。 下面的选项对于ffplay和ffprobe适用。例如: ffmpeg -h decoder=flv2.Available bitstream filters ffmpeg -bsfs3.Available codecs ffmpeg -codecs……3.Availa

2017-06-19 09:57:25 2090

转载 ffmpeg -比特率,帧率和文件大小

比特率和帧率是音视频基本的特性,对于音视频整体的质量有关键作用!如果知道比特率和持续时间,就可以计算输出文件的大小。 1.Frame(frequency)rate introduction 帧率就是每秒编码进视频文件的帧数目。人类的眼睛需要每秒至少15帧才能将图像连贯在一起。帧率的单位是HZ,LCD显示一般有60Hz的平率。 有2种类型的帧率-interlaced(denoted asi af

2017-06-19 09:50:34 18168

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

1)什么是轮廓 轮廓可以简单的认为是将连续的点(连着边界)连在一起的曲线,具有相同的颜色或者灰度,提取轮廓就是提取这些具有相同颜色或者灰度的曲线,或者说是连通域,轮廓在形状分析和物体的检测和识别中非常有用注意事项: 1.为了更加准确,要使用二值化图像,在寻找轮廓之前,要进行阈值化处理或者Canny边缘检测 2.查找轮廓的函数会修改原始图像,如果你在查找轮廓之后还想使用原始图像的话,应该将原始图

2017-06-19 09:39:21 583

转载 使用ffmpeg 获取视频总时长

以前一直以为知道pFormatContext后,通过其成员变量duration就是视频长度。但是通过实验,其数值都是很大的负数,一看就不对,最近看av_dump_format(),看到此函数输出了视频的时长,然后看了下源码,找到了获取视频的时长的方法 直接贴出 :if(pFormatCtx->duration!=AV_NOPTS_VALUE){ int hours,mins,secs,us;

2017-06-18 22:06:28 5618

转载 音频,视频时间戳计算及每帧播放时间

av_rescale_q用于计算Packet的PTS。av_rescale_q的返回值是一个很大的整数,且每次计算的结果间隔很大。 不同于avcodec_encode_video改变AVCodecContext *avctx的pts(小整数,且间隔小)。av_rescale_q(a,b,c)是用来把时间戳从一个时基调整到另外一个时基时候用的函数。它基本的动作是计算a*b/c,但是这个函数还是必需的

2017-06-18 17:09:07 2915

转载 h264编码原理以及I帧B帧P帧

前言 H264是新一代的编码标准,以高压缩高质量和支持多种网络的流媒体传输著称,在编码方面,我理解的他的理论依据是:参照一段时间内图像的统计结果表明,在相邻几幅图像画面中,一般有差别的像素只有10%以内的点,亮度差值变化不超过2%,而色度差值的变化只有1%以内。所以对于一段变化不大图像画面,我们可以先编码出一个完整的图像帧A,随后的B帧就不编码全部图像,只写入与A帧的差别,这样B帧的大小就只有完

2017-06-18 17:02:04 995

转载 h264编码速度质量参数设置

FFmpeg and x264 Encoding Guide 参数说明:http://ffmpeg.org/trac/ffmpeg/wiki/x264EncodingGuide preset 与编码速度和质量相关av_opt_set(c->priv_data, “preset”, “slow”, 0); Current presets in descending order of speed a

2017-06-18 16:39:14 8855

转载 ffmpeg常用参数一览表

基本选项: -formats 输出所有可用格式 -f fmt 指定格式(音频或视频格式) -i filename 指定输入文件名,在linux下当然也能指定:0.0(屏幕录制)或摄像头 -y 覆盖已有文件 -t duration 记录时长为t -fs limit_size 设置文件大小上限 -ss time_off 从指定的时间(s)开始, [-]hh

2017-06-18 16:33:37 861

转载 ffmpeg从MP4中提取h264的NALU

1.获取数据 ffmpeg读取mp4中的H264数据,并不能直接得到NALU,文件中也没有储存0x00000001的分隔符。下面这张图为packet.data中的数据从图中可以发现,packet中的数据起始处没有分隔符(0x00000001), 也不是0x65、0x67、0x68、0x41等字节,所以可以肯定这不是标准的nalu。其实,前4个字0x000032ce表示的是nalu的长度,从第5个字

2017-06-18 16:18:03 1180

转载 YUV RGB常见视频格式解析

I420是YUV格式的一种,而YUV有packed format和planar format两种,而I420属于planar format的一种。  同时I420表示了YUV的采样比例4:2:0。4:2:0的YUV并不是说没有V分量,而是指对于每一个行,只有一个U或者V分量。比如第一行里,是YUYYUY,到了第二行是YVYYVY,那么对于每一行来说就是4:2:0或者4:0:2。需要说明的是,这里的排

2017-06-18 16:08:14 975

转载 RTP头结构解析

RTP包头前12个固定字节机构图:0 1 2 30 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-

2017-06-18 15:56:28 1294

转载 如何利用AVDictionary配置参数

准备介绍下 ffmpeg 提供的一个非常好用的健值对工具:AVDictionary,特别是对于没有 map 容器的 c 代码,可以充分利用它来配置和定义播放器的参数,ffmpeg 本身也有很多 API 通过它来传递参数。AVDictionary 的用法简介AVDictionary 所在的头文件在 libavutil/dict.h,其定义如下: [cpp] view plain copy pr

2017-06-18 15:50:30 1479

转载 常用FFMPEG命令

1.分离视频音频流 ffmpeg -i input_file -vcodec copy -an output_file_video //分离视频流 ffmpeg -i input_file -acodec copy -vn output_file_audio //分离音频流 2.视频解复用 ffmpeg -i test.mp4 -vcodec copy -an -f m4v test.2

2017-06-18 15:13:44 271

原创 opencv之模板匹配及应用 归一化 寻找最值

1)模板匹配 模板匹配是一项在一幅图像中寻找与另一幅模板图像最匹配(相似)部分的技术,模板匹配不是基于直方图的,而是通过在输入图像中滑动图像块(模板)同时比对相似度,来对模板和输入图像进行匹配的一种方法 应用: 1.目标查找定位 2.运动物体跟踪 3其他。。。 因为是模板匹配所以倒置倾斜 相似度会差好多 不适应角度和寻找 不适应尺度变换matchTemplate(InputArray

2017-06-18 13:22:04 8016 5

转载 ffmpeg关于timebase的理解

——:ffmpeg的分层结构 写这篇文章的时候先把ffmpeg分层问题大致说明一下,我们按照最常见的”转码程序”和”摄像头采集”以及”播放器”三个模型总结 1:转码 转码基本流程:flv格式数据->h264/aac数据->yuv/pcm数据->h264/aac数据->mp4格式数据 a:我们把flv格式数据或者mp4格式数据这一层叫做mux/demux层或者是复用层有些人习惯于叫做封装层,这

2017-06-18 09:53:37 2059

原创 opencv直方图相关及应用

1)直方图均衡化 直方图均衡化是灰度变换的一个重要应用,它是通过拉伸像素强度分布范围来增强图像对比度的一种方法,广泛应用于图像增强处理中。 直方图均衡化是直方图最典型的应用,是图像点运算的一种,对于一幅输入图像,通过运算产生一幅输出图像,点运算是指输出图像的每个像素点的灰度值由输入像素点决定 即: B(x,y)=f[A(x,y)] 直方图均衡化是通过灰度

2017-06-17 10:55:49 459

原创 opencv之直方图计算及绘制

图像直方图概述 直方图是对数据进行统计的一种方法,可以直观表现图像某属性的数据(频率)分布情况,包括灰度直方图,RGB直方图等 相关 概念及函数 &&dims :需要统计的特征数目 ,如只统计灰度值—dims=1,统计RGB值 –dims=3 &&bins:每个特征空间子区域段的数目,也可以称为组距(简单理解为直方图分成几个柱子组成)

2017-06-16 20:06:24 479 1

原创 opencv之霍夫圆变换

霍夫圆变换的基本原理和霍夫线变换大体上相似,只是点对应的二维极径极角空间被三维的圆心点x,y和半径r空间取代,如果用完全一样的方法运算量比较大,运行速速比较慢,所以采用“”霍夫梯度法“”来做圆变换 4.1霍夫梯度法的原理 1.首先对图像应用边缘检测,比如用canny边缘检测 2.然后,对边缘图像中的每一个非零点,考虑其局部梯度,就是用Sobel()函数计算x,y方向的Sobel一阶

2017-06-15 15:07:51 638

原创 opencv 之霍夫线变换及应用

霍夫变换是图像处理中的一种特征提取技术,该过程中在一个参数空间中通过计算累计结果的局部最大值得到一个符合该特定形状的集合作为霍夫变换的结果 霍夫变换在opencv中主要分两种 霍夫线变换–检测直线(线段) 霍夫圆变换–检测圆 用到的函数: HoughLines()–标准霍夫变换,多尺度霍夫变换 HoughLinesP()—累计概率霍夫变换 HoughC

2017-06-15 11:39:15 610

原创 opencv图像边缘检测

边缘检测检测 &&边缘检测可以提取图像重要轮廓信息,减少图像内容,可以用于分割图像,做特征 提取 &&边缘检测的一般步骤 滤波——(滤出噪声对检测边缘的影响) 滤高频 增强——(可以将像素邻域强度变化凸显出来–梯度算子)变化率 检测——(阈值方法确定边缘) &&常用边缘检测算子 Canny算子 Sobel算子 Scharr算子 Laplacian 算子 Ro

2017-06-14 15:09:51 496

原创 自学qt之临时文件临时目录 listWidget QStringList 打包程序 qml

在实际应用中,可能会使用到临时文件,qt当中提供了QTemporaryFile来操作临时文件 临时目录是存放临时文件的目录 ,在不同的平台可以使用QDir::tempPath()获得QListWidget QListWidgetItemQString cityName=ui->lineEdit->text(); QListWidgetItem *item=new QListWidgetItem

2017-06-14 11:08:17 670

原创 自学qt之添加动作图标 程序启动画面

工程中添加资源文件 步骤 右击项目 然后出来 add New qt Qt Resource file Name =res 然后打开 res.qrc 把资源放在工程目录下Add加一个前缀后 Add加文件 然后把资源全部加进去 Save All 全都保存 Action 添加图标 右击然后点编辑 工具栏添加图标 直接拖action 到工具

2017-06-14 10:35:40 609

原创 自学qt之新建菜单,文件 QtextEdit 打开保存文件 设置字体

主界面程序一定要使用QMainWindowQWidget 自定义部件单独完成一个工作用对话框 QDialogQObject::conncetmenuBar mainToolBar statusBar文件(&F)这样就可以使用快捷键 shift+f QACtion类似于button Signals void trigered(bool checked=false)

2017-06-13 21:20:03 2172

原创 自学qt之元对象系统 QCombo Box QMessageBox uic

在Qt当中提供了C++的扩展,提供了一种 元对象系统的机制,其中包含了信号和槽的内部机制,能够访问到QObject子类的元对象信息的功能 Q_OBJECT 宏生命了在每一个QObject子类中必须首先的内省函数 metaObject(),tr(),qt_metacall()以及其他一些函数 Qt的MOC工具生成了 Q_OBJECT生声明的所有函数和所有信号的信号 同时提供了connect()和

2017-06-13 17:04:54 525

原创 自学qt之启动一个额外的程序 QLineEdit相关

例如一个点击的槽 void Widget:on_submitButton_clicked() { // QProcess *myProcess=new QProcess(parent); // myProcess->start(program,arguments); // windows/system32/notepad.exe //一般系统的程序都可以打开

2017-06-13 16:29:00 305

原创 自学qt之控件认识 设置固定大小

QTabWidget 选项卡 QLabel 标签 可以承载一张图片的 QTextEdit 多行编辑器 QLineEdit 单行编辑器 QPushButton 按钮 QGroupBox 主框 ;//文本链接 QTableWidget 表格布件 QCheckBox 选择的框 QRadioButton

2017-06-13 15:42:21 8278

原创 自学qt之 进程和线程之间认识 线程汇总

进程就是一个一个的小程序 后台的一个一个程序就是一个个进程 同一时间可以执行不同一样的事 进程就好比办一件事 名字和状态 启动,执行,停止 。。。休眠 休眠 就好比暂停这个概念 程序之间相互切换 sleep 休眠被唤醒 执行程序之间的切换 oncreate onstart ://启动和执行 ondestroy //或者on end 或 finifs

2017-06-13 14:51:15 491

原创 opencv 图像膨胀腐蚀(二)

形态学其他操作: 开运算,闭运算,顶帽,黑帽,形态学梯度 基于膨胀腐蚀基础,利用morphologyEx()函数进行操作 void morphologyEx(InputArray src,OutputArray dst,int op,InputArray kernel,Point anchor=Point(-1,-1),int iterations=1,in

2017-06-12 17:31:36 659

原创 自学qt之 事件

QODBC 在微软下 QMTSQL 在linux事件触发导致了 信号的产生 事件时比较底层的概念 信号和槽是qt自己对应用程序管理的概念protected: void ketPresseventevent->ignore(0;//忽略掉事件信号 那么这个信号会让父对象来处理 if(event->key()=Qt::key_m)void mylineed:keyPres

2017-06-12 16:58:26 373

转载 自学qt之消息机制 解决中文乱码 模态和非模态

一个消息循环就是一个 巡逻兵,一直在巡逻,如果有消息产生,巡逻兵就会做出相应的反应 在exc()函数中,qt接收并处理用户和系统的事件并将它们传递给适当的窗口部件 新建gui应用 qt在控件上运行中文是不会产生乱码的 ui-pushButton_2->setText((“中国”));会出现乱码 解决办法 #include

2017-06-12 11:46:32 359

转载 自学qt之信号和槽

棉花虫子的博客 http://blog.sina.com.cn/s/articlelist_1610349225_1_1.html 所有的路径,命名什么的都不要出现中文 pro是工程文件 停靠窗口可以拖动 标签页 类似于qq那种Q_OBJECT //所谓宏就是用几个字代替了很多内容 //qt对c++的扩展功能 parent 是父对象

2017-06-12 10:47:28 328

原创 opencv 图像的膨胀和腐蚀(一)

膨胀腐蚀概述 **膨胀和腐蚀是形态学的操作,简单来说就是基于形状的一系列图像处理操作 **膨胀腐蚀是基于高亮部分(白色)操作的,膨胀是对高亮部分进行膨胀,类似“”领域扩张,腐蚀是高亮部分被腐蚀,类似领域被蚕食 膨胀腐蚀的应用和 功能: 消除噪声 分割独立元素或连接相邻元素 寻找图像中的明显极大值,极小值区域

2017-06-11 19:33:40 2158

原创 opencv-----图像阈值化

*图像阈值化 可以根据灰度差异来分割图像不同的部分 *阈值化处理的图像一般为单通道图像(灰度图) *阈值化参数的设置可以使用滑动条来debug *阈值化处理容易受到光照处理,处理时应注意 固定阈值:threshold() 自适应阈值:adaptiveThreshold() 1)固定阈值————threshold() 给定阈值进行阈值操作得到二值图(

2017-06-11 10:56:14 382

原创 opencv --图像滤波

图像滤波简介 **滤波实际上是信号处理的一个概念,图像可以看做是一个二维信号,其中像素点灰度值的高低表示信号的强弱 **高频:图像中变化剧烈的部分 **低频:图像中变化,平坦的部分 ** 根据图像高低频特性,设置高通和低通滤波器,高通滤波可以=检测图像中的尖锐,变化明显的地方,低通滤波可以让图像变得平滑,消除噪声干扰 **图像滤波在图像预处理方面应用广泛,图像滤波的好坏决定着后续处

2017-06-10 16:08:02 449

原创 opencv 图像的几何变换

图像缩放—resize() 1)resize()函数 CV_EXPORTS_W void resize(InputArray src,OutputArray dst,Size size,double fx=0,double fy=0,interpolation=INTER_LINEAR); **src:输入图像,Mat 类型即可 dst :输出图像,当非0时 由dsize确定尺寸

2017-06-09 16:22:16 370

原创 opencv ROI(感兴趣区域)与掩码操作 ROI图像融合

感兴趣区域ROI 1)ROI介绍 **ROI–感兴趣的区域 **一般为矩形区域 **能够定义分析重点,减少处理时间,增减精度 **定义方法: 使用Rect表示矩形区域或者用Range设定行列范围 ex1: Mat img=imread(“1.jpg”); Mat temp=imread(“logo.bmp”); Mat imgageROI=img(R

2017-06-08 22:33:19 4518

原创 opencv对比度亮度调整与通道分离

对比度亮度调整 1)原理介绍 g(x)=a*f(x)+b & 参数f(x)表示原图像像素 & 参数g(x)表示输出图像像素 & 参数a(a>0),被称为增益(gain),通常用来控制图像的对比度 亮的越来越亮 & 参数b通常被称为偏置(bias),通常用来控制图像的亮度 g(i,j)=a*f(i,j)+b 方法实

2017-06-08 19:58:40 1024

原创 opencv基本图像运算

图像算数运算 1)图像加法 //图像的类型大小必须是一样的 常用函数:+,add(),addWeighted() ex: Mat img1,img2; Mat dst; dst=img1+img2; add(img1,img2,dst);//忽略最后两个参数 addWeightwd(img1,0.5,img2,0.5,0,ds

2017-06-08 14:33:28 1463

原创 opencv访问图像像素及简单应用

图像在内存中的存储方式 注:opencv 的通道顺序是BGR 而不是RGB 可以用isCountinous()判断矩阵是否连续存储 访问图像中像素方法 1)动态地址计算访问Mat img=imread("1.jpg");Mat dst=img.clone();imshow("src",img);int rowNumber=img.rows;//行数int colNumber=img

2017-06-07 22:38:32 405

原创 ffmpeg()音频转码

pcm—aac ffmpeg基本流程都一样设备管理器,麦克风的名称#include"dshow.h"#include"libavdevice/avdevice.h"//获取设备static char *dup_wchar_to_ytf8(wchar_t *w){ char *s=NULL; int l=WideCharToMultiByte(CP_UTF8,0,w,-1,0,0

2017-06-04 17:19:59 1417

ffmpeg基础

ffmpeg基础

2017-08-30

空空如也

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

TA关注的人

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