
Linux 音视频开发
文章平均质量分 59
音频视频
rjszcb
不断学习变成牛
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
FFmpeg + SDL + QT实现简单是视频播放器(一)
/核心代码,没有赘述,qt使用mainwindow,博主没有贴出来,其实很简单,加几个pushButton空间,mainWindow就OK了。基于以上信息,根据FFmpeg库,解码步骤,自己编写了一个Class,用c++语言,自己封装几个函数,用于把视频解码成YUV数据。用SDL应该是更流畅,好用,不用qt的,Qimage,Qframe。这里之所以用qt,是用qt的线程,以及将qt的权柄,交给sdl,sdl创建一个页面出来了。本文是经过多年自己的项目经验,进行整理,加注释后的,方便理解。原创 2022-07-26 16:13:15 · 1253 阅读 · 3 评论 -
Linux 多进程间通信机制.之(管道、信号、共享内存/信号量/消息队列)海思平台应用层,,预先静态申请共享内存结合dma应用实例(三)
本文介绍了Linux多进程间IPC通信方式,重点分析了海思平台共享内存的应用实现。共享内存作为一种高效的进程通信方式,通过HI_MPI_SYS_Mmap函数将物理内存映射到虚拟地址空间,实现零拷贝数据传输。文章详细展示了海思平台共享内存的分配、映射、使用及释放流程,并提供了内存池预分配方案代码示例,通过初始化阶段预分配帧缓冲区提升系统性能。同时阐述了海思芯片中视频处理模块间的数据共享机制,包括物理地址传递和虚拟地址映射等关键技术,为海思平台高性能应用开发提供了实践参考。原创 2024-08-08 15:34:35 · 170 阅读 · 0 评论 -
Linux驱动,之camera的驱动v4L2(video for linux two)应用篇,LCD实时显示图像或图片(三)
可以实时监控,如果有缘人,看到,需要做这么一个项目,可以找我合作。其实我在做海思项目时,有vi,vo,vi可以直接绑定到vo,vo就是设置好了fb,lcd,绑定其实是直接将显存地址,给到vi,vi从用户空间的队列,读出数据直接写到到显存地址,就不用搬运数据了,hisi这一块,肯定是封装了,但是原理大概就是这样子。假如要事先播放图片,就需要写一个裸机,播放是关掉实时显示视频到cld,要封装一个函数,去某个文件夹下,读取刚才拍照的图片,显示到lcd,然后,根据下面的函数,点击触摸,播放上一张,下一张图片。原创 2023-11-23 19:25:13 · 398 阅读 · 0 评论 -
Linux驱动,之camera的驱动v4L2(video for linux two)框架,应用篇(一)
https://blog.csdn.net/mabin2005/category_9258316.htmlhttps://blog.csdn.net/MENGHUANBEIKE/article/details/102795635https://blog.csdn.net/m0_72838865/article/details/127012187原创 2023-11-23 19:50:44 · 1563 阅读 · 0 评论 -
Qt + FFmpeg,QImage 来简单实现视频播放
Linux下移植ffmpeg开源库,编译FFmpeg,移植到linux设备。还可以用QFram控件,来播放视频。Qt + FFmpeg实时视频播放。原创 2022-07-26 15:32:48 · 176 阅读 · 0 评论 -
基于Live555实现RtspServer及高清高码率视频传输优化
#https://www.cnblogs.com/haibindev/p/9503639.html_Message原创 2021-01-07 18:20:11 · 392 阅读 · 0 评论 -
hisi35xx保存yuv图片调试
hisi系列,yuv保存结构体, u64PhyAddr[3]是申请一个结构体类型时,分配的一个物理地址,当保存一帧图片到这个结构体时这帧图片分配的一端内存首地址,就放在这里,需要读取图片数据时,需要向内核,mmap,转换成虚拟地址放在 u64VirAddr[3]里,Y,U,V 地址分别放在0,1,2数组里。u32Stride是每一行占的长度,当设置为32对齐,或256对齐时,根据接入的相机的分辨率,会自动处理进行对齐,如640* 512,720* 576,如果不能满足要求,就回自动填充,进行原创 2022-05-30 15:45:40 · 802 阅读 · 1 评论 -
matlab球面投影(二)
matlab球面投影,想做一个全景相机,不知道,要做成啥样,于是在MATLAB先仿真一下,看下是个啥样子百度别人做的,复制下面的代码到MATLAB的命令串口下,,网上找了张全景图,可以是bmp,jpg,改程序就可以了回车运行就可以看到结果。复制下面代码时,下面的中文注释记得删除,MATLAB是会报错的,close all; clear all; clc[x,y,z]=sphere(50);A=imread('a.JPG'); //名字是自己命名的,记得改B=warp(x,y,-z,原创 2021-11-18 16:15:02 · 3000 阅读 · 0 评论 -
全景图,观察平面直线投影,不同视场大小,图像分辨率,显示分辨率算法处理后的图片效果
全景图,观察平面直线投影,不同视场大小,图像分辨率,显示分辨率的图片效果一、全景图,观察平面直线投影二、原始全尺寸图片展示1、相同图像分辨率,相同等比例缩放分辨率下,不同视场大小的效果。不同视角下能够看到不同宽度的物体。2、相同视场大小,相同等比例缩放分辨率下,不同的图像分辨率效果。3、相同视场大小,相同图像分辨率下,不同的缩放比例输,进行缩放的效果。4、鼠标控制3D旋转角度,展示的不同相机的不同角度下的画面。...原创 2021-11-17 17:46:43 · 2288 阅读 · 0 评论 -
hisi3520调试TLV320AIC3101耳机热插拔时产生爆破音问题(五)
hisi3520调试TLV320AIC3101耳机热插拔产生爆破音问题(五),有空写原创 2021-11-15 18:29:34 · 336 阅读 · 0 评论 -
Linux驱动,之I2S,ALSA音频驱动,移植codex,alsa-lib,aplay mplayer应用开发(四)
在第一第二第三篇章,讲了I2S协议,alsa驱动框架,这篇讲应用开发。一、配置codex相关的dts前面讲了soc需要外接一个codex播放声音。我们需要关心的是I2C,SAI(I2S)接口,修改设备树,接入到soc需要关注的就是三个节点,i2c节点,sdi音频接口,sound内核相关的,然后把驱动加载到内核alsa-lib就可以使用这些节点了。二、移植alsa-lib首选下载 首选下载 首选下载 首选下载 alsa-lib和 alsa-utils源码,下原创 2021-11-12 09:55:01 · 787 阅读 · 0 评论 -
为什么Linux的音频驱动位于sound目录下而不是driver/sound
为什么Linux的音频驱动位于sound目录下而不是driver/sound来自百度百科:https://zhidao.baidu.com/question/1766959028556770020.html1、早期的2.4内核所有的音频驱动和其他驱动一样都是位于drivers目录下的:drivers/sound2、到了2.5开发版内核,所有的音频驱动包括音频框架代码由drivers/sound移到了sound目录下:(1)2.6内核之前的git记录查找:http://git.kernel.org/?转载 2021-11-03 17:40:34 · 921 阅读 · 1 评论 -
鱼眼相机图像畸变原理(四)
预备中。。。。原创 2021-10-27 19:47:32 · 342 阅读 · 0 评论 -
双目相机融合(五)
预备中。。。。原创 2021-10-27 19:46:30 · 1766 阅读 · 0 评论 -
相机模型中的世界坐标系究竟指什么(三)
对于刚接触相机模型的同学来说,会从各个渠道被告知 相机模型中的世界坐标系是假想坐标系,可以被任意选取,当然这种描述是简洁且正确的,但这样描述会有些抽象,可任意选取代表了很强的随机性,这种抽象的描述及随机性往往对初学者的理解并不友好从概念上讲,为了定量描述物体间的 相对位置 关系,引入了坐标系。每个点在不同坐标系中的坐标值是不同的,但多个点间的 相对位置 或构成的 方向向量 并不随坐标系的改变而发生变化。所以,可以使用 任意坐标系 来定量刻画物体间的 相对位置 关系。为便于理解不同坐标系间的差异,引入转载 2021-10-23 14:55:42 · 848 阅读 · 0 评论 -
调焦、变焦的原理和清晰度的关系
一、小孔成像模型物距为u,像距为v,焦距为f,三者的关系为:1/v +1/u=1/f。根据该关系,不同的物距、像距、焦距的关系使得成像特点不同:1、当物距大于2倍焦距时,则像距在1倍焦距和2倍焦距之间,成倒立、缩小的实像。此时像距小于物距,像比物小,物像异侧。应用:照相机、摄像机。2、当物距等于2倍焦距时,则像距也在2倍焦距, 成倒立、等大的实像。此时物距等于像距,像与物大小相等,物像异侧。应用:测焦距。3、当物距小于2倍焦距、大于1倍焦距时,则像距大于2倍焦距, 成倒立、放大的实像。此时像距大于原创 2021-10-21 12:25:09 · 13303 阅读 · 2 评论 -
鱼眼镜头的成像原理到畸变矫正
https://blog.csdn.net/qq_16137569/article/details/112398976.1 镜头分类镜头类型 特征描述变焦镜头 在一定范围内可以变换焦距、从而得到不同宽窄的视场角,不同大小的影象和不同景物范围的照相机镜头。定焦镜头 标准镜头 视角在40°~45°之间,焦距长度与底片对角线长度基本相等。广角镜头 普通广角镜头 镜头焦距小于底片对角线长度的镜头称为广角镜头。普通广角镜头视角在90°以内。超广角镜头 视角在90° ~ 180°之间鱼眼镜头 视角超过18转载 2021-10-21 10:19:41 · 513 阅读 · 0 评论 -
光学成像模型\和物距、像距、焦距、三者关系\和世界坐标、相机坐标、图像坐标、像素坐标关系\和图像畸变标定处理(二)
来自百度百科:https://zhidao.baidu.com/question/55907940.html一、物距、相距、焦距、三者关系物距为u,像距为v,焦距为f,三者的关系为:1/v +1/u=1/f。根据该关系,不同的物距、像距、焦距的关系使得成像特点不同:1、当物距大于2倍焦距时,则像距在1倍焦距和2倍焦距之间,成倒立、缩小的实像。此时像距小于物距,像比物小,物像异侧。应用:照相机、摄像机。2、当物距等于2倍焦距时,则像距也在2倍焦距, 成倒立、等大的实像。此时物距等于像距,像与物大小相原创 2021-10-20 16:29:24 · 26581 阅读 · 0 评论 -
相机组成、镜头焦距、视场角、清晰度的概念(一)
镜头中心点到成像平面对角线两端所形成的夹角就是镜头视角,对于相同的成像面积,镜头焦距越短,其视角就越大。对于镜头来说,视角主要是指它可以实现的视角范围,当焦距变短时视角就变大了,可以拍出更宽的范围,但这样会影响较远拍摄对象的清晰度。当焦距变长时,视角就变小了,可以使较远的物体变得清晰,但是能够拍摄的宽度范围就变窄了以50mm镜头,全画幅机身为例。镜头焦距 F = 50mm镜头视角宽度 A全画幅相机感光器对角线长度约为43mm。视角宽度A可以等效于底边为43mm高为50mm的等腰三角形的顶角的大小。tan原创 2021-10-20 14:10:50 · 5769 阅读 · 0 评论 -
视频接口的种类及数据类型
视频接口的种类,有很多,有模拟信号的,有数字信号的,数字信号,又有差分串行的,并行的数字信号接口,有,RGB, VGA, HDMI, MIPI, LVDS,DVI,模拟信号接口,PAL,CVBS,原创 2021-10-20 12:20:48 · 1955 阅读 · 0 评论 -
Linux驱动. 之I2S或IIS,声音的原理,hisi3520调试TLV320AIC3101音频驱动(一)
文档说明,在设计为对讲功能时,规定,要用两组混合使用,是因为hisi的soc里面电路设计,只能这么玩,我使用的是I2S2,和I2S1,一起组合。声音是个模拟信号,连续的波形,需要通过adc芯片,对输入的模拟量,离散数字化,根据设置的采样频率,抽样采集电压信号,转化为数字信号0,1,2,3,4数字,来表示电压强度的值,最终保存为二进制0,1,采集到一帧数据后,芯片通过编码,传输到soc主控,然后解码,由数字信号,转化还原模拟信号,由喇叭播放声音。刚开始接触音频,我也搞错了,看手册后,才明白这个意思。原创 2021-09-12 14:55:56 · 5297 阅读 · 0 评论 -
hi3520/hi3521视频解码vdec例程分析
一、vdec解码例程1、海思提供的视频解码,例程代码,本人,亲测试过,能跑起来,并解码成功,先上图,我是用海思提供的tool工具,dump代码,把yuv数据,保存为yuv格式图片,然后使用YUVPlayer工具,查看图片,下图是hisi 的sdk里的h264解码的图片。2、运行过程:在hisi的代码中,有很多模块的例程,找到vdec代码,把h264的api代码,拷贝出来在我们自己的工程中,不可能有两个main函数吧,自己写一个线程,运行这个api,就可以了。然后就是这个api的代码分析了原创 2021-08-02 12:39:32 · 2260 阅读 · 0 评论 -
yuv422,yuv420,yuv444的区别
一、yuv planar和packed的区别。YUV格式有两大类:planar和packed。PIXEL_FORMAT_YVU_SEMIPLANAR_422,PIXEL_FORMAT_YVU_SEMIPLANAR_420,PIXEL_FORMAT_YVU_SEMIPLANAR_444,PIXEL_FORMAT_YUV_SEMIPLANAR_422,PIXEL_FORMAT_YUV_SEMIPLANAR_420,PIXEL_FORMAT_YUV_SEMIPLANAR_444,PIXEL_F原创 2021-07-14 16:19:07 · 24618 阅读 · 0 评论 -
matlab鱼眼镜头,普通镜头,单目双目相机标定校正(四)
1、打开软件,找到工具箱有两个,一个是单个镜头标定,一个是双镜头标定,所以我们选第一个2、导入图图片一、参数设置一、校正前二、校正后三、校正前四、校正后五、导出参数通过show ,可以切换校正前后的效果图像,导出参数看erport...原创 2021-07-05 10:25:34 · 6565 阅读 · 10 评论 -
SDI信号和CVBS接口区别
1、下面的图是HDMI,AUDIO,CVBS,SDI接口图,2、SDI: SDI接口又称数字串行接口,串行接口就是把数据字的各个比特以及相应的数据通过单一通道顺序传送的接口由于串行数字信号的数据率很高。3、CVBS:CVBS信号,中文名字叫“复合同步视频广播信号”,以模拟波形来传输数据。复合视频包含色差(色调和饱和度)和亮度(光亮)信息,并将它们同步在消隐脉冲中,用同一信号传输。由于SDI视频信号被分为工程级和普通级,所以根据工艺、应用技术和功能的不同,工程级SDI转CVBS和普通的SDI转CV原创 2021-06-23 16:22:30 · 8448 阅读 · 1 评论 -
yuv、rgb 、yCbCr以及转换
一、和rgb之间换算公式的差异yuv<–>rgbY’= 0.299R’ + 0.587G’ + 0.114*B’U’= -0.147R’ - 0.289G’ + 0.436B’ = 0.492(B’- Y’)V’= 0.615R’ - 0.515G’ - 0.100B’ = 0.877(R’- Y’)R’ = Y’ + 1.140*V’G’ = Y’ - 0.394U’ - 0.581V’B’ = Y’ + 2.032*U’yCbCr<–>rgbY’ = 0.257转载 2021-06-23 12:13:50 · 1436 阅读 · 0 评论 -
Hi3521DV100 编译环境和SDK安装
一、安装交叉编译工具链\Hi3521DV100R001C01SPC040\ReleaseDoc\ReleaseDoc\zh\01.software\board\目录下找到指导文档,PDF文件1.3.2 安装交叉编译工具链将hisi提供的SDK包解压开,在Hi3521DV100R001C01SPC040/arm-hisiv500-linux,有一个压缩包,解压开得到交叉编译工具包执行命令,sudo ./arm-hisiv500-linux.install,进行安装,安装完将会看到在PATH=/o原创 2021-06-22 14:20:04 · 820 阅读 · 1 评论 -
Gamma校正原理及实现(一)
hisi3559提供的hipq工具,可以看到调试伽马参数曲线的变化,当系数小于1时,对暗区提升比较明显,对亮区提升并不多,这是我们需要的结果,如下三张图,不同系统,曲线弯曲度不一样,对图像的提升效果也不一样,根据实际需求,调整参数,一:二;三:gamma校正原理: 假设图像中有一个像素,值是 200 ,那么对这个像素进行校正必须执行如下步骤: 1. 归一化 :将像素值转换为 0 ~ 1 之间的实数。 算法如下 : ( i + 0. 5)/256 这里包含 1 个除法和 1 个加.原创 2021-06-17 17:41:48 · 4444 阅读 · 0 评论 -
直方图均衡提高图像对比度亮度hisi3559av100(四)
// 2. EqualizeHist 直方图均衡实现过程,hisi3559av100为例, typedef struct hiVIDEO_FRAME_S { HI_U32 u32Width; HI_U32 u32Height; VIDEO_FIELD_E enField; PIXEL_FORMAT_E enPixelFormat; VIDEO_FORMAT_E enVideoFor原创 2021-06-17 17:05:37 · 570 阅读 · 1 评论 -
直方图均衡化算法原理与实现(三)
直方图均衡化算法原理与实现工作后,对原来学习的一些基本图像处理算法有了一些新的认识,比如Canny 算法,直方图均衡化算法等,今天就来说说直方图均衡化算法。直方图均衡化原理我们知道提高图像对比度的变换函数f(x)需要满足一下条件:f(x)在0<=x<=L−1上单调递增(不要求严格单调递增),其中L表示灰度级(L=256)f(x)的范围是[0,L−1]我们知道当图像直方图完全均匀分布的时候,此时图像的熵是最大的(随机变量每个值的概率都相同时,概率最大),图像对比度是最大的。所以,理想情转载 2021-06-17 16:46:33 · 300 阅读 · 0 评论 -
直方图均衡化原理(二)
项目中遇到要直方图均衡化,在网上找到如下介绍:博主忘记是谁了,转载的,谢谢!直方图均衡化算法分为三个步骤,第一步是统计直方图每个灰度级出现的次数,第二步是累计归一化的直方图,第三步是计算新的像素值。第一步:for(i=0;i<height;i++){ for(j=0;j<width;j++){ n[s[i][j]]++; }}for(i=0;i<L;i++){ p[i]=n[i]/(width*height);}这里,n[i]表示的是灰度原创 2021-06-17 16:41:22 · 167 阅读 · 0 评论 -
直方图均衡化原理(一)
直方图均衡化的作用是图像增强。有两个问题比较难懂,一是为什么要选用累积分布函数,二是为什么使用累积分布函数处理后像素值会均匀分布。第一个问题。均衡化过程中,必须要保证两个条件:①像素无论怎么映射,一定要保证原来的大小关系不变,较亮的区域,依旧是较亮的,较暗依旧暗,只是对比度增大,绝对不能明暗颠倒;②如果是八位图像,那么像素映射函数的值域应在0和255之间的,不能越界。综合以上两个条件,累积分布函数是个好的选择,因为累积分布函数是单调增函数(控制大小关系),并且值域是0到1(控制越界问题),所以直方图均衡原创 2021-06-17 16:38:12 · 608 阅读 · 0 评论 -
海思平台HI35XX系列内存设置
本文转载来自:https://blog.csdn.net/li_wen01/article/details/86547859两个命令,对查看内存有用:cat /proc/meminfocat /proc/media-mem海思平台的内存分为两部分,一部分给系统使用,另外的一部分给多媒体使用。可以通过cat /proc/meminfo查看系统内存和cat /proc/media-mem 查看多媒体内存使用情况。/proc # cat /proc/meminfo MemTotal:原创 2021-06-17 16:33:26 · 550 阅读 · 0 评论 -
图像增强-直方图均衡
直方图均衡化的作用是图像增强。有两个问题比较难懂,一是为什么要选用累积分布函数,二是为什么使用累积分布函数处理后像素值会均匀分布。第一个问题。均衡化过程中,必须要保证两个条件:①像素无论怎么映射,一定要保证原来的大小关系不变,较亮的区域,依旧是较亮的,较暗依旧暗,只是对比度增大,绝对不能明暗颠倒;②如果是八位图像,那么像素映射函数的值域应在0和255之间的,不能越界。综合以上两个条件,累积分布函数是个好的选择,因为累积分布函数是单调增函数(控制大小关系),并且值域是0到1(控制越界问题),所以直方图均衡原创 2021-05-12 11:04:29 · 361 阅读 · 0 评论 -
灰度到伪彩色的转换公式
灰度到伪彩色的转换公式:f表示某一像素点的灰度if 0<=f<63 thenbeginr :=0; g :=254-4f; b :=255;end;if 64<=f<127 thenbeginr :=0; g :=4f-254; b :=510-4f;end;if 128<=f<191 thenbeginr :=4f-510; g :=255; b :=0;end;if 192<=f<=255 thenbeginr :=255;原创 2021-03-19 17:24:40 · 1264 阅读 · 0 评论 -
隔行的BT.656标准信号
凡是做模拟信号采集的,很少不涉及BT.656标准的,因为常见的模拟视频信号采集芯片都支持输出BT.656的数字信号,那么,BT.656到底是何种格式呢?本文将主要介绍 标准的 8bit BT656(4:2:2)YCbCr SDTV(标清) 数字视频信号格式,主要针对刚刚入门模拟视频采集的初学者入门之用。这是我采集的pal 720x576的波形蓝色的是正常的一行波形,下面黄色的波形在显示器显示是3块相同的图像的不正常的波形,帧的概念(Frame)一个视频序列是由N个帧组成的,采集图像的时候一般原创 2021-03-09 11:22:13 · 2617 阅读 · 4 评论 -
CVBS接口,PAL制式信号
CVBS接口的信号,分为PAL制式CVBS信号,和NTSC制式的CVBS信号原创 2021-03-02 10:06:18 · 5791 阅读 · 0 评论 -
海思Hi3519A MPP从入门到精通(一 系统概述)
转载:https://blog.csdn.net/ywcpig/article/details/85130217?utm_medium=distribute.pc_relevant.none-task-blog-OPENSEARCH-15.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-15.control概述海思提供的媒体处理软件平台(Media Process Platform,简称转载 2021-01-09 15:19:45 · 523 阅读 · 0 评论 -
ubuntu下安装vlc 播放h264,h265文件
ubuntu下播放h264,h265文件vlc可以播放h264,h265文件, 并且既可以在win下,可以在ubuntu下安装vlc在ubuntu软件中心,搜索vlc,既可以看到vlc media player,点击安装对于h264结尾的文件,可以直接使用命令播放vlc *.h264对于h265文件, 我安装的时v2.1.6版本,不支持h265, 需要安装一库,采用ppa的方式sudo add-apt-repository ppa:strukturag/libde265sudo aptitu原创 2021-01-09 15:32:08 · 3345 阅读 · 0 评论