Linux 音视频开发
文章平均质量分 54
音频视频
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 · 1354 阅读 · 3 评论
-
从venc编码通道,调用ffmpag封装为mp4文件,写入到sd卡
从venc编码通道,调用ffmpag封装为mp4文件,写入到sd卡。原创 2025-11-24 21:51:44 · 195 阅读 · 0 评论 -
hisi35 vi send vo失败记录原因
成功得时候,send是有数字变化的。int_rare帧率也是对的。在调试vi vo时,有时候需要测试vo,直接将vi数据送到vo,一、hisi35 vi send vo失败记录原因。如果vi到vo的,像素格式不对,vo就会没数据。原创 2025-10-15 00:43:03 · 235 阅读 · 0 评论 -
hisi35xx,hisi3403,uvc,免驱usb摄像头sensor调试
hisi35xx,hisi3403,uvc,免驱usb摄像头sensor调试。原创 2025-09-30 11:58:33 · 136 阅读 · 0 评论 -
hsync,vsync,pclk,每帧时间,信号宽度
对于 1080p(1920×1080)、60 帧(60fps)的视频时序,我们可以根据VESA CVT(Coordinated Video Timing)标准或HDMI 规范计算关键参数(像素时钟、同步信号宽度、总行 / 列数等)。原创 2025-09-30 11:35:12 · 232 阅读 · 0 评论 -
hisi35xx,dc接口调试,dvp时序分析,脉冲模式,行有效信号模式
hisi35xx,dc接口调试,dvp时序分析,脉冲模式,行有效信号模式。原创 2025-09-25 17:16:11 · 120 阅读 · 0 评论 -
hisi35xx,vi,vo,get_frame,获取数据,或模拟输入数据,调试,以及保存为图片
hisi35xx,vi,vo,get_frame,获取数据,或模拟输入数据,调试,以及保存为图片。原创 2025-09-25 17:12:24 · 103 阅读 · 0 评论 -
hisi35xx,hisi304,ss928v100,vi,vo,dvp,mipi接口调试,以及透传调试总结
hisi35xx,hisi304,ss928v100,vi,vo,dvp,mipi接口调试,以及透传调试总结。原创 2025-09-25 17:06:54 · 123 阅读 · 0 评论 -
hisi35xx模拟输入,send to vo ,例子
【代码】hisi35xx模拟输入,send to vo ,例子。原创 2025-09-18 15:26:32 · 126 阅读 · 0 评论 -
音视频之.MP4(MPEG-4)封装格式
MP4文件格式解析与实现 MP4是一种基于MPEG-4标准的音视频容器格式,采用box结构组织数据。每个box包含header(大小和类型标识)和body,通过树形结构存储媒体信息。关键box包括: ftyp:文件类型标识 moov:存储元数据(需前置以优化在线播放) mdat:包含实际媒体数据 技术实现上,MP4使用大端字节序,提供了C语言示例代码展示如何创建基本box结构(如ftyp、mvhd等),包含内存分配、数据写入和文件输出功能。该格式支持多种编解码器(H.264、AAC等),广泛应用于流媒体、光原创 2021-05-13 10:34:37 · 177 阅读 · 0 评论 -
ffmpeg播放mp4文件,根据进度条给的时间,快进快退
本文介绍了FFmpeg中实现MP4文件快进快退功能的核心技术。通过avformat_seek_file函数将用户输入时间转换为时间戳,实现精确定位。关键点包括:1)依赖关键帧定位,确保解码可靠性;2)利用MP4的moov原子索引表(stts、stsc等)实现时间戳到文件位置的映射;3)首次快进时若moov位于文件尾部需扫描构建索引,可通过movflags优化;4)需同步处理音视频流保持同步。文中还提供了C语言实现代码,包括FFmpeg初始化、媒体文件打开、seek操作和播放线程的实现流程,展示了如何结合索引原创 2022-01-10 11:07:14 · 659 阅读 · 0 评论 -
记录Hi3559平台,HiTool ISP调试
本文介绍了海思Hi3559平台的ISP(图像信号处理器)功能及其应用。ISP主要用于提升摄像头采集的图像质量,涉及硬件适配、参数配置和算法调优。核心功能包括图像预处理(坏点修复、黑电平校正等)、画质优化(自动曝光、对焦、白平衡等)以及特殊处理(宽动态、降噪等)。调试中需使用海思提供的工具进行实时参数调整和性能监控,并注意传感器兼容性和资源分配。文章还提供了MIPI→ISP→VI链路绑定的示例代码,展示了初始化、配置和数据获取的关键步骤。Hi3559的ISP功能丰富,适用于安防监控、车载视觉等场景,需根据具体原创 2024-10-28 14:39:49 · 858 阅读 · 0 评论 -
Linux 多进程间通信机制.之(管道、信号、共享内存/信号量/消息队列)海思平台应用层,,预先静态申请共享内存结合dma应用实例(三)
本文介绍了Linux多进程间IPC通信方式,重点分析了海思平台共享内存的应用实现。共享内存作为一种高效的进程通信方式,通过HI_MPI_SYS_Mmap函数将物理内存映射到虚拟地址空间,实现零拷贝数据传输。文章详细展示了海思平台共享内存的分配、映射、使用及释放流程,并提供了内存池预分配方案代码示例,通过初始化阶段预分配帧缓冲区提升系统性能。同时阐述了海思芯片中视频处理模块间的数据共享机制,包括物理地址传递和虚拟地址映射等关键技术,为海思平台高性能应用开发提供了实践参考。原创 2024-08-08 15:34:35 · 224 阅读 · 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 · 475 阅读 · 0 评论 -
Linux驱动,之camera的驱动v4L2(video for linux two)框架,应用篇(一)
https://blog.youkuaiyun.com/mabin2005/category_9258316.htmlhttps://blog.youkuaiyun.com/MENGHUANBEIKE/article/details/102795635https://blog.youkuaiyun.com/m0_72838865/article/details/127012187原创 2023-11-23 19:50:44 · 1834 阅读 · 0 评论 -
Qt + FFmpeg,QImage 来简单实现视频播放
Linux下移植ffmpeg开源库,编译FFmpeg,移植到linux设备。还可以用QFram控件,来播放视频。Qt + FFmpeg实时视频播放。原创 2022-07-26 15:32:48 · 219 阅读 · 0 评论 -
基于Live555实现RtspServer及高清高码率视频传输优化
#https://www.cnblogs.com/haibindev/p/9503639.html_Message原创 2021-01-07 18:20:11 · 407 阅读 · 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 · 891 阅读 · 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 · 3060 阅读 · 0 评论 -
全景图,观察平面直线投影,不同视场大小,图像分辨率,显示分辨率算法处理后的图片效果
全景图,观察平面直线投影,不同视场大小,图像分辨率,显示分辨率的图片效果一、全景图,观察平面直线投影二、原始全尺寸图片展示1、相同图像分辨率,相同等比例缩放分辨率下,不同视场大小的效果。不同视角下能够看到不同宽度的物体。2、相同视场大小,相同等比例缩放分辨率下,不同的图像分辨率效果。3、相同视场大小,相同图像分辨率下,不同的缩放比例输,进行缩放的效果。4、鼠标控制3D旋转角度,展示的不同相机的不同角度下的画面。...原创 2021-11-17 17:46:43 · 2394 阅读 · 0 评论 -
hisi3520调试TLV320AIC3101耳机热插拔时产生爆破音问题(五)
hisi3520调试TLV320AIC3101耳机热插拔产生爆破音问题(五),有空写原创 2021-11-15 18:29:34 · 352 阅读 · 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 · 988 阅读 · 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 · 971 阅读 · 1 评论 -
鱼眼相机图像畸变原理(四)
预备中。。。。原创 2021-10-27 19:47:32 · 363 阅读 · 0 评论 -
双目相机融合(五)
预备中。。。。原创 2021-10-27 19:46:30 · 1850 阅读 · 0 评论 -
相机模型中的世界坐标系究竟指什么(三)
对于刚接触相机模型的同学来说,会从各个渠道被告知 相机模型中的世界坐标系是假想坐标系,可以被任意选取,当然这种描述是简洁且正确的,但这样描述会有些抽象,可任意选取代表了很强的随机性,这种抽象的描述及随机性往往对初学者的理解并不友好从概念上讲,为了定量描述物体间的 相对位置 关系,引入了坐标系。每个点在不同坐标系中的坐标值是不同的,但多个点间的 相对位置 或构成的 方向向量 并不随坐标系的改变而发生变化。所以,可以使用 任意坐标系 来定量刻画物体间的 相对位置 关系。为便于理解不同坐标系间的差异,引入转载 2021-10-23 14:55:42 · 884 阅读 · 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 · 14252 阅读 · 2 评论 -
鱼眼镜头的成像原理到畸变矫正
https://blog.youkuaiyun.com/qq_16137569/article/details/112398976.1 镜头分类镜头类型 特征描述变焦镜头 在一定范围内可以变换焦距、从而得到不同宽窄的视场角,不同大小的影象和不同景物范围的照相机镜头。定焦镜头 标准镜头 视角在40°~45°之间,焦距长度与底片对角线长度基本相等。广角镜头 普通广角镜头 镜头焦距小于底片对角线长度的镜头称为广角镜头。普通广角镜头视角在90°以内。超广角镜头 视角在90° ~ 180°之间鱼眼镜头 视角超过18转载 2021-10-21 10:19:41 · 576 阅读 · 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 · 28176 阅读 · 0 评论 -
相机组成、镜头焦距、视场角、清晰度的概念(一)
镜头中心点到成像平面对角线两端所形成的夹角就是镜头视角,对于相同的成像面积,镜头焦距越短,其视角就越大。对于镜头来说,视角主要是指它可以实现的视角范围,当焦距变短时视角就变大了,可以拍出更宽的范围,但这样会影响较远拍摄对象的清晰度。当焦距变长时,视角就变小了,可以使较远的物体变得清晰,但是能够拍摄的宽度范围就变窄了以50mm镜头,全画幅机身为例。镜头焦距 F = 50mm镜头视角宽度 A全画幅相机感光器对角线长度约为43mm。视角宽度A可以等效于底边为43mm高为50mm的等腰三角形的顶角的大小。tan原创 2021-10-20 14:10:50 · 6052 阅读 · 0 评论 -
视频接口的种类及数据类型
视频接口的种类,有很多,有模拟信号的,有数字信号的,数字信号,又有差分串行的,并行的数字信号接口,有,RGB, VGA, HDMI, MIPI, LVDS,DVI,模拟信号接口,PAL,CVBS,原创 2021-10-20 12:20:48 · 2041 阅读 · 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 · 5717 阅读 · 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 · 2341 阅读 · 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 · 26724 阅读 · 0 评论 -
matlab鱼眼镜头,普通镜头,单目双目相机标定校正(四)
1、打开软件,找到工具箱有两个,一个是单个镜头标定,一个是双镜头标定,所以我们选第一个2、导入图图片一、参数设置一、校正前二、校正后三、校正前四、校正后五、导出参数通过show ,可以切换校正前后的效果图像,导出参数看erport...原创 2021-07-05 10:25:34 · 6764 阅读 · 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 · 8834 阅读 · 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 · 1518 阅读 · 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 · 845 阅读 · 1 评论 -
Gamma校正原理及实现(一)
hisi3559提供的hipq工具,可以看到调试伽马参数曲线的变化,当系数小于1时,对暗区提升比较明显,对亮区提升并不多,这是我们需要的结果,如下三张图,不同系统,曲线弯曲度不一样,对图像的提升效果也不一样,根据实际需求,调整参数,一:二;三:gamma校正原理: 假设图像中有一个像素,值是 200 ,那么对这个像素进行校正必须执行如下步骤: 1. 归一化 :将像素值转换为 0 ~ 1 之间的实数。 算法如下 : ( i + 0. 5)/256 这里包含 1 个除法和 1 个加.原创 2021-06-17 17:41:48 · 4608 阅读 · 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 · 599 阅读 · 1 评论
分享