Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
eguid_1
easyCV
提交
3a7c0418
E
easyCV
项目概览
eguid_1
/
easyCV
通知
6
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
5
列表
看板
标记
里程碑
合并请求
0
Wiki
3
Wiki
分析
仓库
DevOps
项目成员
Pages
E
easyCV
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
5
Issue
5
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
3
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
3a7c0418
编写于
7月 22, 2019
作者:
eguid_1
⚾
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
BytesGrabber连续截图功能稳定,本次增加其他几个Grabber连续截图功能语法糖实现,老版本暂不支持连续截图
上级
7bbc174f
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
132 addition
and
5 deletion
+132
-5
corelib/videoimageshot/src/main/java/cc/eguid/cv/corelib/videoimageshot/grabber/BufferGrabber.java
...guid/cv/corelib/videoimageshot/grabber/BufferGrabber.java
+23
-3
corelib/videoimageshot/src/main/java/cc/eguid/cv/corelib/videoimageshot/grabber/BufferedImageGrabber.java
.../corelib/videoimageshot/grabber/BufferedImageGrabber.java
+21
-0
corelib/videoimageshot/src/main/java/cc/eguid/cv/corelib/videoimageshot/grabber/ffmpeg/FFmpeg4VideoImageGrabber.java
...deoimageshot/grabber/ffmpeg/FFmpeg4VideoImageGrabber.java
+42
-0
corelib/videoimageshot/src/main/java/cc/eguid/cv/corelib/videoimageshot/grabber/ffmpeg/FFmpegVideoImageGrabber.java
...ideoimageshot/grabber/ffmpeg/FFmpegVideoImageGrabber.java
+44
-0
corelib/videoimageshot/src/main/java/cc/eguid/cv/corelib/videoimageshot/grabber/ffmpeg/GrabberTemplate4.java
...relib/videoimageshot/grabber/ffmpeg/GrabberTemplate4.java
+2
-2
未找到文件。
corelib/videoimageshot/src/main/java/cc/eguid/cv/corelib/videoimageshot/grabber/BufferGrabber.java
浏览文件 @
3a7c0418
...
...
@@ -19,7 +19,7 @@ public interface BufferGrabber{
/**
* 抓取图像缓冲区(默认获取BGR数据)
* @param url
-
视频地址
* @param url
视频地址
* @return
* @throws IOException
*/
...
...
@@ -27,11 +27,31 @@ public interface BufferGrabber{
/**
* 抓取图像缓冲区
* @param url
-
视频地址
* @param fmt
-
图像数据结构(默认BGR24)
* @param url 视频地址
* @param fmt 图像数据结构(默认BGR24)
* @return
* @throws IOException
*/
ByteBuffer
grabBuffer
(
String
url
,
Integer
fmt
)
throws
IOException
;
/**
* 连续截图获取多个图像缓冲(默认BGR24像素格式)
* @param url 视频地址
* @param sum 截图总数
* @param interval 间隔(每隔几帧截图一次,需要自行确定视频帧率)
* @return
* @throws IOException
*/
ByteBuffer
[]
grabBuffers
(
String
url
,
int
sum
,
int
interval
)
throws
IOException
;
/**
* 连续截图获取多个图像缓冲
* @param url -视频地址
* @param fmt -图像数据结构(默认BGR24)
* @param sum 截图总数
* @param interval 间隔(每隔几帧截图一次,需要自行确定视频帧率)
* @return
* @throws IOException
*/
ByteBuffer
[]
grabBuffers
(
String
url
,
Integer
fmt
,
int
sum
,
int
interval
)
throws
IOException
;
}
corelib/videoimageshot/src/main/java/cc/eguid/cv/corelib/videoimageshot/grabber/BufferedImageGrabber.java
浏览文件 @
3a7c0418
...
...
@@ -27,5 +27,26 @@ public interface BufferedImageGrabber{
* @throws IOException
*/
BufferedImage
grabBufferImage
(
String
url
,
Integer
fmt
)
throws
IOException
;
/**
* 连续抓取图像
* @param url -视频地址
* @param sum 截图总数
* @param interval 间隔(每隔几帧截图一次,需要自行确定视频帧率)
* @return
* @throws IOException
*/
BufferedImage
[]
grabBufferImages
(
String
url
,
int
sum
,
int
interval
)
throws
IOException
;
/**
* 连续抓取图像
* @param url -视频地址
* @param fmt -图像数据结构(可选,为空默认BGR24)
* @param sum 截图总数
* @param interval 间隔(每隔几帧截图一次,需要自行确定视频帧率)
* @return
* @throws IOException
*/
BufferedImage
[]
grabBufferImages
(
String
url
,
Integer
fmt
,
int
sum
,
int
interval
)
throws
IOException
;
}
corelib/videoimageshot/src/main/java/cc/eguid/cv/corelib/videoimageshot/grabber/ffmpeg/FFmpeg4VideoImageGrabber.java
浏览文件 @
3a7c0418
...
...
@@ -99,6 +99,26 @@ public class FFmpeg4VideoImageGrabber extends GrabberTemplate4 implements Base64
return
buf
;
}
@Override
public
ByteBuffer
[]
grabBuffers
(
String
url
,
int
sum
,
int
interval
)
throws
IOException
{
return
grabBuffers
(
url
,
null
,
sum
,
interval
);
}
@Override
public
ByteBuffer
[]
grabBuffers
(
String
url
,
Integer
fmt
,
int
sum
,
int
interval
)
throws
IOException
{
if
(
sum
>
0
)
{
byte
[][]
bytes
=
grabBytes
(
url
,
fmt
,
sum
,
interval
);
if
(
bytes
!=
null
)
{
ByteBuffer
[]
bufs
=
new
ByteBuffer
[
sum
];
for
(
int
i
=
0
;
i
<
bytes
.
length
;
i
++)
{
bufs
[
i
]=
ByteBuffer
.
wrap
(
bytes
[
i
]);
}
return
bufs
;
}
}
return
null
;
}
@Override
public
BufferedImage
grabBufferImage
()
throws
IOException
{
return
grabBufferImage
(
this
.
url
,
null
);
...
...
@@ -117,6 +137,28 @@ public class FFmpeg4VideoImageGrabber extends GrabberTemplate4 implements Base64
return
image
;
}
@Override
public
BufferedImage
[]
grabBufferImages
(
String
url
,
int
sum
,
int
interval
)
throws
IOException
{
return
grabBufferImages
(
url
,
null
,
sum
,
interval
);
}
@Override
public
BufferedImage
[]
grabBufferImages
(
String
url
,
Integer
fmt
,
int
sum
,
int
interval
)
throws
IOException
{
BufferedImage
[]
images
=
null
;
if
(
sum
>
0
)
{
byte
[][]
bytes
=
grabBytes
(
url
,
fmt
,
sum
,
interval
);
if
(
bytes
!=
null
)
{
images
=
new
BufferedImage
[
sum
];
for
(
int
i
=
0
;
i
<
bytes
.
length
;
i
++)
{
images
[
i
]=
JavaImgConverter
.
BGR2BufferedImage
(
bytes
[
i
],
this
.
width
,
this
.
height
);
}
return
images
;
}
}
return
null
;
}
@Override
public
String
getBase64Image
(
String
url
)
throws
IOException
{
return
getBase64Image
(
url
,
null
);
...
...
corelib/videoimageshot/src/main/java/cc/eguid/cv/corelib/videoimageshot/grabber/ffmpeg/FFmpegVideoImageGrabber.java
浏览文件 @
3a7c0418
...
...
@@ -136,5 +136,49 @@ public class FFmpegVideoImageGrabber extends GrabberTmplate implements BufferGra
this
.
fmt
=
fmt
;
}
/**
* 未实现,推荐使用FFmpeg4VideoImageGrabber
* @see FFmpeg4VideoImageGrabber
*/
@Deprecated
@Override
public
ByteBuffer
[]
grabBuffers
(
String
url
,
int
sum
,
int
interval
)
throws
IOException
{
// TODO Auto-generated method stub
return
null
;
}
/**
* 未实现,推荐使用FFmpeg4VideoImageGrabber
* @see FFmpeg4VideoImageGrabber
*/
@Deprecated
@Override
public
ByteBuffer
[]
grabBuffers
(
String
url
,
Integer
fmt
,
int
sum
,
int
interval
)
throws
IOException
{
// TODO Auto-generated method stub
return
null
;
}
/**
* 未实现,推荐使用FFmpeg4VideoImageGrabber
* @see FFmpeg4VideoImageGrabber
*/
@Deprecated
@Override
public
BufferedImage
[]
grabBufferImages
(
String
url
,
int
sum
,
int
interval
)
throws
IOException
{
// TODO Auto-generated method stub
return
null
;
}
/**
* 未实现,推荐使用FFmpeg4VideoImageGrabber
* @see FFmpeg4VideoImageGrabber
*/
@Deprecated
@Override
public
BufferedImage
[]
grabBufferImages
(
String
url
,
Integer
fmt
,
int
sum
,
int
interval
)
throws
IOException
{
// TODO Auto-generated method stub
return
null
;
}
}
corelib/videoimageshot/src/main/java/cc/eguid/cv/corelib/videoimageshot/grabber/ffmpeg/GrabberTemplate4.java
浏览文件 @
3a7c0418
...
...
@@ -57,7 +57,7 @@ public abstract class GrabberTemplate4 implements Grabber{
private
SwsContext
sws_ctx
;
//图像缩放和像素格式转换上下文
private
AVFrame
outFrameRGB
;
//用于存储转换后的RGB像素数据,默认转换成RGB
public
GrabberTemplate4
()
{
super
();
}
...
...
@@ -313,7 +313,7 @@ public abstract class GrabberTemplate4 implements Grabber{
//读取错误或读取完成
return
null
;
}
finally
{
av_free
(
buffer
);
//Don't free buffer
av_free
(
buffer
);
//Don't free buffer
? Of course not!
freeAndClose
();
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录