首页 > 编程语言 >音视频:JavaCV 采集桌面画面并显示的方法

音视频:JavaCV 采集桌面画面并显示的方法

时间:2025-01-12 21:00:38浏览次数:1  
标签:canvas 桌面 setOption 音视频 采集 grabber offset JavaCV

需要进行简单的音视频编程,如果不是特别熟悉C/C++,那么JavaCV应该是比较好的选择,下面记录一下使用JavaCV采集桌面数据的方法。

使用FFmpegFrameGrabber采集桌面数据,指定输入源为desktop,format设置为gdigrab。

参考雷神的博客:https://blog.csdn.net/leixiaohua1020/article/details/44597955

实现代码:

public class Sample03_Desktop {
	public static void main(String[] args) throws Exception {
		FFmpegFrameGrabber grabber = new FFmpegFrameGrabber("desktop");
		Java2DFrameConverter converter = new Java2DFrameConverter();
		grabber.setFormat("gdigrab");
		grabber.setOption("offset_x", "0");
		grabber.setOption("offset_y", "0");
		grabber.setOption("framerate", "25");
		grabber.setOption("draw_mouse", "0");
		grabber.setOption("video_size", "1920x1080");
		grabber.start();
		CanvasFrame canvas = new CanvasFrame("米虫2022");
		canvas.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		canvas.setAlwaysOnTop(true);
		while (canvas.isDisplayable()) {
			canvas.showImage(converter.convert(grabber.grab()));
			TimeUnit.MILLISECONDS.sleep(40);
		}
		grabber.close();
	}
	
}

这里需要注意的是,最好不要使用下面这种方式指定采集区域:

grabber.setImageWidth(1920);
grabber.setImageWidth(1080);

这种形式,在电脑接入双屏的时候有问题,所以电脑如果是多个显示器的话,建议使用下面这种方式设置采集区域:

grabber.setOption("offset_x", "0");
grabber.setOption("offset_y", "0");
grabber.setOption("video_size", "1920x1080");

如果采集的画面泛白,可以使用Java2DFrameConverter转化一下采集的视频帧。

采集效果:

2K屏的显示屏,设置1920x1080采集到的画面只有一部分。

标签:canvas,桌面,setOption,音视频,采集,grabber,offset,JavaCV
From: https://www.cnblogs.com/itqn/p/18667297

相关文章

  • 如何在服务器桌面配置phpMyAdmin快捷方式并管理数据库?
    phpMyAdmin是一个强大的MySQL数据库管理工具,通过在服务器桌面上配置快捷方式,可以极大提高数据库管理的效率。以下是详细的配置步骤及管理技巧:配置phpMyAdmin快捷方式:安装phpMyAdmin:如果尚未安装phpMyAdmin,可以通过包管理器(如 apt-get 或 yum)安装。例如,在Ubuntu上可以使用......
  • FFmpeg音视频流媒体,视频编解码性能优化
    你是不是也有过这样一个疑问:视频如何从一个简单的文件变成你手机上快速播放的短片,或者是那种占满大屏幕的超高清大片?它背后的法宝,离不开一个神奇的工具——FFmpeg!说它强大,完全不为过,它在音视频处理领域专业度很高。从格式转换、音视频编解码,到流媒体处理,FFmpeg就像是视频领......
  • Omnissa Dynamic Environment Manager 2412 - 个性化动态 Windows 桌面环境管理
    OmnissaDynamicEnvironmentManager2412-个性化动态Windows桌面环境管理Simplifymanagementofuserprofiles,environmentsettings,andpoliciesacrossdesktopsandapps.请访问原文链接:https://sysin.org/blog/omnissa-dynamic-environment-manager/查看最新版......
  • 用Tauri2.0把Vite+Vue3项目打包成exe桌面程序
    前言最近有个需求是做一两个设备的配置页面,但需要在断网的笔记本上直接运行(笔记本用网线直连设备)。避免测试同事配置开发环境麻烦,想到了把这些前端配置页面打包成一个exe的安装包。到时候测试同事只需要双击运行安装,打开后就可以直接运行,比较方便。有这个打包需求后,首先想到的......
  • 远程桌面连接如何使用
    远程桌面连接如何使用操作前提操作步骤注意事项:远程桌面连接是Windows系统自带的一项功能,它允许用户远程访问和控制Windows云服务器。以下是使用远程桌面连接的详细步骤:操作前提云服务器网络正常:确保云服务器的网络连接是正常的,以便远程桌面连接可以顺利建立。远......
  • 用户,桌面文件夹;变成普通图标,名称变英文
    主要时文件夹下的两个desktop.ini文件内容或文件属性不正确造成的解决方案:如图(Win11)win10:资源管理器,点击“组织”,打开“文件夹选项”,选中“查看”选项,去掉“隐藏受保护的操作系统文件(推荐)”前面的勾,选中“显示隐藏的文件、文件夹和驱动器”,之后,点击“确定”。2.......
  • Win电脑日历、日程表怎么固定到桌面显示?
    使用Win电脑办公,想要随时查看今天的待办任务怎么办?如何快速记录临时安排的工作事项呢?如果能够把日历、日程表固定到电脑桌面上显示就很方便了!那么Win电脑桌面日历/日程表,怎么固定到桌面显示呢?其实用敬业签就可以轻松实现!它是一款能一直悬挂在Win桌面上显示的便签+待办工具,并且有......
  • 听音乐还可以这样玩!音乐与视觉的盛宴 让音频频谱美化你的桌面
    听音乐还可以这样玩!音乐与视觉的盛宴让音频频谱美化你的桌面 对于热爱音乐的你来说,每一次聆听都是一次心灵的触动。而现在,芝麻桌面美化软件将这份触动可视化,让你的电脑桌面随着音乐的节奏焕发出独特的生命力。音频频谱效果首先:先到官网下载芝麻桌面美化软件(https://zhima......
  • 音乐发烧友的福利 让音乐可视化 芝麻桌面美化让你的音乐动起来
    音乐发烧友的福利让音乐可视化芝麻桌面美化让你的音乐动起来在数字化时代,电脑已经成为我们日常生活和工作中不可或缺的一部分。而在追求高效办公的同时,我们也希望电脑桌面能够展现出个性化和独特魅力。芝麻桌面美化软件正是这样一款能够满足你需求的桌面美化神器,其出色的音......
  • 电脑便签记事本可以固定桌面上吗?两步搞定!
    有不少小伙伴在使用电脑办公时,都需要随手记录一些琐事、注意事项、常用的信息等,这时候如果电脑桌面上有一款便签或记事本就非常方便了!电脑便签或记事本工具可以固定在桌面上显示吗?当然可以,下面简单两步教你搞定!一、在Win电脑上打开敬业签敬业签是一款电脑桌面便签记事工具,有便......