javacv开发详解之9:基于gdigrab的windows屏幕画面抓取/采集(基于javacv的屏幕截屏录屏功能)

eguid eguid     2023-03-22     710

关键词:

javaCV系列文章:

    javacv开发详解之1:调用本机摄像头视频

    javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)

    javaCV开发详解之3:收流器实现,录制流媒体服务器的rtsp/rtmp视频文件(基于javaCV-FFMPEG)

    javaCV开发详解之4:转流器实现(也可作为本地收流器、推流器,新增添加图片及文字水印,视频图像帧保存),实现rtsp/rtmp/本地文件转发到rtmp流媒体服务器(基于javaCV-FFMPEG)

    javaCV开发详解之5:录制音频(录制麦克风)到本地文件/流媒体服务器(基于javax.sound、javaCV-FFMPEG)

    javaCV开发详解之6:本地音频(话筒设备)和视频(摄像头)抓取、混合并推送(录制)到服务器(本地)

    javaCV开发详解之7:让音频转换更加简单,实现通用音频编码格式转换、重采样等音频参数的转换功能(以pcm16le编码的wav转mp3为例)

    javaCV开发详解之8:转封装在rtsp转rtmp流中的应用(无须转码,更低的资源消耗,更好的性能,更低延迟)

    javaCV开发详解之9:基于gdigrab的windows屏幕画面抓取/采集(基于javacv的屏幕截屏、录屏功能)

补充篇:

    音视频编解码问题:javaCV如何快速进行音频预处理和解复用编解码(基于javaCV-FFMPEG)

    音视频编解码问题:16/24/32位位音频byte[]转换为小端序short[],int[],以byte[]转short[]为例

    实现给图片增加图片水印或者文字水印(也支持视频图像帧添加水印)

    java原生实现屏幕设备遍历和屏幕采集(捕获)等功能

javacpp-ffmpeg系列:

    javacpp-FFmpeg系列之1:视频拉流解码成YUVJ420P,并保存为jpg图片

    javacpp-FFmpeg系列之2:通用拉流解码器,支持视频拉流解码并转换为YUV、BGR24或RGB24等图像像素数据

    javacpp-FFmpeg系列之3: 图像数据转换(BGR与BufferdImage互转,RGB与BufferdImage互转)

    javacpp-FFmpeg系列补充:FFmpeg解决avformat_find_stream_info检索时间过长问题

javacpp-opencv系列:

    一、javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作

    二、javaCV图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制

    三、javacv图像处理3:使用opencv原生方法遍历摄像头设备及调用(方便多摄像头遍历及调用,相比javacv更快的摄像头读取速度和效率,方便读取后的图像处理)

    四、javacv图像处理系列:国内车辆牌照检测识别系统(万份测试准确率99.7%以上)

 
一、前言

本系列文章前面内容基本覆盖了推流拉流等内容,屏幕截屏之前也写过,只不过是基于java的,帧率比较低,所以就有了本章,基于javacv的屏幕录制、截屏功能实现。

 
二、实现功能

本章主要实现基于javacv的屏幕录制和截屏功能。

javacv中有两种方式可以获取windows下的屏幕画面,一种是本章使用的gdigrab方式,另一种是基于dshow的方式。

完整查看本章请到:https://blog.csdn.net/eguid_1/article/details/105775362

javacv开发详解之9补充篇2:基于x11grab的linux屏幕画面抓取/采集(linux录屏功能)

