javacv实现实时视频截图和录像服务easyCV,支持png,jpg截图以及gif,apng动态图片录制

news/2024/11/29 5:29:08/

本项目维护于github:https://github.com/eguid/easyCV
 

更新日志

2019年4月更新:

1、新增两个springboot+postgre的演示demo

2、去除了corelib录像API中不合理的持久层接口

1、介绍

本项目的截图库基于ffmpeg,录像库基于javaCV1.4.x。

其中实现了

(1)实时视频截图服务(支持rtsp/rtmp/http-flv/hls/file等视频源),图片保存格式支持png/jpeg/jpg/gif等等,支持base64和图片保存两种方式,同时支持两种同时保存/返回。

(2)视频录像服务支持rtsp/rtmp/http-flv/hls/file等实时视频或文件录像,支持手动暂停和恢复录制,支持手动开始和结束录制,支持保存mp4/flv/mkv/avi等等录像视频,配合http/ftp服务可以实现在线点播。

(3)web服务使用springboot,仅作为demo使用,并没有实现持久化;截图的base64数据和历史记录保存在Map中,图片文件保存在指定路径;录像历史记录保存在map中,文件保存在硬盘。

截图wbe服务使用8081端口,录像默认使用8082端口。

通过访问ip:port/test测试截图和录像,通过ip:post/查看截图录像历史列表(可查看截图,点播录像视频,需要配置http点播服务)

2、实现原理

(1)截图服务直接使用了javacpp-ffmpeg方式,解决了javaCV的FFmpegGrabber在检索实时视频信息时导致的阻塞问题,同时优化了ByteOutputStream和Base64的转换性能。

(2)录像服务直接使用了javaCV方式,通过实现的固定大小的线程池来提升资源复用率,转封装情况下解决了FFmpegRecorder下推流至rtmp的pts为空的bug。

线程池实现:通过录制器绑定线程方式,在manager层实现了录制器对象池来实现线程复用,录制器作为线程控制器来控制工作线程的开始、暂停、恢复,结束录像的操作。

管理器--->固定大小对象池--->录制器--->工作线程

 

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开发详解之10:基于dshow调用windows摄像头视频和音频,想要获取屏幕画面首选gdigrab

javaCV开发详解之11:视频转gif动态图片实现,也支持摄像机、桌面屏幕、流媒体等视频源转gif

javaCV开发详解之12:视频转apng动态图片实现,支持透明通道,支持摄像机、桌面屏幕、流媒体等视频源转apng动态图

补充篇:

javaCV开发详解补充篇:基于avfoundation的苹果Mac和ios获取屏幕画面及录屏/截屏以及摄像头画面和音频采样获取实现

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

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

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

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

javacv文字识别系列:

javaCV文字识别之1:基于google的tesserac ocr识别图片中的文字,跨平台支持英文中文简体繁体等各种字符识别

javaCV文字识别之2:视频文字识别和视频提取字幕文字字符

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%以上)

 


http://www.ppmy.cn/news/328101.html

相关文章

ffmpeg 推流同时录像命令_ffmpeg推流命令

安悦溪/图片来自网络 一.ffmpeg推流命令 ffmpeg -re -i /Users/WX/Desktop/login_video.mp4 -vcodec libx264 -acodec aac -strict -2 -f flv rtmp://localhost:1935/rtmplive/room WX:电脑用户名 login_video :推流的视频名 上面这两点可以根据自己的需要修改 二.用ffmpeg推流…

盘点国内外几款免费好用的远程桌面工具

通过远程桌面可以极大地方便我们进行远程技术支持、远程办公,然而我们熟知 QQ 远程、Windows自带的远程桌面,使用起来并不理想,不是连接不顺畅就是操作技术高,相比之下,专门的远程桌面软件的体验更佳。下面&#xff0c…

苹果屏幕录制没有声音_有没有简单实用的屏幕录制软件推荐?

QVE屏幕录制简单的来说就是屏幕录像,用录屏软件可以记录你在桌面上的操作过程。 QVE屏幕录制高清视频录制 简单易用 低CPU占用率 高清流畅画质 , 音画同步录制 无噪声 , 高品质声音 文件占用体积小 每秒高达60帧 超长时间录制 功能特色 支持各种视频格式 mp4, flv, …

ubuntu unity 3D桌面效果

不推荐在Ubuntu 12.10版使用3D桌面特效,因为这个版本正在做较大的修改和测试,把 Unity 2D桌面取消了,这是为了在以后“统一”桌面做准备,所以在Ubuntu 12.10版中使用带3D特效的Unity桌面或者另行安装使用Gnome-Shell桌面时&#x…

苹果手机功能大全介绍_苹果手机备忘录功能,纸质文档扫一下电子化,学会秒变手机达人...

近日苹果手机11系列拿下,2020年一季度最畅销智能手机排行榜第一名。可见其受欢迎程度。 其实苹果手机不仅系统强大,里面的一些功能性黑科技也非常好用,今天给大家介绍一个苹果手机隐藏功能——备忘录当扫描仪。 扫描仪功能 我们日常生活中&am…

iphone7plus计算机,苹果7 Plus评测:双摄对比苹果7/6sP

相机部分:最为瞩目的卖点,但重头戏景深加强还未到 ●和其他安卓手机双镜头方案不同 虽然今年的iPhone 7/7 Plus外观设计变化不大,但是这次硬件升级非常给力,除了让人惊讶的A10四核处理器外,摄像头升级被视为这次iPhone…

itools苹果录屏大师_屏幕录制软件有哪些?找对合适录屏软件

屏幕录制的软件有哪些?对于很多需要使用电脑的小伙伴来说,找到一个电脑录屏的好用软件很重要。 免费下载电脑录屏软件: https://dl-next.aunbox.cn/channel?channelad78969c​dl-next.aunbox.cn 现在电脑录屏的软件很多。具体的不同使用方法…

苹果虚拟home键_苹果手机几个实用小技巧,相见恨晚,快试试你的手机!

1.扫描文稿 想要将书本文字或照片文字,输入电子档中,你还在用手打字吗? 技巧:只需要打开“备忘录”,点击输入符号“”,再点击“扫描文稿”就可以啦! 2.清理内存 这个你万万没想到吧&#xff0…