一、前言

采用了回调方式的视频通道,截图只需要对解析好的QImage对象直接保存即可,而对于句柄的形式,需要调用不同的处理策略,比如vlc需要用它自己提供的api接口函数libvlc_video_take_snapshot传入保存路径即可,mpv的内核执行screenshot-to-file命令传入路径参数即可,而ffmpeg就需要设置抓拍标志位,在实时采集解析那边,如果当前是截图标志位真,则需要改成QImage转换的机制发出图片,而不是yuv的数据opengl绘制,海康的sdk调用NET_DVR_CapturePicture函数即可。

一般来说截图都是保存的原始的图片,对应的分辨率也是原始的分辨率,并没有压缩及等比例缩放过的,所以ffmpeg的监控内核必须是最原始的采集到的图片为准,而不是最终绘制后的图片,因为绘制后的很可能已经缩放过的。

有时候还有一种场景需求是不需要原始的图片,只需要当前通道大小的尺寸,这个时候就需要对当前通道进行截屏,采用截屏的形式截图,这种方式可以将设置的OSD等信息都截图进去,相当于扣扣截图。Qt本身提供了grabWindow方法来对指定句柄的窗体控件截屏,Qt4里面放在QPixmap类中的静态方法QPixmap::grabWindow,而Qt5中放在QApplication::primaryScreen()的方法中。

二、功能特点

  1. 支持多画面切换,全屏切换等,包括1+4+6+8+9+13+16+25+36+64画面切换。
  2. 支持alt+enter全屏,esc退出全屏。
  3. 自定义信息框+错误框+询问框+右

Qt音视频开发49-通用截图截屏相关推荐

  1. Android 音视频开发(六) -- Android Mediaprojection 截屏和录屏

    Android 音视频开发(一) – 使用AudioRecord 录制PCM(录音):AudioTrack播放音频 Android 音视频开发(二) – Camera1 实现预览.拍照功能 Andro ...

  2. Qt音视频开发27-Onvif设备搜索

    一.前言 最近业余时间主要研究音视频开发这块,前面的文章写了好多种视频监控内核,一旦将这些内核搞定以后,视频监控的相关功能水到渠成.做视频监控系统,绕不过onvif这玩意,这玩意主要就是为了统一一个大 ...

  3. Qt音视频开发06-海康sdk内核linux客户端

    一.前言 海康sdk的示例在官方是提供了的,但是无论UI还是交互简直是宇宙无敌的垃圾,猜测应该是初学者编写的,估计练手用的,所以老早就想把这个linux支持集成到自己的示例中,既然已经支持了windo ...

  4. Qt音视频开发01-共享解码线程(耗时一年/性能凶残/至臻完美)

    一.前言 大概在8年前就开始用ffmpeg做视频解码的显示,第一个版本就100行代码左右,功能极其简单,就是开个线程解码视频流转成图片发给主界面绘制.时间过得真快,从当初的一胎到现在二胎都上学了三胎计 ...

  5. Qt音视频开发02-海康sdk解码(支持句柄/回调/GPU模式/支持win/linux)

    一.前言 为何还要选用使用海康sdk,之前不是ffmpeg已经牛皮吹上天了吗?这个问题问得好,那是因为无论ffmpeg也好还是vlc/mpv之类的,都是实现的播放相关,不同的监控硬件厂家对应设备还有很 ...

  6. Qt音视频开发26-ffmpeg播放器

    一.前言 用ffmpeg来实现自己的播放器,这是一直以来的一个目标,之前的难点卡在音视频同步以及如何播放声音这两点(尽管之前已经进行过不少的尝试和探索,但是问题还是挺多,比如音视频同步不完美,有些文件 ...

  7. Qt音视频开发22-音频播放QAudioOutput

    一.前言 以前一直以为只有Qt5以后才有QAudioOutput播放音频,其实从Qt4.6开始就有,在Qt6中变成了QAudioSink,功能一样.用QAudioOutput播放音频pcm数据极其方便 ...

  8. QT 音视频开发 基于gstreamer框架

    在音视频领域接触最多实现的方案通常是通过ffmpeg(PC和sever端居多)或者硬件厂家的的SDK实现特定硬件的编解码功能(机顶盒,电视等嵌入式设备).国内不太常用的解决方案gstreamer gs ...

  9. Qt音视频开发24-ffmpeg音视频同步

    一.前言 用ffmpeg来做音视频同步,个人认为这个是ffmpeg基础处理中最难的一个,无数人就卡在这里,怎么也不准,本人也是尝试过网上各种demo,基本上都是渣渣,要么仅仅支持极其少量的视频文件比如 ...

最新文章

  1. SAP SD微观研究之销售发票自动生成初探
  2. 大学老师称古风歌词“狗屁不通”,遭粉丝围攻:回家葬母吧
  3. PHP之Smarty简单实现
  4. hive insert报错return code 1 from org.apache.hadoop.hive.ql.exec.StatsTask (state=08S01,code=1)
  5. 编写自己的工具箱 (一)
  6. 礼品鸟一站式礼品采购中心网站PHP源码
  7. 深度特征融合--add和concat【转载】
  8. python queue 生产者 消费者_生产者、消费者模型---Queue类
  9. CSharpGL(7)对VAO和VBO的封装
  10. python获取月份字符串_python 时间字符串与日期转化
  11. vue 第三天(绑定属性)
  12. 单位阶跃函数的傅里叶变换_傅里叶变换学习笔记(9)
  13. php while次数,PHP While 循环
  14. CSS:字体设置~笔记
  15. 如何做接口测试呢?接口测试有哪些工具【小白都会系列】
  16. Excel精选28个实用技巧实例学习
  17. 显卡和CPU的关系像“主仆”,GPU的工作原理是什么
  18. 什么是MIT开源协议
  19. c语言程序设计第五版课后习题答案谭浩强第八章课后题
  20. Python常见习题

热门文章

  1. 街都|从阿里巴巴到Gucci,马云的“新零售”模式如何让中国领先于世界
  2. Wikibon 2018年云市场和2019趋势报告:云移向数据
  3. Polarion ALM数据库解析2 – SQL示例之ASPICE追溯性的查询语句
  4. Higher-order organization of complex networks 之邻接矩阵的构建思路
  5. 浏览器遇到找不到“www.xxxx.com”等的服务器的IP地址怎么解决
  6. 送你40+电子厂软测面试真题(需要答案私聊)
  7. 携手抗击疫情,雀巢大家庭在行动
  8. 火星人敏捷开发手册免费培训 By 火星人陈勇
  9. 臭氧味道虽“臭”,架不住它功能强大
  10. 人工智能基础 | K近邻(三)