...本系列教程已经分别介绍了windows(javaCV开发详解之9:基于gdigrab的windows屏幕画面抓取/采集(基于javacv的高帧率屏幕截屏、录屏功能))和MacOS(苹果Mac和ios获取屏幕画面和摄像头请至:JavaCV开发详解补充篇:基于avfoundation的苹果Mac... 查看详情

javacv开发详解之9补充篇2:基于x11grab的linux屏幕画面抓取/采集(linux录屏功能)

...本系列教程已经分别介绍了windows(javaCV开发详解之9:基于gdigrab的windows屏幕画面抓取/采集(基于javacv的高帧率屏幕截屏、录屏功能))和MacOS(苹果Mac和ios获取屏幕画面和摄像头请至:JavaCV开发详解补充篇:基于avfoundation的苹果Mac... 查看详情

javacv开发详解之14:音频重采样

javacv实战专栏目录(2016年更新至今):JavaCV实战专栏文章目录(2016年更新至今)2022年最新JavaCV最新音视频教程目录:JavaCV音视频教程目录(2022年最新JavaCV教程)前言有很多场景,需要修改获取到的音频参数,比如读取流媒体或者... 查看详情

javacv开发详解之8:转封装在rtsp转rtmp流中的应用(无须转码,更低的资源消耗)

JavaCV免费教程目录:JavaCV入门教程(免费JavaCV教程)javacv实战专栏目录(2016年更新至今):JavaCV实战专栏文章目录(2016年更新至今)2022年最新JavaCV最新音视频教程目录:JavaCV音视频教程目录(2022年最新JavaCV教程)前言javaCV开发详... 查看详情

javacv开发详解之rtsp推流实战:rtsp转推到rtsp(代码片段)

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言在上一篇《JavaCV开发详解之rtp推流实战:rtsp转推到rtp》我们主要进行rtp推流,本章将进行rtsp推流。还是那句话,Nocodenobb!废话少谈,直接上代码。参考资料ffmpeg... 查看详情

javacv开发详解之36:使用delogo滤镜实现去除和屏蔽视频水印(代码片段)

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言我们在前面几章已经实现了几种常见的字符叠加滤镜特效,本章带领大家来简单尝试一下使用delogo滤镜去除视频水印的特效。参考文档ffmpeg官方文档:https://ffmpeg.... 查看详情

javacv开发详解之36:使用delogo滤镜实现去除和屏蔽视频水印(代码片段)

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言我们在前面几章已经实现了几种常见的字符叠加滤镜特效。本章带领大家来简单尝试一下使用delogo滤镜去除视频水印的特效。参考文档ffmpeg官方文档:https://ffmpeg.... 查看详情

javacv开发详解之36:使用delogo滤镜实现去除和屏蔽视频水印(代码片段)

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言我们在前面几章已经实现了几种常见的字符叠加滤镜特效。本章带领大家来简单尝试一下使用delogo滤镜去除视频水印的特效。参考文档ffmpeg官方文档:https://ffmpeg.... 查看详情

javacv开发详解之26补充篇:视频连续截图并按日期格式生成图片文件名称,支持png,jpg,bmp等格式快速连续截图

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言如何使用javacv快速截图,并且连续不断的截图,之前博主因为需要连续截图,所以写过easycv,但是后来不在维护了,因为发现了有更简单的方式可以截图,那就是... 查看详情

javacv开发详解之24:使用javacv保存raw视频像素格式(yuv或者rgb),并使用ffplay播放raw(代码片段)

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言本章代码主要用于存取原始视频数据,方便流媒体开发人员检查视频像素。由于保存的raw文件没有标头,所以必须指定好视频参数,播放的时候也必须指定准确的... 查看详情

javacv开发详解之26补充篇3:指定视频在某个时间截图,支持视频文件和rtsp/rtmp/flv/hls等视频流指定时间截图

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言前面两章JavaCV开发详解之26补充篇1:简单视频截图,视频文件和rtsp/rtmp/flv/hls等直播流截取一张图片、JavaCV开发详解之26:使用javacv对视频进行连续截图和覆盖截... 查看详情

javacv开发详解之26补充篇2:指定视频内某个帧进行截图,支持视频文件和rtsp/rtmp/flv/hls等视频流指定帧截图

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言前面两章JavaCV开发详解之26补充篇1:简单视频截图,视频文件和rtsp/rtmp/flv/hls等直播流截取一张图片、JavaCV开发详解之26:使用javacv对视频进行连续截图和覆盖截... 查看详情

javacv开发详解之rtp推流实战:rtsp转推到rtp(代码片段)

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言在《JavaCV实战教程》前面的文章中,我们主要进行rtmp推流和录制mp4、flv和hls,博主原本觉得已经照顾到大部分场景了,直到最近群里有小伙伴们问怎么推rtp,这... 查看详情

javacv开发详解之27补充篇1:使用javacv把音视频切割成多个音频分片文件,以mp3为例,把视频切割成mp3分片文件

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言上一篇文章中:JavaCV开发详解之27:使用javacv把视频切割成多个视频分片文件,以mp4为例,把视频切割成MP4分片文件,我们成功的把视频切割成一个个mp4视频切片... 查看详情

javacv开发详解之27补充篇1:使用javacv把音视频切割成多个音频分片文件,以mp3为例,把视频切割成mp3分片文件

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言上一篇文章中:JavaCV开发详解之27:使用javacv把视频切割成多个视频分片文件,以mp4为例,把视频切割成MP4分片文件,我们成功的把视频切割成一个个mp4视频切片... 查看详情

javacv开发详解之26补充篇1:简单视频截图,视频文件和rtsp/rtmp/flv/hls等直播流截取一张图片

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言我们之前实现了连续截图和覆盖截图,由于单张截图比较简单,使用FrameRecorder录制器就可以很方便的实现,所以一直没写。截图除了可以利用FrameRecorder以外,还... 查看详情

javacv开发详解之27补充篇1:摄像头画面录制成多个mp4视频分片文件,支持树莓派嵌入式安卓linux和windows等平台摄像头画面录制视频分片文件

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言在上一章中《JavaCV开发详解之27:使用javacv把视频切割成多个视频分片文件,以mp4为例,把视频切割成MP4分片文件》,我们通过javacv拉取流媒体视频流的方式录制m... 查看详情

javacv开发详解之27补充篇1:摄像头画面录制成多个mp4视频分片文件,支持树莓派嵌入式安卓linux和windows等平台摄像头画面录制视频分片文件

javacv实战专栏目录:JavaCV实战专栏文章目录(JavaCV速查手册)前言在上一章中《JavaCV开发详解之27:使用javacv把视频切割成多个视频分片文件,以mp4为例,把视频切割成MP4分片文件》,我们通过javacv拉取流媒体视频流的方式录制m... 查看详情