![](https://img-blog.csdnimg.cn/20191124154851763.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Qt/C++项目作品
文章平均质量分 86
Qt编写的项目作品 公众号:Qt实战/Qt入门和进阶
feiyangqingyun
欢迎关注公众号:Qt实战/Qt入门和进阶(各种开源作品、经验整理、项目实战技巧,专注Qt/C++软件开发,视频监控、物联网、工业控制、嵌入式软件、国产化系统应用软件开发)
展开
-
Qt/C++项目作品大全(性能凶残/祖传原创/界面精美/跨平台)
Qt编写的项目作品大全,包括自定义控件大全、属性设计器(组态)、输入法、物联网综合管理平台、可视化大屏电子看板系统、视频监控系统、视频综合应用示例、音频综合应用示例、本地摄像头应用示例、智能安防集中管理平台、界面开发大全、视频监控Onvif综合示例、自定义曲线图柱状图、数据导入导出(xls/pdf)及打印示例、图片及视频TCP/UDP网络传输、地图综合应用(在线+离线+区域+下载)、网络请求客户端/服务器、推流综合应用示例、多线程文件传输等原创 2021-01-20 18:37:22 · 156832 阅读 · 78 评论 -
Qt/C++编写地图应用/离线地图下载/路径规划/轨迹回放/海量点/坐标转换
这个地图组件写了很多年了,最初设计的不叫粗糙,最开始只是为了满足项目需要,并没有考虑太多拓展性,比如最初都是按照百度地图写死在代码中,经过这几年大量的现场实际应用,以及大量的用户提出的改进意见,逐渐萌生了彻底重新编写对应地图相关的代码,比如基类子类的设计,各种功能接口通过js函数交互,而不是一堆代码写在网页中。原创 2024-07-03 08:51:15 · 1435 阅读 · 2 评论 -
Qt/C++推流组件使用说明
勾选对应的模块,重启后会显示对应的模块在主界面中,重启应用。这个功能主要是为了方便有些用户希望简单点,不需要的模块就不要在界面上显示。原创 2024-04-09 09:45:18 · 1190 阅读 · 1 评论 -
这可能是国内Qt/C++界最受欢迎开源项目之一/5.8Kstar/持续迭代更新
本项目大概在2020年开始的,大概在2022年重写了一遍,主要是分门别类存放。本项目主要是QWidget编写的一些开源的demo,支持Qt4、Qt5、Qt6,支持任意系统,预计会有100多个,一直持续更新完善,代码简洁易懂注释详细,每个都是独立项目,非常适合初学者,代码随意传播使用。不仅有界面UI相关,还有串口网络通信组件比如串口调试助手、网络调试助手等。这不是关键,关键是一直在持续更新迭代和新增。这应该也是受欢迎程序这么高的主要原因。原创 2024-03-25 14:25:03 · 1043 阅读 · 0 评论 -
Qt/C++通用跨平台Onvif工具/支持海康大华宇视华为天地伟业等/云台控制/预置位管理/工程调试利器
在安防视频监控行业,Onvif作为国际标准,几乎主要的厂商都支持,不仅包含了国内的厂商,也包括主要的国际厂商,由于有了这个标准的存在,使得不同设备不同安防平台之间,能够接入各个厂家的硬件设备,互通有无,你中有我我中有你,实现良性竞争。ONVIF是一个全球性的开放式行业协议,其目标是促进开发和使用基于物理IP的安全产品接口的全球开放标准。ONVIF创建了一个视频监控和其他物理安全领域的IP产品如何进行相互通信的标准。原创 2024-03-23 10:22:11 · 1285 阅读 · 0 评论 -
Qt/C++监控推流设备推流/延迟极低/实时性极高/rtsp/rtmp推流/hls/flv/webrtc拉流/调整分辨率降低带宽
算下来这个推流的项目作品写了有四年多了,最初第一个版本只有文件点播的功能,用的纯QTcpSocket通信实现,属于比较简单的功能。由于文件点播只支持文件形式的推流,不支持网络流或者本地设备采集,所以迫切需要打破这个瓶颈,而后加入核心的网络推流功能,这也是本项目的核心功能,不仅支持各种各样的流媒体服务,推流这块支持文件、网络音视频流、本地设备采集、本地桌面采集。自定义各种参数,视音频同步推流等,不断的迭代和完善。原创 2024-03-17 10:13:39 · 2183 阅读 · 1 评论 -
Qt编写手机端视频播放器/推流工具/Onvif工具
一、视频播放器同时支持多种解码内核,包括qmedia内核(Qt4/Qt5/Qt6)、ffmpeg内核(ffmpeg2/ffmpeg3/ffmpeg4/ffmpeg5/ffmpeg6)、vlc内核(vlc2/vlc3)、mpv内核(mpv1/mp2)、mdk内核、海康sdk、easyplayer内核等。非常完善的多重基类设计,新增一种解码内核只需要实现极少的代码量,就可以应用整套机制,极易拓展。同时支持多种画面显示策略,自动调整(原始分辨率小于显示控件尺寸则按照原始分辨率大小显示,否则等比缩放)、等比原创 2024-01-26 08:16:01 · 1505 阅读 · 0 评论 -
Qt编写linux系统onvif工具(支持预览/云台/预置位/录像等)
【代码】Qt编写linux系统onvif工具(支持预览/云台/预置位/录像等)原创 2024-01-24 10:02:35 · 1321 阅读 · 0 评论 -
Qt采集本地摄像头推流成rtsp/rtmp(可网页播放/支持嵌入式linux)
一、功能特点支持各种本地视频文件和网络视频文件。支持各种网络视频流,网络摄像头,协议包括rtsp、rtmp、http。支持将本地摄像头设备推流,可指定分辨率和帧率等。支持将本地桌面推流,可指定屏幕区域和帧率等。自动启动流媒体服务程序,默认mediamtx(原rtsp-simple-server),可选用srs、EasyDarwin、LiveQing、ZLMediaKit等。可实时切换预览视频文件,可切换视频文件播放进度,切换到哪里就推流到哪里。推流的清晰度和质量可调。可动态添加文件、目录、原创 2024-01-22 09:56:24 · 1297 阅读 · 0 评论 -
Qt/C++自定义界面大全/20套精美皮肤/26套精美UI界面/一键换肤/自定义颜色/各种导航界面
这个系列对应自定义控件大全,一个专注于控件的编写,一个专注于UI界面的编写,程序员有两大软肋,一个是忌讳别人说自己的程序很烂很多bug,一个就是不擅长UI,基本上配色就直接rgb,对于第一点,只要放松心态,直面自己的不足,不断改进,才能问鼎武林至尊。至于第二点,因为程序员擅长的是逻辑思维,99%的人几乎都没有美学概念,所以你就需要借鉴,去UI中国多看看专业UI设计师设计的各种精美界面,你会发现新大陆,搭配拾色器,结合QSS和painter绘制两大法宝,做起界面来得心应手溜得起飞不要太high。原创 2024-01-18 08:29:22 · 3458 阅读 · 2 评论 -
Qt/C++中英输入法/嵌入式输入法/小数字面板/简繁切换/特殊字符/支持Qt456
在嵌入式板子上由于没有系统层面的输入法支持,所以都绕不开一个问题,那就是在需要输入的UI软件中,必须提供一个输入法来进行输入,大概从Qt5.7开始官方提供了输入法的源码,作为插件的形式加入到Qt中,这里需要特别提示的是,该源码是gpl的,商业应用对这个比较不感冒,可能更愿意自己基于Qt来实现一个。用纯Qt写输入法,如果不涉及到中文输入,那还是非常简单的,只需要将按钮上的字符用键盘事件发给焦点的控件即可。原创 2024-01-16 08:49:36 · 1744 阅读 · 2 评论 -
Qt/C++摄像头采集/二维码解析/同时采集多路/图片传输/分辨率帧率可调/自动重连
本地摄像头的采集可以有多种方式,一般本地摄像头会通过USB的方式连接,在嵌入式上可能大部分是CMOS之类的软带的接口,这些都统称本地摄像头,和网络摄像头最大区别就是一个是通过网络来通信,一个是直接本地通信。原创 2024-01-05 08:56:02 · 1932 阅读 · 1 评论 -
Qt/C++控件设计器/属性栏/组态/可导入导出/中文属性/串口网络/拖曳开发
一、功能特点自动加载插件文件中的所有控件生成列表,默认自带的控件超过120个。拖曳到画布自动生成对应的控件,所见即所得。右侧中文属性栏,改变对应的属性立即应用到对应选中控件,直观简洁,非常适合小白使用。独创属性栏文字翻译映射机制,效率极高,可以非常方便拓展其他语言的属性栏。所有控件的属性自动提取并显示在右侧属性栏,包括枚举值下拉框等。支持手动选择插件文件,外部导入插件文件。可以将当前画布的所有控件配置信息导出到xml文件。可以手动选择xml文件打开控件布局,自动根据xml文件加载控件。可原创 2023-12-24 08:20:50 · 941 阅读 · 0 评论 -
Qt/C++视频监控Onvif工具/组播搜索/显示监控画面/图片参数调节/OSD管理/祖传原创
能够写出简单易用而又不失功能强大的组件,一直是我的追求,简单主要体现在易用性,不能搞一些繁琐的流程和一些极难使用的API接口,或者一些看不懂的很难以理解的函数名称,一定是要越简单越好。功能强大主要体现在功能的完整性,常规的接口肯定是必备的,然后在默认值方面,尽量将值设置成最常用的合规的值,然后提供了接口可以修改这些值,以便兼容各种各样的需求场景。比如一些开关的值,如果90%的人希望默认是关闭的,而你搞个默认值开启,这就很纳闷了,大部分的用户每次都需要去主动修改后才能适用自己的场景。原创 2023-12-22 08:53:26 · 1349 阅读 · 0 评论 -
Qt/C++视频监控安卓版/多通道显示视频画面/录像存储/视频播放安卓版/ffmpeg安卓
随着监控行业的发展,越来越多的用户场景是需要在手机上查看监控,而之前主要的监控系统都是在PC端,毕竟PC端屏幕大,能够看到的画面多,解码性能也强劲。早期的手机估计性能弱鸡,而现在的手机性能不是一般的牛,甚至超越了PC机的性能,所以手机上查看多路监控也就有了硬件基础前提。对应众多Qt程序员来说,能否直接利用现有的代码,直接编译成手机app给用户直接使用,垂涎已久。原创 2023-12-13 20:41:26 · 1598 阅读 · 4 评论 -
Qt/C++视频监控拉流显示/各种rtsp/rtmp/http视频流/摄像头采集/视频监控回放/录像存储
本视频播放组件陆陆续续写了6年多,一直在持续更新迭代,视频监控行业客户端软件开发首要需求就是拉流显示,比如给定一个rtsp视频流地址,你需要在软件上显示实时画面,其次就是录像保存,再次就是一些周边的处理比如贴OSD,做图片分析等。拉流显示是第一步,如果有跨平台的需求,个人推荐用ffmpeg去实现,毕竟ffmpeg很底层,在做的过程中可以了解很多音视频的知识,缺点就是难,很多都是需要自己用代码去处理,按照ffmpeg自己的规范去处理。原创 2023-12-06 10:06:22 · 2519 阅读 · 0 评论 -
Qt/C++原创推流工具/支持多种流媒体服务/ZLMediaKit/srs/mediamtx等
支持各种本地视频文件和网络视频文件。支持各种网络视频流,网络摄像头,协议包括rtsp、rtmp、http。支持将本地摄像头设备推流,可指定分辨率和帧率等。支持将本地桌面推流,可指定屏幕区域和帧率等。自动启动流媒体服务程序,默认mediamtx(原rtsp-simple-server),可选用srs、EasyDarwin、LiveQing、ZLMediaKit等。可实时切换预览视频文件,可切换视频文件播放进度,切换到哪里就推流到哪里。推流的清晰度和质量可调。原创 2023-10-08 14:58:52 · 1081 阅读 · 0 评论 -
Qt/C++编写物联网组件/支持modbus/rtu/tcp/udp/websocket/mqtt/多线程采集
1. 支持多种协议,包括Modbus_Rtu_Com/Modbus_Rtu_Tcp/Modbus_Rtu_Udp/Modbus_Rtu_Web/Modbus_Tcp/Modbus_Udp/Modbus_Web等,其中web指websocket。2. 支持多种采集通讯方式,包括串口和网络等,可自由拓展其他方式。3. 自定义采集间隔(精确到毫秒)和超时次数,超时后自动将离线的文件从轮询队列中移除,加快轮询速度。4. 自定义整体轮询间隔,将离线的设备重新探测一次,保证设备恢复正常后能够重新加入轮询队列。原创 2023-10-16 10:29:27 · 2404 阅读 · 1 评论 -
历时数月钻研推流/对比各种流媒体服务程序/PK总结
大量测试下来,网页显示视频流实时性从高到低依次是 webrtc > ws-flv > flv > hls。播放器打开rtsp/rtmp视频流实时性由具体的播放器控制,比如缓存大小和缓存时间,是否音视频同步等。由于flv拉流同源地址最大支持6路同时播放,所以要想实时性高而且网页播放支持多路就选择ws-flv,hls实时性最差。mediamtx推出来的hls/webrtc流可以直接地址复制到浏览器打开,不依赖额外的js播放器播放。原创 2023-08-18 10:08:59 · 978 阅读 · 0 评论 -
Qt/C++原创项目作品精选(祖传原创/性能凶残/界面精美)
从事Qt开发十年有余,一开始是做C#.NET开发的,因为项目需要,转行做嵌入式linux开发,在嵌入式linux上做可视化界面开发一般首选Qt,当然现在可选的方案很多比如安卓,但是十多年前那时候板子性能低,安卓在这个上面跑的话卡成屎,当时的内存大概是128MB左右,Qt也是主要用QWidget,刚出来的qml在这个上面跑个最简单的示例也是卡成屎,这也造成了本人一直对qml的印象不大好,非常依赖GPU硬件。原创 2023-07-09 12:09:52 · 17090 阅读 · 19 评论 -
Qt/C++编写超精美自定义控件(历时9年更新迭代/超206个控件/祖传原创)
无论是哪一门开发框架,如果涉及到UI这块,肯定需要用到自定义控件,越复杂功能越多的项目,自定义控件的数量就越多,最开始的时候可能每个自定义控件都针对特定的应用场景,甚至里面带了特定的场景的一些设置和处理,随着项目数量的增多,有些控件又专门提取出来共性,做成了通用的自定义控件,意味着控件主要做外观处理,用户根据不同的场景需要,设置不同的外观和规则,就这样搞来搞去搞到现在,已经超过了202个控件,慢慢的积累迭代和更新,历经超过9年的时间不断的完善,尤其是对不同Qt版本、不同编译器、不同操作系统的支持,其中Qt6原创 2023-07-01 10:34:10 · 2791 阅读 · 0 评论 -
国产系统中标麒麟neokylin上的可视化大屏电子看板系统
一、功能特点采用分层设计,整体总共分三级界面,一级界面是整体布局,二级界面是单个功能模块,三级界面是单个控件。子控件包括饼图、圆环图、曲线图、柱状图、柱状分组图、横向柱状图、横向柱状分组图、合格率控件、百分比控件、进度控件、设备状态面板、表格数据、地图控件、视频控件等。二级界面可以自由拖动悬浮,支持最小化隐藏、最大化关闭、响应双击自定义标题栏。数据源支持模拟数据(默认)、数据库采集、串口通信(需定制)、网络通信(需定制)、网络请求等,可自由设定每个子界面的采集间隔即数据刷新频率。采用纯QWidg原创 2021-10-22 08:25:26 · 1255 阅读 · 0 评论 -
Qt/C++编写数据可视化大屏界面电子看板系统
前言目前大屏大数据可视化UI这块非常火,趁热也用Qt来实现一个,Qt这个一站式超大型GUI超市,没有什么他做不了的,大屏电子看板当然也不在话下,有了QSS和QPainter这两个无敌的工具组合,借用几个Qt高手朋友的话来说,都是分分钟。在整个系统的编写过程中,发现数学知识真的还是蛮重要的,在重要的几个算法点上,需要多次用到二元一次方程才能搞定几个算法,比如如何分组绘制柱状图。电子看板介绍电子...原创 2019-05-05 22:31:19 · 23578 阅读 · 28 评论 -
Qt/C++编写安防视频监控系统(支持win/linux/mac/海康/大华/宇视/264/265等)
一、前言视频监控系统在整个安防领域,已经做到了烂大街的程序,全国起码几百家公司做过类似的系统,当然这一方面的需求量也是非常旺盛的,各种定制化的需求越来越多,尤其是这几年借着人脸识别的东风,发展更加迅猛,人脸识别相关的技术和应用这几年处于风口浪尖,衍生了特别多的应用产品,各种人脸识别的产品遍地开花,刷脸门禁,车站机场人脸识别,刷脸取票等,但是其实大部分内行人士可能都比较绝望,外行感觉像看科幻片一样...原创 2019-05-23 17:31:43 · 47456 阅读 · 24 评论 -
Qt/C++编写物联网管理平台(支持win/linux/mac/嵌入式linux/modbus/mqtt等)
这个物联网综合管理平台前后迭代了五年,一点一滴慢慢积累起来,从最开始的只有modbus串口协议解析以及简单的表格显示数据,慢慢的逐渐增加了tcp_rtu支持,用户管理模块,地图监控模块,而后为了拓展性又做了云端数据同步,网络数据转发等。原创 2022-11-28 09:00:51 · 13878 阅读 · 13 评论 -
Qt/C++编写跨平台的推流工具(支持win/linux/mac/嵌入式linux/安卓等)
跨平台的推流工具当属OBS最牛逼,功能也是最强大的,唯一的遗憾就是多路推流需要用到插件,而且CPU占用比较高,默认OBS的规则是将对应画布中的视频画面和设定的音频一起重新编码再推流,意味着肯定占用不少CPU资源,而很多时候尤其是视频监控行业,往往源头的摄像头的视频流就是标准的264/265/aac格式,其实无需重新编码就可以推流,就相当写文件一样,只需要极低极低的CPU运算资源,一路1080P基本上占用在0.1%以下,而OBS可以直接干到5%,这就差距有点大了,几十倍的差距,毕竟重新编码哪怕是硬编码,肯定需原创 2023-06-22 19:30:25 · 5248 阅读 · 3 评论 -
Qt/C++编写监控实时显示和取流回放工具(回放支持切换进度)
现在各个监控大厂做的设备,基本上都会支持通过rtsp直接取流显示,而且做的比较好的还支持通过rtsp回放取流,基本上都会约定一个字符串的规则,每个厂家都是不一样的规则,比如回放对应的rtsp地址还要带上时间范围,回放肯定要指定一个开始时间和结束时间。原创 2023-06-21 14:13:01 · 2853 阅读 · 0 评论 -
Qt/C++编写手机版本视频播放器和Onvif工具(可云台和录像)
用Qt+ffmpeg写播放器很多人有疑问,为何不用Qt自己的多媒体框架来写,最重要的原因是Qt自带的目前都依赖具体的本地解码器,如果解码器不支持,那就是歇菜的,最多支持个MP4格式,而且在手机上也都是支持本地少部分格式的文件,对于各种视频流完全无能无力。而ffmpeg就不一样了,本身就是自带各种解码器,解码能力绝对超一流杠杠的,本身在桌面端就已经用Qt+ffmpeg写好了对应的播放器,手机版本只需要对应的ffmpeg的库替换成对应安卓版本(一堆.so库文件)就行。原创 2023-06-18 09:43:34 · 1518 阅读 · 0 评论 -
Qt/C++编写精美输入法(历时十年迭代/可换肤/支持Qt4/5/6/win/linux/mac/嵌入式等)
大概是从2012年就开始研究用Qt写输入法,因为项目需要,嵌入式板子上,没有对应的输入法,当初使用过很多NVR,里面也是鼠标按下弹出输入法面板进行输入,可以切换数字和字母及中文,于是借鉴着操作交互流程,用纯QWidget代码实现一个,当然最初的版本是非常简单和丑陋的,而且功能单一,能打字母数字和出来中文就行了,至于如何的友好如何的人性化,那不是第一步该考虑的问题,后面也是慢慢的随着用户数量的增多,不断用户实际需求的不同,慢慢持续迭代到今天的版本。原创 2023-06-15 09:30:30 · 2413 阅读 · 1 评论 -
Qt/C++编写onvif工具(搜索/云台/预置位/OSD/录像存储)
从最初编写这个工具开始的时间算起来,至少5年多,一直持续完善到今天,这个工具看起来小也不小大也不大,但是也是经历过无数个现场的洗礼,毫不夸张的说,市面上能够遇到的主流的厂商的设备,都测试过,而且做过大量设备的测试,并不是调试个一个两个的,也并不是在实验室环境中搞开发的,而是在各种现场的复杂环境中成长起来的,无数个小细节的修改和调整,基本上都是第一时间现场反馈后,根据现场的复杂情况进行完善。雏形阶段,能够搜索设备,获取到设备的基本信息,取出rtsp码流地址。原创 2023-06-14 09:13:57 · 3681 阅读 · 5 评论 -
Qt/C++编写全能播放组件(支持ffmpeg2/3/4/5/6/Qt4/5/6)
从代码层面以及自由度来说,用ffmpeg来写全能播放组件是最佳方案(跨平台最好最多、编解码能力最强),尽管已经有优秀的vlc/mpv等方案可以直接用,但是vlc/mpv对标主要是播放器应用层面,其他层面比如视频监控行业领域就比较鸡肋,所以还是从底层一点一滴做解码编码会让自己更熟练。原创 2023-06-12 13:52:50 · 2063 阅读 · 0 评论 -
Qt/C++推流程序自动生成网页远程查看实时视频流(视频文件/视频流/摄像头/桌面转成流媒体rtmp+hls+webrtc)
推流程序将视频流推送到流媒体服务器后,此时就等待验证拉流播放,一般可以选择ffplay命令行播放或者vlc等播放器打开播放,也可以选择网页直接打开拉流地址播放,一般主流的浏览器都支持网页直接播放hls/m3u8/webrtc类型的视频流,而且推流的主要目的可能就是为了能够在各个客户端中取流播放,尤其是网页端,毕竟在各种操作系统上,网页浏览器是基础组件,只要你的程序能够在网页中运行,那就相当于通吃各种操作系统,不用再去费劲心力的去开发各个平台的程序。原创 2023-05-19 08:35:32 · 3093 阅读 · 0 评论 -
Qt/C++推流程序(视频文件/视频流/摄像头/桌面转成流媒体rtmp+hls+webrtc)可在网页和播放器远程观看
推流直播就是把采集阶段封包好的内容传输到服务器的过程。其实就是将现场的视频信号从手机端,电脑端,摄影机端打包传到服务器的过程。“推流”对网络要求比较高,如果网络不稳定,直播效果就会很差,观众观看直播时就会发生卡顿等现象,观看体验比较糟糕。主流推送协议有RTMP、HLS、SRT等。RTMP是目前最主流的流媒体传输协议,对CDN支持良好,实现难度较低,是大多数的直播平台的选择。使用RTMP传输的延时通常在1–3秒,适合手机端。不过RTMP不支持浏览器,如果直播服务需要浏览器,需要另外的推送协议支持。原创 2023-05-13 14:13:26 · 2528 阅读 · 0 评论 -
Qt/C++编写网络摄像头推流(4路1080P主码流只占用0.2%CPU/极低延时极速响应)
将从网络摄像头拉流过来的视频流重新推流出去,是目前一个很常规的做法,尤其是推流到流媒体服务中心,这样流媒体服务中心就把散落在各个区域的监控摄像头集中起来统一管理,同时提供对外一致的访问接口。原创 2023-04-22 09:42:27 · 2078 阅读 · 0 评论 -
Qt/C++编写推流综合应用示例(文件推流/桌面推流/本地摄像头/网络摄像头/转发推流/视频分发)
1. 支持各种本地视频文件和网络视频文件。2. 支持各种网络视频流,网络摄像头,协议包括rtsp、rtmp、http。3. 支持将本地摄像头设备推流,可指定分辨率和帧率等。4. 支持将本地桌面推流,可指定屏幕区域和帧率等。5. 自动启动流媒体服务程序,默认mediamtx(原rtsp-simple-server),可选用srs、EasyDarwin、LiveQing、ZLMediaKit等。6. 可实时切换预览视频文件。7. 推流的清晰度和质量可调。8. 可动态添加文件、目录、地址。原创 2023-04-20 08:49:20 · 4432 阅读 · 11 评论 -
Qt/C++编写ffmpeg本地摄像头显示(16路本地摄像头占用3.2%CPU)
内核ffmpeg除了支持本地文件、网络文件、各种视频流播放以外,还支持打开本地摄像头,和正常的解析流程一致,唯一的区别就是在avformat_open_input第三个参数传入个AVInputFormat参数,这个参数用于指定输入设备的格式,不同系统对应不同的格式名称,windows上是dshow或者vfwcap,linux上是video4linux2或者v4l2,mac上是avfoundation。原创 2022-11-10 09:06:41 · 3747 阅读 · 3 评论 -
Qt/C++编写跨平台RTSP/RTMP/HTTP视频流播放器
很早以前就做过这款播放器的入门版本,最开始用的ffmpeg去解析,后面陆续用vlc播放器、mpv播放器来做,毕竟播放器提供的接口使用也很方便,而且功能强大,后面发现播放器主要的应用场景是播放视频文件,一般一个电脑不会超过8路视频文件同时播放器,一般就是1路,所有如果需要打开超过16路这种的实例进行播放,用播放器的内核其实是不大适合的,内存占用比较高,超过12路很容易崩溃,哪怕仅仅是播放本地视频文件,所以后面花了精力专门把ffmpeg研究透一些,以便追求极致最大性能,而且其他平台和系统都可以用,只要编译对应环原创 2022-11-08 13:37:48 · 3824 阅读 · 1 评论 -
Qt/C++编写视频播放器(支持pbonon/qmediaplayer/ffmpeg/vlc/mpv等多种内核)
花了一年多的时间,终于把这个超级播放器做成了自己想要的架构,用户的需求是一方面,自己架构方面的提升也是一方面,最主要是将界面和解码解耦了,这样才能动态的挂载不同的解码内核到不同的视频监控窗体,多对多关系,而且解耦和才能方便的实现共享解码,整个设计参照了Qt的设计思路,将各种功能做成不同的类组件,同时还有多层基类的设计,最大的提炼共性,本组件设计的视频解码线程基类、视频显示窗体基类、视频文件保存基类等,都是公用的,而且还提供给本地摄像头组件使用,因为共性一样。原创 2022-12-08 13:42:53 · 2082 阅读 · 0 评论 -
Qt/C++编写音频播放示例(带音频曲线/振幅/传输/录制等)
1. 自动计算音频振幅,绘制音频振幅曲线和音频数据曲线。2. 支持音频录制,可选音频输入设备、采样频率、通道等参数,Qt5默认保存wav格式,Qt6默认保存mp3格式,Qt6可选wma、aac等格式。3. 提供音频发送示例,将采集到的音频数据通过TCP或UDP发出去。4. 提供音频接收示例,将网络TCP或UDP收到的音频数据播放出来。5. 音频发送和接收,相当于语音对讲,响应延迟小于0.2s,实时性极高。6. 可以编译成手机版本,形成手机和电脑等端语音对讲功能。7. 可以拓展作为视频监控的语音对原创 2022-11-03 13:08:18 · 1241 阅读 · 0 评论 -
Qt/C++编写本地摄像头综合应用示例(qcamera/ffmpeg/v4l2等)
1. 同时支持 QCamera、ffmpeg、v4l2 三种内核解析本地摄像头。2. 提供函数 findCamera 自动搜索环境中的所有本地摄像头设备,搜索结果信号发出。3. 支持自动搜索和指定设备两种模式,自动搜索模式下会将搜索到的第一个设备作为当前设备打开。4. 支持同时打开多路设备,亲测4路,受限于具体的环境比如带宽。5. 支持自动重连,默认开启,失败后会自动重新搜索和尝试打开。6. ffmpeg方案、v4l2方案都支持回调模式(采集后转成QImage绘制)和句柄模式(采集后YUV数据GP原创 2022-11-01 11:56:28 · 3406 阅读 · 1 评论