文章目录

  • java生成视频缩略图
    • 使用javacv包
    • vidio查看--失败了

java生成视频缩略图

需要给前端返回视频的缩略图链接,本来使用的是阿里云的OSS,它提供了缩略图功能的,但是最近换成了Minio…就只有自己写了;

要求:返回给前端一个连接,缩略图实时生成,不会保存.

使用javacv包

参考:https://www.cnblogs.com/yy136/p/9608985.html

流程: 先从Minio中读取视频,然后使用javacv获取某一帧的图,最后使用thumbnailator将图片压缩

但是,视频几十上百M的时候很慢,大视频1分钟都出不来_(:з」∠)_
若是缩略图会保存起来,使用的时候直接读取缩略图的话,这个方案还可以,但是实时读取就不行了

        <dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.4</version></dependency>

使用

    public void getViewResize(GlobalAccessoryFile accessory) throws Exception  {// 获取Minio服务MinioClient client = this.getOSSClient();//从服务器获取图片InputStream inputStream = client.getObject(GetObjectArgs.builder().bucket(ossCfg.bucketName) //桶.object(accessory.getFileDirectoryPath()) //图片在桶内位置.build());FFmpegFrameGrabber grabber;InputStream img = null;try {grabber = new FFmpegFrameGrabber(inputStream,0);grabber.start();// 视频总帧数int videoLength = grabber.getLengthInFrames();Frame frame = null;int i = 0;while (i < videoLength) {// 过滤前5帧,因为前5帧可能是全黑的frame = grabber.grabFrame();if (i>5&&frame.image != null) {break;}i++;}Java2DFrameConverter converter = new Java2DFrameConverter();// 绘制图片BufferedImage bi = converter.getBufferedImage(frame);img = bufferedImageToInputStream(bi);grabber.stop();grabber.close();} catch (IOException e) {e.printStackTrace();}HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();response.setContentType("multipart/form-data");int h = accessory.getTHeight() != null ? accessory.getTHeight() : 200;Thumbnails.Builder<? extends InputStream> tb = Thumbnails.of(img).height(h);if (accessory.getTWidth() != null) {tb.width(accessory.getTWidth());}tb.toOutputStream(response.getOutputStream());}/*** 将BufferedImage转换为InputStream** @param image* @return*/public static InputStream bufferedImageToInputStream(BufferedImage image) {ByteArrayOutputStream os = new ByteArrayOutputStream();try {ImageIO.write(image, "png", os);InputStream input = new ByteArrayInputStream(os.toByteArray());return input;} catch (IOException e) {}return null;}

vidio查看–失败了

本来用这种方法,看着没有加载视频以为是成功了,后来发现,是之前浏览器缓存了,强制刷新之后还是会加载整个视频_(:з」∠)_

直接返回给前端查看视频的链接,前端使用这个连接显示缩略图
比如我的视频链接是 http://192.168.3.179:9111/achieve8321280.mov?X-Amz-Algorithm=Aac6f7a9e6a34

前端需要缩略图展示的时候(这样会自动展示缩略图,并且没有操作按钮)

<video height="200px" width="200" src="http://192.168.3.179:9111/achieve8321280.mov?X-Amz-Algorithm=Aac6f7a9e6a34"/>

前端需要播放视频的时候

<video controls   height="800px" width="1000" style="outline: none;width:100%" autoplay  src="http://192.168.3.179:9111/achieve8321280.mov?X-Amz-Algorithm=Aac6f7a9e6a34"/>

前端下载

<a href="http://192.168.3.179:9111/achieve8321280.mov?X-Amz-Algorithm=Aac6f7a9e6a34" download="achieve8321280.mov">视频下载</a>

java生成视频缩略图相关推荐

  1. 利用FFmpeg生成视频缩略图 2.1.8

    1.下载FFmpeg文件包,解压包里的\bin\下的文件解压到 D:\ffmpeg\ 目录下.下载地址 http://ffmpeg.zeranoe.com/builds/win32/static/D: ...

  2. PHP做视频网站,让程序自动实现视频格式转换、设置视频大小、生成视频缩略图...

    一.PHP实现转换 在做视频网站的时候,最头痛的问题可能是格式转换.视频缩略图等.下面我将用PHP实现这一些功能.PHP是没有自带视频的函数,所以会用到第三方的软件工具来实现. 二.什么是FFmpeg ...

  3. java生成skp缩略图,目录下SketchUp文件联系表(自定义尺寸的缩略图集)怎样制作?...

    百度 '批量生成skp缩略图jpg图片-ruby代码' 批量生成Skp缩略图Jpg图片-Ruby代码 渲染·后期·输出 BY SKETCHUP 不需要装什么软件, 草图大师SketchUp文件的缩略图 ...

  4. java 视频 缩略图_如何使用java提取视频缩略图或某一帧的图片

    [Java] 纯文本查看 复制代码public class CreateImage { /** * 获取指定视频的帧并保存为图片至指定目录 * [url=home.php?mod=space& ...

  5. Java将视频转为缩略图--ffmpeg

    Java生成视频缩略图 对于上传视频生成缩略图使用的是ffmpeg进行生成的. 自己在网上找了如何进行编译ffmpeg的方法 但是感觉太复杂了 就到csdn上找到了编译好的ffmpeg文件 体会到ff ...

  6. mencoder和ffmpeg参数详解 (Java处理视频)

    本系列文章导航 Windows下FFmpeg快速入门 ffmpeg参数解释 mencoder和ffmpeg参数详解(Java处理视频) Java 生成视频缩略图(ffmpeg) 使用ffmpeg进行视 ...

  7. Linux环境java截取视频某帧另存缩略图

    1.引入依赖 由于整包过大,这里仅引入功能相关的部分资源, <!-- 视频截图工具START --><dependency><groupId>org.bytedec ...

  8. java 取视频第一帧,java获取视频的第一帧

    //------------maven配置文件--------------- org.bytedeco javacv 0.8 /** * 获取指定视频的帧并保存为图片至指定目录 * @param vi ...

  9. java生成缩略图类源码

    把做工程过程比较好的一些内容备份一下,如下内容段是关于 java生成缩略图类的内容. package com.whatycms.common.util; import java.awt.image.B ...

  10. java 获取mp4 缩略图_java获取视频缩略图

    近期由于在做一个关于视频播放的项目,需要使用程序自动获取视频文件的缩略图,特写此文供其他人参考,有不清楚之楚可以给我留言. 1.使用工具:ffmpeg, 官网下载地址:http://ffmpeg.or ...

最新文章

  1. Java8 新的 try-with-resources 语句,自动资源释放
  2. 上分神器:训练调参与模型集成
  3. JavaScript 函数
  4. 从此不再为Web页面中的Tooltip烦恼
  5. ios 容错处理JKDataHelper和AvoidCrash
  6. 构建基于分布式SOA架构的统一身份认证体系
  7. CF917B MADMAX
  8. docker certbot 一键申请https证书、证书过期续订、续订成功自动重启服务
  9. 超级全面的 Lombok 注解介绍,学一波!
  10. 拉卡拉2020年股东净利润9.31亿 积极布局数字人民币业务
  11. 芈珺:iOS自动化测试工具总览
  12. asp向不同的用户发送信息_使用 Linux 命令行与其他用户进行通信 | Linux 中国
  13. php 智能输入提示插件,PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能_PHP...
  14. 【298天】每日项目总结系列036(2017.11.30)
  15. java中文乱码转换编程_java中文乱码如何转换
  16. 微信小程序最新富文本编辑器使用功能实例教程
  17. autoit3转换php,AutoIt3调用动态链接库DLL
  18. 演练 京东注册页面的制作 1009 HTML
  19. 量化交易6-backtrader编写策略的时数据获取
  20. java 距离转坐标_Java经纬读坐标的距离计算

热门文章

  1. SDK二次开发摄像头语音转发功能和语音对讲
  2. PHP在线工具箱源码站长引流+在线工具箱源码+多款有趣的在线工具+一键安装
  3. 做好投资必读的30本书
  4. Tomcat中的四大servlet容器及管道机制
  5. 看到Apache协议 BSD协议,你知道啥意思吗
  6. 关于C++ .h文件和.cpp文件的知识梳理
  7. AXURE RP 原型图绘制手册
  8. 微信小程序tab切换功能的实现
  9. 完全背包问题(Java)
  10. SoundTouch音频处理库