• This repository has been archived on 12/Jan/2021
  • Stars
    star
    178
  • Rank 214,989 (Top 5 %)
  • Language
    Java
  • License
    Apache License 2.0
  • Created about 6 years ago
  • Updated about 4 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

easyCV (video recorder and snapshot library,based on javaCV)基于javaCV的跨平台视频录像和基于FFmpeg的快照(截图)库

LICENSE LICENSE

easyCV

  Video recorder and snapshot(video image capture) library,based on javaCPP & javaCV & FFmpeg. 
  基于javaCV的跨平台视频录像和快照(视频截图)库,开箱即用。

Update

2019年12月2日
1、本次更新主要针对videoRecorder工作线程在特定情况下(异常)出现无法回收的bug

2019年7月22日
1、新增BufferGrabber和BufferedImageGrabber的连续截图语法糖
2、截图库不再依赖javaCV

2019年7月17日b
1、增加连续截图功能,目前只限通过BytesGrabber进行连续截图
1.1、连续截图提供视频源地址、截图总数、间隔(隔几帧)
1.2、简单测试了连续截图功能暂时未发现问题,近期将实现其他接口的连续截图功能语法糖
2、代码结构调整,抽象出一个桥接接口Grabber,用于方便不同接口实现能够对像素格式进行不同方式的操作

2019年7月17日a
1、调整了截图库代码结构
2、向下兼容老版本,但不再推荐使用原有的调用方式
3、新增了一个图像像素数据字节数组抓取器(BytesGrabber),它能够获得图像的像素数组
4、新增了一个Base64图像编码数据抓取器(Base64Grabber),用于取代原来的调用方式
5、重新根据ffmpeg4.x最新解码库api实现视频解码流程,支持B、P帧解码,与原有代码不兼容,所以新创建新的FFmpeg4VideoImageGrabber以示区别
6、推荐的使用方式是
`
//可以通过BufferedImageGrabber直接截取得到java图像
BufferedImageGrabber grabber=new FFmpeg4VideoImageGrabber();
//可以通过Base64Grabber轻松截取base64图像编码数据
Base64Grabber grabber=new FFmpeg4VideoImageGrabber();
//可以通过BufferGrabber获取截图图像的缓冲数据
BufferGrabber grabber =new FFmpeg4VideoImageGrabber();
//可以通过BytesGrabber获取截图图像的像素数组数据
BytesGrabber grabber=new FFmpeg4VideoImageGrabber();
`
根据需要自行调用和管理,本项目只提供可靠的截图库,而不是大而全的框架。

Use samples

目前除了Base64Grabber之外其他Grabber都实现了连续截图api
	//可以通过BufferedImageGrabber直接截取得到java图像
	BufferedImageGrabber grabber=new FFmpeg4VideoImageGrabber();
	//可以通过Base64Grabber轻松截取base64图像编码数据
	Base64Grabber grabber=new FFmpeg4VideoImageGrabber();
	//可以通过BufferGrabber获取截图图像的缓冲数据
	BufferGrabber grabber =new FFmpeg4VideoImageGrabber();
	//可以通过BytesGrabber获取截图图像的像素数组数据
	BytesGrabber grabber=new FFmpeg4VideoImageGrabber();

Online demo

1、截图服务在线演示:http://eguid.cc/screenshot/test

2、录像服务在线演示:http://eguid.cc/videorecord/test

   可以通过http://eguid.cc/screenshot/查看历史截图列表
   同样可以通过http://eguid.cc/videorecord/查看历史录像列表并进行点播观看

Dependency library

  Corelib based on 'javaCPP 1.4.X' & 'javaCPP-FFMPEG-1.4.x' & 'javacv 1.4.x',exaples based on 'spring-boot 2.x'.

Build

  Based on jdk1.8,build on maven 3.7.

About core library

  核心库提供截图快照和视频录像两套API,exaples中提供了几个演示示例,分别依赖录像和截图corelib

Examples project description

提供了几个springboot演示服务demo,截图服务演示demo默认使用8081端口,录像服务使用8082端口。
其中截图功能支持保存成文件和返回base64两种方式获取截图。
截图文件与录像文件都需要额外配合一个单独http/ftp服务才能进行访问
录像服务演示demo除了需要指定保存路径外,与截图服务相同,我们一般把录像文件存放到http/ftp服务的根目录下,方便点播,推荐使用nginx、apache和iis)。
demo中涉及到截图和录像信息的表结构都是简单的单表,这里就不提供了,直接查看*Mapper.xml文件即可

Format of video&Image support

Video source support rtsp/rtmp/flv/hls/file formats,Record video file support mp4/flv/mkv/avi .... formats.
Image file support jpg/png/jpeg/gif/bmp.
视频源支持rtsp/rtmp/flv/hls/视频文件等多种格式。
录像文件可以支持mp4/flv/mkv/avi等多种视频格式。
视频快照(视频截图)支持jpg/png/jpeg/gif/bmp等图片格式,常见的格式基本都支持。

More Repositories

1

FFCH4J

FFCH4J项目全称:FFmpeg命令处理器(原用名FFmpegComandHandler4java,FFmpeg命令行运行管理器)。不仅仅只是跨平台的ffmpeg命令执行、停止、查询功能的处理器,还是跨平台的命令行操作处理器
Java
505
star
2

vlpr4j

基于opencv的java车牌检测识别库(支持linux、windows、mac、Android平台),本项目已不再维护更新!
Java
175
star
3

graffitiCanvas

Graffiti Canvas Library (基于原生javascript的canvas涂鸦画板工具库)
JavaScript
34
star
4

Map

基于百度地图二次开发实现的车辆位置方向定位,方便控制车辆的图片、位置、方向、标注、弹出框等操作
JavaScript
26
star
5

livePush_Demo

livePush推流器的使用web demo:采用REST请求来发布和停止推流,并使用videoJS/ckPlayer播放器进行实时预览
JavaScript
22
star
6

tomcat-redis-sessioon-manager

tomcat-redis-sessioon-Manager implements Tomcat's session-manager redis persistence functionality (tomcat-redis-sessioon-manager是一个使用redis作为tomcat持久化的session-manager实现)
Java
16
star
7

livePush

一个基于FFMPEG命令封装的简单java推流器
Java
12
star
8

livePushServer

一个基于redis消息队列的livePush推流器的分布式服务,修改部分livePush推流实现,采用监听redis消息队列方式控制推流和停止
Java
11
star
9

Othello

Othello game(奥赛罗棋、又叫翻转棋、黑白棋)
Java
3
star
10

srs-console

srs live streaming console( srs流媒体服务控制台)
JavaScript
3
star
11

eguidRouter

Simple, flexible and fast 'nodeJS' routing function(一个非常简单、灵活、快速的nodeJS路由功能实现)
JavaScript
3
star